簡體   English   中英

將docker-compose與docker swarm一起使用

[英]Use docker-compose with docker swarm

我正在使用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 network ls

有人可以通過docker-compose幫助我在2個節點上部署2個容器。 Swarm正在為我的“集群”工作。 我按照教程進行了驗證。

Compose目前不支持Swarm Mode。

當您在主節點上運行docker compose up時,Compose會為Compose文件中的服務而不是docker service create發出docker run命令,這就是為什么容器都在主節點上docker run原因。 有關選項,請參見此答案

在第二點上,網絡的范圍是1.12 如果檢查您的網絡,您會發現它是在群集級別創建的,但是Compose運行的是引擎級別的容器,看不到群集網絡。

$ docker stack services PL

  • 嘗試使用標簽和放置約束將服務放置在不同的節點上。

示例“ dev-compose-deploy.yml”文件供您參考

version: "3"

services:

  nginx:
    image: nexus.example.com/pl/nginx-dev:latest
    extra_hosts:
      - "dev-pldocker-01:10.2.0.42”
      - "int-pldocker-01:10.2.100.62”
      - "prd-plwebassets-01:10.2.0.62”
    ports:
      - "80:8003"
      - "443:443"
    volumes:
      - logs:/app/out/
    networks:
      - pl
    deploy:
      replicas: 3
      labels:
        feature.description: “Frontend”
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: any
      placement:
        constraints: [node.role == worker]
    command: "/usr/sbin/nginx"

  viz:
    image: dockersamples/visualizer
    ports:
      - "8085:8080"
    networks:
      - pl
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    deploy:
      replicas: 1
      labels:
        feature.description: "Visualizer"
      restart_policy:
        condition: any
      placement:
        constraints: [node.role == manager]

networks:
pl:

volumes:
logs:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM