部署docker swarm
docker swarm用于部署docker容器的集群。类似一个小型的k8s
部署docker swarm
docker swarm集群manager节点至少大于1个,否则集群就会崩溃。这里部署3个manager节点+1个work节点
#先在每台节点上部署好docker
#初始化docker swarm集群
[root@xlys128 harbor]# docker swarm init --advertise-addr=192.168.198.128
Swarm initialized: current node (y8q2r444xc67d80crwug0zez8) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-2u9a7wxs4e4h9mkiug0jg30ucg7kpqq5067gb0pscrhwwa5f1s-9iktk7w73k848sc2d25jaufwa 192.168.198.128:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
#获取manager节点加入命令
[root@xlys128 harbor]# docker swarm join-token manager
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-2u9a7wxs4e4h9mkiug0jg30ucg7kpqq5067gb0pscrhwwa5f1s-c29tzrd4m91t2cr62z34vl2fa 192.168.198.128:2377
#其他节点加入集群,作为manager节点
[root@xlys132 ~]# docker swarm join --token SWMTKN-1-2u9a7wxs4e4h9mkiug0jg30ucg7kpqq5067gb0pscrhwwa5f1s-c29tzrd4m91t2cr62z34vl2fa 192.168.198.128:2377
This node joined a swarm as a manager.
#其他节点加入集群,作为manager节点
[root@xlys133 ~]# docker swarm join --token SWMTKN-1-2u9a7wxs4e4h9mkiug0jg30ucg7kpqq5067gb0pscrhwwa5f1s-c29tzrd4m91t2cr62z34vl2fa 192.168.198.128:2377
This node joined a swarm as a manager.
#其他节点加入集群,作为work节点
[root@xlys134 ~]# docker swarm join --token SWMTKN-1-2u9a7wxs4e4h9mkiug0jg30ucg7kpqq5067gb0pscrhwwa5f1s-9iktk7w73k848sc2d25jaufwa 192.168.198.128:2377
This node joined a swarm as a worker.
#查询集群状态
[root@xlys133 ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
y8q2r444xc67d80crwug0zez8 xlys128 Ready Active Leader 20.10.5
o2qajnr7mvtztlqdjveywrznw xlys132 Ready Active Reachable 20.10.9
lws6zolfku69dufmnwer2u3w1 * xlys133 Ready Active Reachable 20.10.9
n8vri5j409zriiltk3jucvfme xlys134 Ready Active 20.10.9
部署好docker swarm就可以在上面使用docker service 发布服务了
[root@xlys128 harbor]# docker service -h
Flag shorthand -h has been deprecated, please use --help
Usage: docker service COMMAND
Manage services
Commands:
create Create a new service
inspect Display detailed information on one or more services
logs Fetch the logs of a service or task
ls List services
ps List the tasks of one or more services
rm Remove one or more services
rollback Revert changes to a service's configuration
scale Scale one or multiple replicated services
update Update a service
Run 'docker service COMMAND --help' for more information on a command.
创建服务,可以指定副本数,支持弹性扩缩容等
这里注意:本地镜像必须是从本地仓库拉取,不支持从本地node节点读取镜像,而且需要添加参数--with-registry-auth,否则创建容器失败
[root@xlys128 ~]# docker service create -p 61:80 --with-registry-auth --name Nginx --replicas 3 --mount type=bind,target=/usr/local/haproxy/conf,source=/usr/local/src/dockerfile/haproxy/conf 192.168.198.134:8080/xmyd/nginx:1.23.1
jwbqzoan7zksesdq2z7nbvk5z
overall progress: 3 out of 3 tasks
1/3: running [==================================================>]
2/3: running [==================================================>]
3/3: running [==================================================>]
verify: Service converged
[root@xlys128 ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
jwbqzoan7zks Nginx replicated 3/3 192.168.198.134:8080/xmyd/nginx:1.23.1 *:61->80/tcp
[root@xlys128 ~]# docker service ps Nginx
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
eb5sjcwppddc Nginx.1 192.168.198.134:8080/xmyd/nginx:1.23.1 xlys132 Running Running 3 minutes ago
s8102z5op7vv Nginx.2 192.168.198.134:8080/xmyd/nginx:1.23.1 xlys128 Running Running 4 minutes ago
es8q65nhi00g Nginx.3 192.168.198.134:8080/xmyd/nginx:1.23.1 xlys134 Running Running 4 minutes ago
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了