docker-swarm浅尝

1.12 版本以后自带

管理节点: 管理节点负责接受用户的请求,用户的请求中包含用户定义的容器运行状态描述,然后 Swarm 负责调度和管理容器,并且努力达到用户所期望的状态。(ratf 奇数节点)

工作节点: 工作节点运行执行器(Executor)负责执行具体的容器管理任务(Task),例如容器的启动、停止、删除等操作。

1
docker swarm init  (单网卡)

其他节点加入

1
docker swarm join --token SWMTKN-1-2q8i254edy5ibu3lzu78skyhw73qb3yad5hotnkiacc5ngj5je-2ndzf9f12nk370myw1ommxskm 66.42.99.175:2377

###
使用 docker-compose 的yaml 文件 ,加一个字段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: '3'
services:
mysql:
image: mysql:5.7
volumes:
- mysql_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mywordpress
MYSQL_USER: mywordpress
MYSQL_PASSWORD: mywordpress
wordpress:
depends_on:
- mysql # 依赖 mysql
image: wordpress:php7.4
deploy: # 添加字段
mode: replicated
replicas: 2
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: mywordpress
WORDPRESS_DB_PASSWORD: mywordpress
WORDPRESS_DB_NAME: mywordpress
volumes:
mysql_data: {}

验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@imwl-175 docker-compose-test]# docker stack deploy -c docker-compose.yml wordpress
Ignoring unsupported options: restart

Creating network wordpress_default
Creating service wordpress_mysql
Creating service wordpress_wordpress

[root@imwl-175 docker-compose-test]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
0vz3o5n0ww31 wordpress_mysql replicated 1/1 mysql:5.7
pxpnjyk0tase wordpress_wordpress replicated 2/2 wordpress:php7.4 *:8080->80/tcp

[root@imwl-175 docker-compose-test]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
zsgpzdksmq08e6v2u752smigf imwl-124 Ready Active 19.03.14
b4cya676sc3pt5fndub90lsmy * imwl-175 Ready Active Leader 1.13.1
unltyk3nwfon1u6evyledzmlm imwl-244 Ready Active 19.03.14