第一次挂载时,采用以下命令进行挂载:
docker run --name nginx_80 -p 80:80 -v /opt/docker_dir/nginx_80/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker_dir/nginx_80/log:/var/log/nginx -v /opt/docker_dir/nginx_80/html:/usr/share/nginx/html -d nginx
此种启动方式是将容器内的nginx的配置文件,log日志目录和html目录挂载到宿主机磁盘上,该种方式方便在宿主机上直接查看nginx的日志以及修改静态资源文件。
缺点:
由于nginx.conf配置文件挂载到宿主机内,可在宿主机内修改nginx.conf,但在宿主机修改nginx.conf后,需要重启容器才能够将修改后的内容同步到容器中。主要原因为:-v的挂载方式支持文件和目录,其中文件的修改不能自动同步到容器内,需要手动重启容器才能同步到容器内。但挂载目录则不同,在该目录下的文件的变化均可自动同步到容器内。
结合以上原因,并且nginx镜像中的nginx.conf是引入conf.d目录的所有*.conf文件,因此可通过将conf.d目录也挂载到宿主机,如下:
docker run --name nginx_80 -p 80:80 -v /opt/docker_dir/nginx_80/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker_dir/nginx_80/log:/var/log/nginx -v /opt/docker_dir/nginx_80/html:/usr/share/nginx/html -v /opt/docker_dir/nginx_80/conf.d:/etc/nginx/conf.d -d nginx