【问题标题】:How to test a docker volume?如何测试 docker 卷?
【发布时间】:2017-05-16 12:37:12
【问题描述】:

我想测试我的 docker-compose.yml 是否正确。新事物是一卷

app:
    image: gitlab-${smt}:5005/smt/my-app:latest
    container_name: app
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - $HOME/.docker:/root/.docker
      - /home/profile_x/compose/area:/home/profile_x/compose/area
    environment:
      #not important for my question
    ports:
      - 80:80
    restart: always

所以我添加了最后一个卷/home/profile_x/compose/area,因为我的目标是将它从 Docker 主机共享到 Docker 容器,并从主机内部的容器写入。

如何检查卷是否安装在容器 app 内?

【问题讨论】:

    标签: docker docker-compose docker-volume


    【解决方案1】:

    您可以在容器中执行一个 bash shell 并检查该目录是否存在于您指定的路径中。

    docker exec app /bin/bash -c "[ -d '/home/profile_x/compose/area' ] && echo 'Yes'"
    

    如果目录存在,这将输出Yes

    【讨论】:

    • 哇非常好,感谢您的帮助。我会把这个小命令放在某个地方,因为它很有用!
    • 很高兴帮助你,如果它解决了你的问题,请验证答案:)
    【解决方案2】:

    最简单的方法是连接到 docker 容器中。

    与:

    docker ps 
    

    你得到所有正在运行的容器。

    那么你必须通过以下方式访问容器:

    docker exec -it <containername or containerid> bash
    

    然后 cd 直到找到您的文件夹并查看是否有您的文件。

    【讨论】:

    • 我赞成,因为我可以这样做,但@kstromeiraos 的答案更好:) 谢谢你的帮助
    • 我怎么说这是最简单的方法:)
    【解决方案3】:

    您可以使用 google 的 docker container-structure-tests 编写测试,以确保您的镜像是按照 Dockerfile 的规范构建的。

    更多信息可以在here找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2022-06-15
      • 2022-12-13
      • 1970-01-01
      相关资源
      最近更新 更多