1、创建一个overlay网络
docker network create --driver overlay --attachable --subnet 10.12.0.0/24 portainer_network
- 为何要先创建一个overlay网络?是为了保持后续创建的全局服务
portainer_agent
与Portainer容器位于一个网络内,便于相互通信。 - 为何要手动创建网络?为了手动指定网段,防止自动创建时与实际网段冲突。
2、在manager节点上安装portainer
# 不挂载数据卷
docker run -d -p 9000:9000 --network portainer_network --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer portainer/portainer
# 挂载数据卷
docker run -d -p 9000:9000 --network portainer_network --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /docker/data/portainer:/data portainer/portainer --name prtainer portainer/portainer
3、在swarm集群上创建portainer_agent服务
docker service create --name portainer_agent --network portainer_network --mode global --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes portainer/agent
mode指定为 global
,即,在swarm集群的所有active节点上尝试启动对应的docker容器;
通过manager节点上执行docker service ls
,以及各个节点上执行docker ps
查看服务及容器启动成功
4、登入Portainer管理UI,添加Agent
作为Swarm集群的统一EndPoint
30_1.png
Name根据需要命名,Agent URL填写 tasks.portainer_agent:9001
即可。该值由之前创建的服务 portainer_agent
决定。 9001
是portainer_agent的默认访问端口。