如何将容器的内容正确绑定到主机文件夹?
How bind properly container's content to host folder?
我正在尝试将容器的内容绑定到主机文件夹,以便我可以轻松编辑它,但由于某些原因它不起作用!
这里是我的 docker-compose 文件:
version: "3"
services:
webserver:
image: nginx:mainline-alpine
container_name: webserver
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./config:/etc/nginx/conf.d
请注意,这是我在 docker-compose 命令之前的文件夹结构:
-project
--docker-compose.yaml
提前致谢
无法从主机上的容器装载文件夹。
要实现您想要的,请考虑以下事项
- 首先在没有定义任何卷的情况下启动容器
- 运行
docker cp webserver:/etc/nginx/conf.d/. ./config
将 /etc/nginx/conf.d/
的内容复制到主机上的 config
文件夹中
- 终止容器并使用安装在
/etc/nginx/conf.d
上的配置文件夹重新启动它(就像在您的原始示例中一样)。这会将容器中的 nginx 配置与本地计算机上的配置进行映射
- 当编辑本地文件时,它会反映在容器中。
如果您想在完成后保留图像中的更改,请通过构建以下 Docker 文件
创建一个新的 Docker 图像
FROM nginx:mainline-alpine
COPY ./config/* /etc/nginx/conf.d/
我正在尝试将容器的内容绑定到主机文件夹,以便我可以轻松编辑它,但由于某些原因它不起作用!
这里是我的 docker-compose 文件:
version: "3"
services:
webserver:
image: nginx:mainline-alpine
container_name: webserver
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./config:/etc/nginx/conf.d
请注意,这是我在 docker-compose 命令之前的文件夹结构:
-project
--docker-compose.yaml
提前致谢
无法从主机上的容器装载文件夹。
要实现您想要的,请考虑以下事项
- 首先在没有定义任何卷的情况下启动容器
- 运行
docker cp webserver:/etc/nginx/conf.d/. ./config
将/etc/nginx/conf.d/
的内容复制到主机上的config
文件夹中 - 终止容器并使用安装在
/etc/nginx/conf.d
上的配置文件夹重新启动它(就像在您的原始示例中一样)。这会将容器中的 nginx 配置与本地计算机上的配置进行映射 - 当编辑本地文件时,它会反映在容器中。
如果您想在完成后保留图像中的更改,请通过构建以下 Docker 文件
创建一个新的 Docker 图像FROM nginx:mainline-alpine
COPY ./config/* /etc/nginx/conf.d/