1.创建需要挂载的路径
mkdir -p /data/docker
mkdir -p /data/docker/nginx/conf #存放配置文件
2.创建一个测试nginx容器
docker run --name test -d nginx
3.因为不能直接挂载文件,只能挂载目录。所以需要启动一个测试容器,从测试容器中复制配置文件
docker cp test:/etc/nginx/nginx.conf /data/docker/nginx/conf/
如果不知道配置文件的路径,可以进入容器中查看
docker exec -it test /bin/bash
4.然后运行正式的nginx 容器 并设置挂载目录,记住赋予它权限。测试容器暂时不需要移除
docker run --privileged -it -p 80:80 \
-v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /data/docker/nginx/html:/usr/share/nginx/html:rw \
-v/data/docker/nginx/logs:/var/log/nginx -d nginx
[root@localhost nginx]# docker run --privileged -it -p 80:80 \
> -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
> -v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
> -v /data/docker/nginx/html:/usr/share/nginx/html:rw \
> -v/data/docker/nginx/logs:/var/log/nginx -d nginx
e84efded979c5d949b857e5c11d8d6ec725e6cdf473eb97dfeedaa904da4968c
此时查看/data/docker/conf/conf.d中发现是空的。
cd /data/docker/conf/conf.d
ls
因为docker不能挂载文件,只能挂载文件夹,所以需要再复制default.conf 文件
docker cp test:/etc/nginx/conf.d/default.conf /data/docker/nginx/conf/conf.d
再编辑/data/docker/nginx/html 里面的index.html文件。也可以自己复制一个index.html