19

我正在尝试将以下 docker-compose 部署到 docker swarm 集群中。

version: '3.2'
services:
  jenkins:
    image: jenkins/jenkins:lts
    ports:
      - 8080:8080
    volumes:
      - ./data_jenkins:/var/jenkins_home
    deploy:
      mode: replicated
      replicas: 1

我确实在docker -compose 所在的相同位置有 data_jenkins ,并将该路径作为 volume 传递。但是为什么抛出源路径不存在。究竟是什么问题。

此外,如果目录不存在 -v 应该正确创建它。为什么不是?

4

1 回答 1

38

这在Docker Swarm BIND MOUNTS中有明确记录

如果将主机路径绑定到服务的容器中,则该路径必须存在于每个 swarm 节点上。Docker swarm mode 调度程序可以在任何满足资源可用性要求并满足您指定的所有约束和放置偏好的机器上调度容器。

与运行单个容器不同,如果绑定挂载主机目录不退出,则不会创建它。它必须在集群节点上运行容器之前存在。

于 2018-02-25T11:04:32.190 回答