docker pull nginx
docker images
docker run --name mynginx -p 80:80 -d nginx:latest
调用http://localhost/index.html 能够看到nginx的主页,表示运行成功;css
docker exec -it mynginx /bin/bash
在容器里,找到nginx的默认的配置文件,/etc/nginx/nginx.confhtml
能够看到,容器的nginx的配置文件,都是默认在容器里的/etc/nginx文件夹下,咱们查看下nginx.conf内容,容器里,不支持vim操做;nginx
cat nginx.conf
配置文件内容以下:web
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
默认的异常日志文件写在/var/log/nginx/文件夹下,docker
最后一行,还导入了/etc/nginx/conf.d/*.conf
配置文件。shell
查看/etc/nginx/conf.d/*.conf
文件vim
能够看到,默认的静态代理资源路径是/usr/share/nginx/html
;bash
如今我已经知道了nginx的默认的配置文件,在什么位置,还有内容是什么,默认的root目录的位置,那么咱们就能够把这些文件拷贝到物理机上的路径上,而后使用 -v命令,把路径挂载到物理机上的路径上。app
退出容器,回到物理机上,命令以下:tcp
exit
在个人物理机下/Users/liqi/docker/nginx,建立3个文件夹,分别存放html文件,配置文件,以及日志文件,如图所示:
拷贝容器中的对应的文件夹到物理机下对应的文件夹,你们能够对应本身的实际物理机目录,命令以下:
docker cp mynginx:/etc/nginx /Users/liqi/docker/nginx/config/ #可选 docker cp mynginx:/usr/share/nginx/html /Users/liqi/docker/nginx/data/ #可选 docker cp mynginx:/var/log/nginx /Users/liqi/docker/nginx/logs/
另外,除了配置文件,其余的两个html文件和日志文件夹,均可以没必要拷贝
删除nginx镜像的mynginx容器
docker rm -f mynginx
从新执行run命令,挂载对应的文件到物理机
docker run --name mynginx -p 80:80 \ -v /Users/liqi/docker/nginx/config/nginx/:/etc/nginx \ -v /Users/liqi/docker/nginx/data/html:/usr/share/nginx/html \ -v /Users/liqi/docker/nginx/logs/:/var/log/nginx \ -d nginx:latest
验证挂载是否成功,你们本身去验证了,简单的操做,就是查看日志,修改配置文件,在data的html文件家里,加静态资源,如:图片,css,js等。另外,挂载的目录上,有点深,你们根据实际状况来,就能够了,不要在乎这么细节。