wangshuo'blog

wangshuo'blog

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

image-20240514102930854

命令执行成功,但是容器并并没有启动

1
docker ps -a | grep mynginx

image-20240514103108068

容器运行的日志如下

image-20240514104333552

/opt/nginx 的目录内容是空的

image-20240514104552408

一开始,我以为是容器没有权限操作这个目录的问题。

后面尝试:

还是没有解决这个问题。

解决

最后,才注意到,应该一开始创建好这个目录及其里面需要的内容,在创建这个 Nginx 容器。

过程如下

1、先创建一个临时的 nginx 容器,从里面提取出来需要的配置文件目录

1
2
sudo docker run --name mynginx1 -p 18080:80 -d 172.17.0.8:8083/nginx:1.25.5
sudo docker cp mynginx1:/etc/nginx /opt/docker/nginx

image-20240514105859112

查看内容是否创建成功

image-20240514105406512

2、删除这个临时的容器

1
2
sudo docker stop mynginx1
sudo docker rm mynginx1

3、最后在创建之前创建失败的 Nginx 容器。

image-20240514105602806

扩展