今天在这里讲如何在docker上运行nignx镜像,并将配置文件和目录挂载到宿主机上,以实现方便统一的管理配置信息。
首先第一步需要拉取镜像,我们还是拉取最新的镜像,不需要添加tag版本号,
docker pull nginx
拉取结束后用docker images 查看是否拉取成功,如图中可以看到nginx的镜像了。
docker

拉取成功后需要创建文件和文件夹用于运行的时候挂载,
- mkdir -p /usr/local/nginx/conf
- mkdir -p /usr/local/nginx/logs
- mkdir -p /usr/local/nginx/html
下面需要先运行容器,方便把文件本来的内容拷贝出来,然后再将容器删除,因为自己手动创建的配置文件容易有语法错误,当然如果你有了争取的配置文件也可以直接使用,就不需要创建容器拷贝出来后再删除这个操作了。接下来几个步骤可以跳过:
- # 1. 先用 nginx 镜像创建 nginx 容器,将需要挂载的文件拷贝出来
- docker run --name nginx -d -p 80:80 nginx
-
- # 2. 将容器中的 nginx.conf 文件拷贝到宿主机中
- docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
-
- # 3. 将容器中 conf.d 文件夹(包括里面的文件)拷贝到宿主机中
- docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/conf.d
-
- # 4. 将容器中的 html 文件夹拷贝到宿主机中
- docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
-
- # 5.删除正在运行的容器容器(-f 的参数作用是强制删除)
- docker rm -f nginx
最终可以在宿主机中看到这些目录和文件夹,并且其中的html中包含了html文件,conf文件夹中包含了配置文件。

全部准备好后,做最终的文件夹挂载,端口映射
# 要执行的命令
- #运行启动命令,并将端口进行映射,文件进行挂载。
- docker run -p 80:80 --name nginx -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/logs:/var/log/nginx -v /usr/local/nginx/html:/usr/share/nginx/html -d --restart=always nginx:latest
-
- #格式化后的代码
- docker run -p 80:80 --name nginx \
- -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
- -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
- -v /usr/local/nginx/logs:/var/log/nginx \
- -v /usr/local/nginx/html:/usr/share/nginx/html \
- -d \
- --restart=always \
- nginx:latest
-
- # 1.--name是设置容器名
- # 2.-p是容器与宿主机的端口映射
- # 3.-v是做卷挂载,实质上就是文件的映射
- # 4.-d是后台运行
- # 5.--restart 是Docker提供重启策略控制容器退出时或Docker重启时是否自动启动该容器。,always表示docker重启后,这个容器会自动重启
执行完成后,在浏览器查看是否可以访问。

以上就是docker运行nginx的所有步骤了,如果要配置ssl的话,需要先去域名申请证书,再配置到配置文件中,docker的操作步骤不影响。不过以上要注意几个问题
好了,以上如果有问题可以在评论区给我留言