我正在使用docker 1.12.1我有一个简单的docker-compose脚本。

version: '2'

services:
  jenkins-slave:
    build: ./slave
    image: jenkins-slave:1.0
    restart: always
    ports:
     - "22"
    environment:
     - "constraint:NODE==master1"
  jenkins-master:
    image: jenkins:2.7.1
    container_name: jenkins-master
    restart: always
    ports:
     - "8080:8080"
     - "50000"
    environment:
     - "constraint:NODE==node1"

我使用docker-compose -p jenkins up -d运行此脚本。
这将创建我的2个容器,但仅在我的主容器上(从此处执行命令)创建容器。我希望在主机上创建一个,在节点上创建一个。
我也尝试添加
networks:
  jenkins_swarm:
    driver: overlay


  networks:
     - jenkins_swarm

每次服务后,但这都失败了:
Cannot create container for service jenkins-master: network jenkins_jenkins_swarm not found

当我执行docker network ls时创建网络

有人可以通过docker-compose帮助我在2个节点上部署2个容器。 Swarm正在为我的“集群”工作。我按照this教程进行了验证。

最佳答案

Compose目前不支持Swarm Mode。

当您在主节点上运行docker compose up时,Compose会为Compose文件中的服务发出docker run命令,而不是docker service create-这就是容器都在主节点上运行的原因。有关选项,请参见this answer

第二点,网络的作用域是1.12。如果检查您的网络,您会发现它是在群集级别创建的,但是Compose运行的是引擎级别的容器,看不到群集网络。

08-07 17:45
查看更多