Docker安装Nginx
第一步:拉取镜像
可指定版本,也可不写,则为默认最新版本
第二步:拷贝配置文件
首先运行容器
docker run -d --name nginx -p 8082:8082 nginx
然后复制配置文件到宿主机文件夹,此处的宿主文件夹为自己手动创建,即为 D:/usr/nginx/conf
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf D:/usr/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d D:/usr/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html D:/usr/nginx/
以下为我的输出结果:
第三步 :停止并删除创建的Nginx容器
#停止容器
docker stop nginx
#删除容器
docker rm nginx
第四步 : 再次运行Nginx
docker run \ -p 9091:80 \ --restart always \ --name nginx \ -v D:/usr/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v D:/usr/nginx/conf/conf.d:/etc/nginx/conf.d \ -v D:/usr/nginx/log:/var/log/nginx \ -v D:/usr/nginx/html:/usr/share/nginx/html \ -d nginx:latest
-p: 指定宿主机的9091端口映射到容器内部的80端口,不要随便映射,因为80端口是nginx默认使用的端口
--restart :容器重启策略
--name: 给容器起名称
-d: 后台运行
-v: 挂载配置文件、html 目录到宿主机;冒号前为宿主机文件路径,冒号后为挂载到容器中的路径。可以看到宿主机被挂载的三个目录/文件是第一次运行时从容器内拷贝出来的
第五步: 测试
可查看日志: 看到start up 即安装成功
直接浏览器访问宿主机映射的 91 端口:显示如下界面即安装成功
PS: 安装过程中遇到的问题
启动容器时,指定宿主机端口映射到nginx容器内部的端口号时,一定要是80,不能随便映射, 因为80端口是nginx默认使用的端口,可以在Docker可视化界面看到
如若配置失败,则会显示以下信息 80/tcp not bound , 将启动容器的端口映射改为nginx默认使用的80端口即可