【问题标题】:Docker-compose volume doesn't work as expectedDocker-compose 卷无法按预期工作
【发布时间】:2020-03-03 09:04:25
【问题描述】:

我正在尝试通过 docker-composer 挂载一个卷,但在运行 docker-compose up 之后,该目录为空。

Dockerfile

FROM alpine:3.8

COPY test.txt ./app/

docker-compose.yml

version: "3.7"

services:
  test:
    image: myrep/image:latest
    volumes:
      -  "./app/:/app/"

我的程序:

  1. 在客户端构建 docker 镜像 (docker build .)
  2. 将 docker 镜像推送到我的注册表 (docker tag xxx myrep/image && docker push myrep/image)
  3. 在服务器上我拉取图像 (docker pull myrep/image)
  4. 运行 docker-compose up (docker-compose up)
  5. 然后当我查看 app 文件夹时没有 test.txt 文件

知道我做错了什么吗?

【问题讨论】:

    标签: docker docker-compose docker-volume


    【解决方案1】:

    您将文件复制到映像中,但是当您启动容器时,在挂载它时会用您的目录覆盖它。

    如果您希望文件存在,请不要挂载卷。

    您可以通过在没有卷的情况下运行映像并执行来验证这一点:

    docker-compose exec test ls -l /app
    

    【讨论】:

    • 你应该安装dive,这样你就可以轻松地调试你的图像了。
    【解决方案2】:

    您可能应该尝试在 test.txt 之前添加 ./ 因为它不会将文件复制到根目录 希望对你有用

        FROM alpine:3.8
        COPY ./test.txt ./app/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 2013-12-23
      • 2014-12-09
      • 2016-01-13
      • 2020-09-21
      • 2011-08-17
      相关资源
      最近更新 更多