[英]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 compose v3做到這一點。
https://docs.docker.com/engine/swarm/#feature-highlights https://docs.docker.com/compose/compose-file/
您必須使用命令初始化群集集群
$ docker swarm init
您可以將更多節點添加為工作者或管理者-
將兩個節點都添加到集群后,傳遞compose v3(即部署文件)以創建堆棧。 撰寫文件應僅包含預定義的映像,您不能提供用於以Swarm模式部署的Dockerfile。
$ docker stack deploy -c dev-compose-deploy.yml --with-registry-auth PL
查看您的堆棧服務狀態-
$ 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.