Docker-compose无法挂载多个命名卷

时间:2018-03-29 21:17:18

标签: docker docker-compose

我在这里使用docker-compose来构建我的jenkins容器,而我无法将它安装到1个容器上。这就是我所拥有的:

搬运工-compose.yml:

version: '2'
networks:
  nw:
    driver: bridge

volumes:
  jenkins-ansible:
  jenkins-data:

services:
  jenkins:
    image: jenkins
    ports:
      - "801:8080"
    volumes:
      - jenkins-ansible:/var/lib/ansible
      - jenkins-data:/var/jenkins_home
    networks:
      - nw

我运行docker-compose up -d并且容器启动正常,但是当我将BASH放入容器时,df -h只显示一个挂载,/ var / jenkins_home。

如果我注释掉-jenkins-data:/var/jenkins_home行,则会安装ansible卷。

那为什么它只挂载一个卷?我无法提及只允许每个容器安装一个卷,但这就是它的外观。

jenkins-data mount有什么特别之处,它优先安装在jenkins-ansible mount上? (我已尝试将2条安装线交换,没有变化)

提前感谢,

吉姆

1 个答案:

答案 0 :(得分:1)

卷已正确安装,但不会使用df -h显示。

如果你真的想看到所有坐骑,你可以在容器内做cat /proc/mounts,他们会显示:

/dev/sdb /var/jenkins_home ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
/dev/sdb /var/lib/ansible ext4 rw,nosuid,nodev,relatime,data=ordered 0 0

你也可以docker inspect CONTAINER_NAME查看坐骑,你应该看到这样的东西:

    "Mounts": [
        {
            "Type": "volume",
            "Name": "tst1_jenkins-ansible",
            "Source": "/data/docker-data/volumes/tst1_jenkins-ansible/_data",
            "Destination": "/var/lib/ansible",
            "Driver": "local",
            "Mode": "rw",
            "RW": true,
            "Propagation": ""
        },
        {
            "Type": "volume",
            "Name": "tst1_jenkins-data",
            "Source": "/data/docker-data/volumes/tst1_jenkins-data/_data",
            "Destination": "/var/jenkins_home",
            "Driver": "local",
            "Mode": "rw",
            "RW": true,
            "Propagation": ""
        }
    ],