代码改变世界

容器编排

2021-05-09 16:49  qgbo  阅读(74)  评论(0编辑  收藏  举报

docker service create --name myredis --replicas 3 redis 

这个命令会跑起来一个redis. 相当于docker run,  这个docker service 只能 在manager 节点 执行

不过,执行docker service ls ,还能看到 这个redis container; docker run 没这个 效果

--replicas 3 这个参数,可以创建多个docker. 相当于几个docker 包了一层,向外提供一个接口。

docker service logs myredis 查看日志

docker service inspect myredis 查看详情

docker rm dockerId,swarm 会新建这个container, 保持数量不变

docker service rm myredis 移除这个service

docker swarm leave 移除这个node 下的所有容器

dokcer images ,镜像还存在

docker scale 扩容

docker info :可以查看Swarm 信息
docker swarm init

docker swarm join-token worker

docker swarm leave --force: 会让这个状态为 Swarm: inactive。 所有swarm 服务停止。
docker node ls: 这个命令,必须是在Swarm的manager 节点上执行。worker 节点执行:

 

 

docker stack deploy -c xx.yml 发布多个service。

综上:Service 管理相同的docker 镜像,Stack 管理多个service,这个文件里又多个Service.

 

只有一个node,也能起好几个实例:

version: '3.8'
services:
  mq:
    image: rabbitmq:3.9-management
    restart: always
    ports:
      - "5672:5672"
      - "15672:15672"
    deploy:
      mode: replicated
      replicas: 3
      placement:
        constraints:
          - "node.labels.scope==middleware"
        max_replicas_per_node: 4
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure
        max_attempts: 3
        window: 120
      senvironment:
      	- RABBITMQ_ERLANG_COOKIE="xxl_civic_xxl"
      resources:
        limits:
          cpus: '0.50'
          memory: 50M
        reservations:
          cpus: '0.25'
          memory: 20M
Compose.yml

 这能在浏览器上http://ryrkj.com:15672/   看到第一个实例的详情,只能看到一个节点。这时还不是集群。

 进入其中一个容器:rabbit 的相关命令如下: docker exec -it 1eacefa4fbce /bin/bash

root@1eacefa4fbce:/# ls /usr/local/bin
c_rehash  ct_run  dialyzer  docker-entrypoint.sh  epmd  erl  erlc  escript  openssl  rabbitmqadmin  run_erl  to_erl  typer
root@1eacefa4fbce:/# ls /opt/rabbitmq/sbin
rabbitmq-defaults  rabbitmq-diagnostics  rabbitmq-env  rabbitmq-plugins  rabbitmq-queues  rabbitmq-server  rabbitmq-streams  rabbitmq-upgrade  rabbitmqctl

> rabbitmqadmin declare exchange name=my-new-exchange type=fanout

如果操作的是一个浏览器上的那个节点,浏览器会发现这Exchange。

进入另一个节点,

执行    rabbitmqctl join_cluster --ram rabbit@c039d5862cc9  加入节点