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

时间:2021-01-20 18:09:02

标签: docker nginx docker-compose devops

我正在尝试将容器的内容绑定到主机文件夹,以便我可以轻松编辑它,但由于某种原因它不起作用!

这里是我的 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 个答案:

答案 0 :(得分:1)

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

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

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

如果您想在完成后将更改保留在镜像中,请通过构建以下 Dockerfile 来创建一个新的 Docker 镜像

FROM nginx:mainline-alpine
COPY ./config/* /etc/nginx/conf.d/