拉去nginx镜像
查看nginx官网或者docker中央仓库查询版本,最好是根据nginx官网比较两者版本。
注意: 我们可以看到这个nginx官网现在最新的是1.26.2版本,这个时候我们可以使用下面的命令拉去镜像。
| 命令 | 描述 |
|---|---|
| docker pull nginx | 下载最新版Nginx镜像 (等同于 : docker pull nginx:latest ) |
| docker pull nginx:xxx | 下载指定版本的Nginx镜像 (xxx指版本号) |
安装nginx及配置文件挂载
我们使用镜像创建容器的时候,我们不能直接将nginx.conf使用 -v 将文件挂载出来,因为容器和服务器都不存在,就会导致挂载出来的文件就会是一个文件夹。
本地创建需要挂载出来的目录
在你服务器主机上创建三个docker容器的文件夹,最好统一管理这些文件夹,我是放在 /data/docker/nginx下面,下面创建文件
mkdir -p /data/docker/nginx/{conf,log,html}
将容器的文件复制到宿主机上
首先创建一个默认的容器,这个容器只是让我们把文件复制到宿主机的作用,后期会重新启动一个新的容器。
# 生成容器
docker run -p 80:80 -d nginx:1.26.2 --name nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /data/docker/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /data/docker/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /data/docker/nginx/
注意: nginx:/etc/nginx/nginx.conf 中的nginx:指的是创建容器的名称或者是CONTAINER ID 。
创建新的容器并挂载配置文件
首先将原来的nginx容器停止删除掉。
# 查看所有正在运行和没运行的容器
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx
使用挂载的方式启动一个新的容器。
1.多行启动命令
docker run \
-p 80:80 \
--name nginx_prod \
-v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/docker/nginx/log:/var/log/nginx \
-v /data/docker/nginx/html:/usr/share/nginx/html \
-d nginx:1.26.2
- 单行启动命令
docker run -p 80:80 --name nginx_prod -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/docker/nginx/log:/var/log/nginx -v /data/docker/nginx/html:/usr/share/nginx/html -d nginx:1.26.2
这个时候所有需要安装和配置的都搞定了,现在就是验证是否成功。
- 使用
docker ps查看是否存在nginx_prod名称的容器 - 通过ip或者域名查看你nginx的页面,直接就是80端口,如果出现下面这个页面就说明成功了