docker swarm

manager节点至少配置3台,因为主节点>1台时候集群才可用

1.这里假设有4台服务器 docker 1 2 3 4 来创建一个swarm集群,这四台服务器在一个安全组内,内网之间是可以ping通的
集群有manager节点和worker节点

1.创建集群

在docker1执行以下命令让其成为manager节点

docker swarm init --advertise-addr 服务器内网ip地址

2.使用docker swarm join命令让其他节点加入到该集群,可以以manager和worker角色加入

在manager节点上执行以下命令获取token,然后在要加入集群的服务器上面执行

docker swarm join-token worker/manager

返回以下内容
在这里插入图片描述

创建好后,两个manager两个worker

在这里插入图片描述
3.查看swarm集群,只能在manager节点上执行
docker node ls

4.离开节点

docker swarm leave

docker swrm 弹性扩缩容 把容器看成称服务

1.创建一个服务

docker service create -d -p8888:80 --name my-nginx nginx

也可以指定. --mode参数指定任务在所有节点上跑,还是在worker节点上跑
docker service create -d -p8888:80 --mode= --name my-nginx nginx
2.弹性扩容 使用 docker service scale 命令 扩容到4台
在这里插入图片描述
docker service rm 服务名 删除一个服务

集群创建后会创建一个ingress网络
在这里插入图片描述
并且把集群中的服务器ip加进去,这样集群中的服务器都在一个网络下
在这里插入图片描述

### Docker Swarm 容器编排使用指南 #### 启动并初始化 Swarm 模式集群 为了启动一个 Swarm 集群,需要先确保 Docker 引擎版本不低于 1.12.0[^1]。通过执行命令 `docker swarm init` 来初始化一个新的 Swarm 群集,在此之后可以查看节点状态。 ```bash $ docker swarm init --advertise-addr <MANAGER-IP> Swarm initialized: current node (dxn1zf8p6m9vrzv4jk51g7bwi) is now a manager. ``` #### 添加工作节点到 Swarm 中 一旦有了管理节点,就可以向其中加入工作者节点了。这一步骤可以通过获取上一操作返回的令牌来完成,或者利用 `docker swarm join-token worker` 获取最新的令牌信息,并将其提供给目标机器上的 Docker Daemon: ```bash $ docker swarm join --token SWMTKN-1-... 192.168.1.100:2377 This node joined a swarm as a worker. ``` #### 创建和部署服务栈 创建好 Swarm 集群后,便能够定义应用程序的服务描述文件(通常是 YAML 格式的 Compose 文件)。接着借助于 `docker stack deploy` 命令依据该配置文件中的设定发布整个应用堆栈[^2]。 ```yaml version: '3' services: web: image: nginx ports: - "80:80" redis: image: redis ``` ```bash $ docker stack deploy -c docker-compose.yml mystack Creating network mystack_default Creating service mystack_web Creating service mystack_redis ``` #### 查看运行状况和服务列表 要监控当前 Swarm 上正在运作的服务以及它们的状态,可运用如下指令: ```bash $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS qjdvkrrhbxr mystack_web replicated 1/1 nginx:latest *:80->80/tcp yf0w3u5tqozi mystack_redis replicated 1/1 redis:latest ``` #### 更新现有服务或删除不再需要的服务 当有变更需求时,比如调整副本数量或是替换镜像标签,则只需修改对应的 compose 文件再重复一次 `docker stack deploy` 的过程即可实现平滑升级;而移除某个特定的应用则可通过指定其名称调用 `docker stack rm` 实现。 ```bash $ docker stack rm mystack Removing service mystack_web Removing service mystack_redis Removing network mystack_default ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值