如何将容器的内容正确绑定到主机文件夹?

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

提前致谢

无法从主机上的容器装载文件夹。

要实现您想要的,请考虑以下事项

  1. 首先在没有定义任何卷的情况下启动容器
  2. 运行 docker cp webserver:/etc/nginx/conf.d/. ./config/etc/nginx/conf.d/ 的内容复制到主机上的 config 文件夹中
  3. 终止容器并使用安装在 /etc/nginx/conf.d 上的配置文件夹重新启动它(就像在您的原始示例中一样)。这会将容器中的 nginx 配置与本地计算机上的配置进行映射
  4. 当编辑本地文件时,它会反映在容器中。

如果您想在完成后保留图像中的更改,请通过构建以下 Docker 文件

创建一个新的 Docker 图像
FROM nginx:mainline-alpine
COPY ./config/* /etc/nginx/conf.d/