docker pull nginx #拉取NGINX镜像,不指定版本默认最新的版本
- mkdir /home/nginx/conf
- mkdir /home/nginx/logs
- mkdir /home/nginx/html
- mkdir /home/nginx/conf.d #conf.d主要放自己的配置监听文件 在conf目录下也会生成一个,猜测因为容器里etc/nginx这个目录下有个conf.d 目录 所以为自动生成,
但是我又重新挂载了一下这个目录,可能挂载的级别高所以自动生成的不起作用
5.#创建完成移动到nginx目录下 再运行创建容器代码
6.cd /home/nginx
#挂载时必须是目录。不能是文件
7.先启动一个nginx 镜像,不挂载外部文件
docker run -d --name=mynginx -p 8809:80 nginx
8.进入mynginx容器
docker exec -it mynginx bash
找到nginx的配置文件
etc/nginx/nginx.conf /etc/nginx/conf.d /etc/nginx/mime.types /usr/share/nginx/html
这四个文件或者目录(conf.d,html是目录)拷贝到宿主机下对应的目录中 (如果使用默认配置nginx.conf时mime.types 这个文件必须在他会去找)
docker cp mynginx:/etc/nginx/nginx.conf /home/nginx/conf
docker cp mynginx:/etc/nginx/conf.d/ /home/nginx/conf.d
docker cp mynginx:/etc/nginx/mime.types /home/nginx/conf
docker cp mynginx:usr/share/nginx/html /home/nginx/html
9.启动一个新容器
docker run -d --name=dockernginx -p 18809:80 -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/conf.d/:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/conf:/etc/nginx/ nginx
10.docker ps -a 查看是否状态是up
11.访问地址ip:18809 出现页面
12.查看挂载的路径
docker inspect --format='{{.Mounts}}' dockernginx
[{bind /home/nginx/html /usr/share/nginx/html true rprivate} {bind /home/nginx/log /var/log/nginx true rprivate} {bind /home/nginx/conf /etc/nginx true rprivate} {bind /home/nginx/conf.d /etc/nginx/conf.d true rprivate}]
############################################################
以上是默认80端口映射到宿主机的18809端口了,访问18809等于访问80端口了
但是这个只能监听80端口,配置多端口监听的话,需要把监听的端口映射出来
13. docker内启动一个服务端口为8087 映射宿主机端口18006
在/home/nginx/conf.d目录下再创建一个配置文件dockertest.conf
监听18007端口并地址上有/api/标识转发到18006服务上
需要重新创建一个容器,并将18007端口映射出来
docker重新创建一个容器名称为dockernginxnew ,并将80和18007端口映射到宿主机
docker run -d --name=dockernginxnew -p 18809:80 -p 18007:18007 -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/conf.d/:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/conf:/etc/nginx/ nginx
创建完成后
访问http://192.168.100.101:18809/ 或者 http://192.168.100.101:18007 都可以看的nginx的index.html页面(location / 配置了)
访问18007端口并转发到18006服务
docker exec dockernginxnew nginx -v 查看nginx 版本