【问题标题】:Getting invalid mount config for type "bind": bind source path does not exist in docker获取类型“bind”的无效挂载配置:docker 中不存在绑定源路径
【发布时间】:2018-02-25 06:59:27
【问题描述】:

我正在尝试将以下 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 应该正确创建它。 为什么不是?

【问题讨论】:

  • 这是我发现的问题。该路径可能在一个集群中可用,但在另一个集群中不可用。在管理器节点中运行有效。但是为什么 -v 没有为它正在运行的任何节点创建目录

标签: docker docker-compose docker-swarm docker-stack


【解决方案1】:

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

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

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

【讨论】:

  • 这就是解决我使用命名容器而不是传递主机路径的问题的方法。谢谢我也不知道调度程序。接受的答案
  • @TaraPrasadGurung 你能描述一下你是怎么解决这个问题的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
相关资源
最近更新 更多