docker-swarm

docker-swarm

创建节点

创建manager

docker swarm init --advertise-addr=192.168.2.175
# advertise-addr为本机地址

此时会打印如下内容

Swarm initialized: current node (exv40dk2y1hbas9cy8fin3tau) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-477u3suyz9efxxl7t0215y9muwmk4xxhowhruksmrr9u3ylbi5-40knfzidfgpta4uq4rxr6yfqy 192.168.2.175:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

创建worker
在另外一台主机上创建worker节点只要将上面打印的

docker swarm join --token SWMTKN-1-477u3suyz9efxxl7t0215y9muwmk4xxhowhruksmrr9u3ylbi5-40knfzidfgpta4uq4rxr6yfqy 192.168.2.175:2377

复制运行就可以了

在manager主机上查看节点

docker node list

重命名节点名称

hostnamectl set-hostname 名称

service docker restart

service 的操作

查看所有节点

docker node list

创建service

docker service create --name demo --network demo busybox sh -c "while true;do sleep 3600;done"

查看service

docker service ls

查看单独的service

docker service ps demo

docker stack 的操作

docker stack是用来管理 service

创建stack

docker stack deploy cloud-demo --compose-file=docker-compose.yml

删除stack

docker stack rm cloud-demo

查看stack

docker stack ls

查看具体的service

docker stack services cloud-demo

docker-compose.yml具体例子

version: '3'

services:
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
    volumes:
      - mysql-data:/var/lib/mysql
    networks:
      - my-overlay
    deploy:
      mode: global   # 表示不能横向扩展
      placement:
        constraints:
          - node.role == manager  # 只能部署在manager的节点上
  web:
    image: wordpress
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_PASSWORD: root
    networks:
      - my-overlay
    deploy:
      mode: replicated
      replicas: 3   # 横向扩展3个
      restart_policy:
        condition: on-failure   # 启动失败的策略为重启
        delay: 5s             
        max_attempts: 3
      update_config:           # 更新策略
        parallelism: 1         # 同时更新的个数
        delay: 10s             # 更新间隔时间

  visualizer:
    image: dockersamples/visualizer
    ports:
      - "8081:8080"
    stop_grace_period: 1m30s
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    deploy:
      placement:
        constraints:
          - node.role == manager


volumes:
  mysql-data:

networks:
  my-overlay:
    driver: overlay

猜你喜欢

转载自my.oschina.net/u/3628952/blog/1810087