容器化部署(Nginx示例)
1. 寻找 Nginx 镜像
- 在 Docker Hub 或其他镜像仓库中搜索 Nginx 镜像。
2. 下载 Nginx 镜像
命令
命令 | 描述 |
---|---|
docker pull nginx |
下载最新版 Nginx 镜像(等同于 docker pull nginx:latest ) |
docker pull nginx:xxx |
下载指定版本的 Nginx 镜像(xxx 为具体版本号) |
检查当前所有 Docker 下载的镜像
docker images
3. 创建 Nginx 配置文件
在启动容器前,需创建 Nginx 外部挂载的配置文件(/docker/nginx
)。
原因:Nginx 容器默认只包含 /etc/nginx
目录,不包含 nginx.conf
文件。如果宿主机和容器均无 nginx.conf
文件,启动容器时 Docker 会将 nginx.conf
创建为目录,导致错误。
创建挂载目录
mkdir -p /docker/nginx
mkdir -p /docker/nginx/log
mkdir -p /docker/nginx/html
将容器中的配置文件复制到宿主机
# 生成一个临时容器
docker run --name nginx -p 8080:80 -d nginx
# 将容器中的 nginx 配置文件夹复制到宿主机
docker cp nginx:/etc/nginx /docker/nginx
# 将容器中的 Nginx 日志文件夹复制到宿主机
docker cp nginx:/etc/nginx/log /docker/nginx/log
# 将容器中的 html 文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /docker/nginx/html
4. 创建并运行 Nginx 容器
停止并删除临时容器
# 查看容器 ID
docker ps -a
# 停止容器
docker stop nginx
# 删除容器
docker rm nginx
# 强制删除正在运行的容器
docker rm -f nginx
创建 Nginx 容器(单行和多行模式二选一)
多行模式
docker run \
-p 8080:80 \
--name nginx \
-v /docker/nginx:/etc/nginx \
-v /docker/nginx/log:/var/log/nginx \
-v /docker/nginx/html:/usr/share/nginx/html \
-d nginx:latest
命令参数说明
命令参数 | 描述 |
---|---|
--name nginx |
指定容器名称 |
-d |
后台运行容器 |
-p 9002:80 |
将容器 80 端口映射到宿主机 9002 端口 |
-v /docker/nginx:/etc/nginx |
挂载 Nginx 配置文件目录 |
-v /docker/nginx/log:/var/log/nginx |
挂载 Nginx 日志目录 |
-v /docker/nginx/html:/usr/share/nginx/html |
挂载 Nginx 内容目录 |
nginx:latest |
指定运行的镜像版本 |
\ |
Shell 命令换行 |
单行模式
docker run -p 8080:80 --name nginx -v /docker/nginx:/etc/nginx -v /docker/nginx/log:/var/log/nginx -v /docker/nginx/html:/usr/share/nginx/html -d nginx:latest
5. 结果检测
- 检查容器运行状态,确认服务是否正常启动。
6. 修改内容并展示
重启容器
docker restart nginx
访问http://IP:8080
,显示 Nginx 的页面