千家信息网

『高级篇』docker之DockerSwarm的集群环境搭建(28)

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!原文链接地址:『高级篇』docker之DockerSwarm的集群环境搭建(28)上次了解了docker Swarm,这次一起动手操作,搭建s
千家信息网最后更新 2026年11月03日『高级篇』docker之DockerSwarm的集群环境搭建(28)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『高级篇』docker之DockerSwarm的集群环境搭建(28)

上次了解了docker Swarm,这次一起动手操作,搭建swarm的集群环境,一起测试下三种环境下的服务发现和负载均衡,一个自定义下的overlay下的网络发现,一个Ingress下的服务发现,一个是Ingress+link下的,跟上次Mesos一样我们先建立三台服务虚拟机。 源码:https://github.com/limingios/msA-docker swarm分支

server01

docker运行状态,切换到root用户

docker version

默认情况下network的结构

docker network ls

查看ip地址

ifconfig

设置manager,初始化manager节点,添加一个work在swarm上,运行下面的命令可以添加work,加入到这个manage中。

docker swarm init --advertise-addr 192.168.66.101

server02

执行添加到manager的命令。

server03

执行添加到manager的命令。

在server01中添加了server02 和server03的work后,查看网络

之前是只有三个,一个bridge,一个host,一个none;多了个docker_gwbridge,一个ingress。

ingress的overlay网络,这个网络需要借助docker-gwbridge这个网桥进行连接。如果是

docker network ls

docker swarm的如何高可用

目前的manager只有一个,如果manager节点挂了,这个集群也就挂了。docker swarm 有高可用的状态,就是将server02 和server03 ,manager节点本身也可以提供服务运行的状态,即便我们三个节点都是manager也是可以运行服务的。现在把三个节点都变成manager节点试一下。

docker node ls

升级server02成为manager。变成了Reachable,这个跟zookeeper的原理是一样的,当一个leader挂了之后,通过选取可以产生一个新的leader。

docker node promote docker-swarm-02docker node promote docker-swarm-03

PS:以上就完成高可用的docker swarm的集群环境,其实真心比其他的简单。

测试集群环境

  • 小的镜像测试

创建一个小的镜像,完成ping www.baidu.com

docker service create --name test1 alpine ping www.baidu.comdocker service ls

``` 查看日志
docker service logs test1

![](https://upload-images.jianshu.io/upload_images/11223715-f6ac8c36146450df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)* nginx的环境测试``` bashdocker service create --name nginx nginxdocker service ls

曾经有老铁问我,如果是容器创建了需要修改创建时候的配置怎么办,我告诉他想给当前容器做个tag打成一个镜像A,然后通过镜像A,生成新的一个新的容器在run里增加你的配置,记住前提是要把原来的容器删除。

对于docker swarm中的service 难道也需要删除?其实不需要直接通过docker service update来完成。

docker service lsdocker service update --publish-add 8080:80 nginxdocker service ls

现在的nginx 太少了只有1个,如果挂了,还要打电话让人解决。其实还是有办法的。多起几个。可以多等一会,时间就不紧急了,吃了饭再过去。

docker service scale nginx=3docker service ls

  • 默认使用的Ingress下的overlay网络,两个service之前是无法通过service的名称进行访问的。可以试试。

自定义网络添加到docker swarm中。

  • 删除刚才创建nginx 和test1
docker service rm nginx test1

  • 创建网络

    docker network create -d overlay idig8-overlay

  • 创建一个service指定网络

    nginx

docker service create --network idig8-overlay --name nginx -p 8080:80 nginx

alpine

 docker service create --network idig8-overlay --name alpine alpine ping www.baidu.com

  • 查看alpine所在的机器,进入容器,ping nginx

    查看是在server02这台机器上。

docker service ps alpine

进入server02机器,ping 容器名称是nginx的 发现可以ping通

docker psdocker exec -it 387dd735de74 shping nginx

PS:当前的网络Ingress,容器之间的访问方式可以通过名字访问。在自定义的网络下swarm每个service,都创建一个dnsadress,一定要是自定义的overlay的。

  • dnsrr的方式

    描述是参数不对,在dnsrr下不能开放端口的,他们之间是冲突的。dnsrr是给只通过名字访问。如果不加入overlay的网络它就是独立的。

    docker service create --name nginx-b --endpoint-mode dnsrr -p  8090:80 nginx

如果想dnsrr网络可以被访问,可以针对这个service增加overlay的网络

docker service updata --network-add idig8-overlay nginx-b
  • docker stack

    单机模式下,我们可以使用 Docker Compose 来编排多个服务,而在Docker Swarm 通过 Docker Stack 我们只需对已有的 docker-compose.yml 配置文件稍加改造就可以完成 Docker 集群环境下的多服务编排。

version: "3.4"services:  alpine:    image: alpine    command:      - "ping"      - "www.baidu.com"    networks:      - "idig8-overlay"    deploy:      replicas: 2      restart_policy:        condition: on-failure      resources:        limits:          cpus: "0.1"          memory: 50M    depends_on:      - nginx  nginx:    image: nginx    networks:      - "idig8-overlay"    ports:      - "8080:80"networks:  idig8-overlay:    external: true

查看stack的命令,上边走的是vip负载均衡的方式而不是dnsrr的方式。

docker stack ls# -c 文件名 组名docker stack deploy -c service.yml  test

PS:dockerSwarm的服务发现,负载均衡。

网络 服务 环境 容器 集群 节点 命令 方式 镜像 测试 运行 均衡 三个 只有 机器 状态 配置 之间 名字 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 西安纸贵互联网科技有限公司 北京路客互联网科技有限公司 云信互联网科技有限公司 互联网科技活动banner 互联网科技保险 科技与互联网 壹账通互联网科技 居家互联网科技有限公司 成都玖崟互联网科技有限公司乐商圈怎么样 恒银科技与互联网金融 宁夏众和广鑫互联网科技有限公司 广州市恰铎互联网科技有限公司 开一家科技互联网公司需要多少钱 合肥互联网科技公司公章图片 产业互联网科技服务公司 广州梦谷互联网科技有限公司领导 国产互联网科技公司 互联网时代高科技布局 科技发展第三阶段互联网时代 互联网金融科技 华服互联网科技怎么样 云信互联网科技有限公司 与互联网科技公司 科技互联网的估值 2021互联网科技公司排名 江苏互联网智能科技软件 宇信科技在杭州互联网排第几 湖北辰鑫科技互联网 中国科技和美国互联网
0