Docker Swarm如何部署
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍了Docker Swarm如何部署,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。软件信息软件版本OSUbuntu 16
千家信息网最后更新 2025年12月01日Docker Swarm如何部署
这篇文章主要介绍了Docker Swarm如何部署,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
软件信息
| 软件 | 版本 |
| OS | Ubuntu 16.04.3 LTS |
| Docker | 18.03.0-ce |
主机信息
| ubuntu16.04-1 | 172.31.68.241 | swarm manager |
| ubuntu16.04-2 | 172.31.68.242 | swarm node |
| ubuntu16.04-3 | 172.31.68.243 | swarm node |
swarm初始化
初始化manager
docker swarm init --advertise-addr 172.31.68.241

初始化worker
docker swarm join --token SWMTKN-1-1mn8x6itne5ldwad5bmtgtdkemoim3o53dc7u2b5y5zj1lwj4l-etyttp60hpns5i4jifym7y3hd 172.31.68.241:2377
ps:注意要在两台worker上都要执行
查看node状态
docker node ls
禁止manager的worker功能
docker node update --availability drain ubuntu16.04-1
ps:这样就不会在manager上分配执行任务了
给worker增加label
docker node update --label-add app ubuntu16.04-2docker node update --label-add app ubuntu16.04-3
查看一个node的详细信息
docker node inspect ubuntu16.04-3
ps:要查看某一项具体的信息,可以使用如下命令模式
docker node inspect ubuntu16.04-3 --format "{{ .Status.Addr }}"创建service
创建service,一个副本
docker service create --replicas 1 -p 4000:80 --name hello 172.31.68.241/library/friendlyhello
查看service
docker service lsdocker service ps hello
ps:通过service ps可以看到真实的task是运行在ubuntu16.04-2的,容器的名称叫hello.1。
查看其它节点任务
docker container ls
ps:可以看到在ubuntu16.04-2上,容器的真实名称是:service名称+任务id+一串随机码。而在ubuntu16.04-3上并无相关task运行,因为replicas为1
查看service的详细信息
docker service inspect hello
[ { "ID": "woxqqkoqr6viu8flojtuuht97", "Version": { "Index": 25 }, "CreatedAt": "2018-08-17T07:20:13.503484813Z", "UpdatedAt": "2018-08-17T07:20:13.515429684Z", "Spec": { "Name": "hello", "Labels": {}, "TaskTemplate": { "ContainerSpec": { "Image": "172.31.68.241/library/friendlyhello:latest@sha256:05def471119a0937508cdcb2445cb55375d15257b0a117e954bcd3527c36eac2", "StopGracePeriod": 10000000000, "DNSConfig": {}, "Isolation": "default" }, "Resources": { "Limits": {}, "Reservations": {} }, "RestartPolicy": { "Condition": "any", "Delay": 5000000000, "MaxAttempts": 0 }, "Placement": { "Platforms": [ { "Architecture": "amd64", "OS": "linux" } ] }, "ForceUpdate": 0, "Runtime": "container" }, "Mode": { "Replicated": { "Replicas": 1 } }, "UpdateConfig": { "Parallelism": 1, "FailureAction": "pause", "Monitor": 5000000000, "MaxFailureRatio": 0, "Order": "stop-first" }, "RollbackConfig": { "Parallelism": 1, "FailureAction": "pause", "Monitor": 5000000000, "MaxFailureRatio": 0, "Order": "stop-first" }, "EndpointSpec": { "Mode": "vip", "Ports": [ { "Protocol": "tcp", "TargetPort": 80, "PublishedPort": 4000, "PublishMode": "ingress" } ] } }, "Endpoint": { "Spec": { "Mode": "vip", "Ports": [ { "Protocol": "tcp", "TargetPort": 80, "PublishedPort": 4000, "PublishMode": "ingress" } ] }, "Ports": [ { "Protocol": "tcp", "TargetPort": 80, "PublishedPort": 4000, "PublishMode": "ingress" } ], "VirtualIPs": [ { "NetworkID": "zhamhv5cl7zhr7c7g6n1so6kv", "Addr": "10.255.0.5/16" } ] } }]访问service
curl http://172.31.68.241:4000 -Icurl http://172.31.68.242:4000 -Icurl http://172.31.68.243:4000 -I
ps:随便访问swarm mode集群内的任何一个节点,都可以正常访问该服务。
扩展service
docker service scale hello=2
查看扩展厚的结果
docker service ps hello
swarm config
创建config
docker config create hello-config ./hello-config
查看config
docker config ls
查看详细信息
docker config inspect hello-config
在service中使用config
docker service create --replicas 1 --name config-test --config source=hello-config,target=/mnt/hello-config 172.31.68.241/library/friendlyhello
查看task的运行worker
docker service ps config-test
进入容器查看配置
docker container lsdocker container exec -it b06c415e7cac /bin/bash
ps:如果在启动service的时候不指定config的source/target,则默认config在容器内的挂载目录在/hello-config
查看config的本地目录信息
config一般在容器所在宿主机的/var/lib/docker/containers/container_id/mounts/secrets目录下面,是一个随机字符串文件
swarm secret
config和secret的差别就是一个是本地文件,一个是在tmpfs中存储的
创建secret
#查看secretr文件cat hello-config-secret#创建secretdocker secret create hello-secret ./hello-config-secret#查看secretdocker secret ls
在service中使用secret
启动带secret的service
#启动服务docker service create --replicas 1 --label app --secret hello-secret --name secret-test 172.31.68.241/library/friendlyhello#查看task在哪台机器运行docker service ps secret-test
查看容器中secret信息
docker container exec -it 47c8f6f74ae3 /bin/bash
ps:在使用secret的时候,secret配置一般在/run/secrets/目录下面,名称就是secret名称
感谢你能够认真阅读完这篇文章,希望小编分享的"Docker Swarm如何部署"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
信息
容器
名称
目录
篇文章
运行
任务
文件
就是
时候
节点
软件
服务
配置
主机
价值
兴趣
副本
功能
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
了解互联网保险科技行业
新起航互联网科技有限公司
罗阳租房软件开发
dell910服务器如何连接
上传服务器后登陆无法实现
数据库的myjob在哪
录音服务器怎么远程
萤石云服务器登录密码是多少
数据库 封锁协议
oracle更改数据库名
淘宝订单服务器更新时间
网络安全版实施时间
工业软件开发设计公司
辽宁软件开发技术服务对象
安卓 终端软件开发
为什么会缺少数据库依赖项
网络安全手抄报儿歌七言
华北电力大学数据库原理试卷
数据开发数据库
战地5几个服务器
bt服务器端口
博山资产软件开发服务
上海软件开发人力报价
山西通用软件开发联系方式
无法连接服务器1.1
国企网络安全工作重点
网络安全工作是宣委负责吗
360全景图制作软件开发
网络技术教学的主要内容
查询数据库耗时