docker 创建 Nginx 容器添加目录映射遇到的一个问题
(๑•̀ㅂ•́) ✧
问题
我想要创建一个 Nginx 容器,为了编辑这个容器方便,我想要把 /etc/nginx 这个目录映射出来。
当我使用下面的命令创建 Nginx 容器时,
1 | sudo docker run --name mynginx -p 18080:80 -v /opt/docker/nginx:/etc/nginx -d 172.17.0.8:8083/nginx:1.25.5 |
命令执行成功,但是容器并并没有启动
1 | docker ps -a | grep mynginx |
容器运行的日志如下
/opt/nginx
的目录内容是空的
一开始,我以为是容器没有权限操作这个目录的问题。
后面尝试:
- 将目录及其子目录权限赋值为
777
- 将目录映射修改到 /tmp
还是没有解决这个问题。
解决
最后,才注意到,应该一开始创建好这个目录及其里面需要的内容,在创建这个 Nginx 容器。
过程如下
1、先创建一个临时的 nginx 容器,从里面提取出来需要的配置文件目录
1 | sudo docker run --name mynginx1 -p 18080:80 -d 172.17.0.8:8083/nginx:1.25.5 |
查看内容是否创建成功
2、删除这个临时的容器
1 | sudo docker stop mynginx1 |
3、最后在创建之前创建失败的 Nginx 容器。