如何测试 docker 卷?

How to test a docker volume?

我想测试一下我的 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

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

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

如果目录存在,这将输出

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

与:

docker ps 

你得到所有的 运行 容器。

然后你必须访问容器:

docker exec -it <containername or containerid> bash

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

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

可以找到更多信息 here