Portainer 是一个轻量级且直观的开源容器管理工具,专为简化和管理 Docker 和 Kubernetes 环境而设计。它提供了一个用户友好的图形界面,使用户能够方便地管理容器、镜像、网络和卷。
通过docker安装portainer。
portainer/portainer-ce:alpine-sts和portainer/agent:alpine-sts两个镜像管理两台服务器上的docker。
安装portainer
服务器A上安装镜像portainer/portainer-ce:alpine-sts。
安装镜像,运行以下脚本启动容器。
#!/usr/bin/bash
BASE_DIR=$(pwd)
CONTAINER=portainer
IMAGE=portainer/portainer-ce:alpine-sts
docker stop $CONTAINER
docker rm $CONTAINER
docker run \
-d \
--restart=always \
--name $CONTAINER \
--label hidden=true \
-p 9092:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $BASE_DIR/data:/data \
$IMAGE
此时可以看到服务器A上的docker环境,已经自动显示。
安装portainer agent
服务器B上安装镜像portainer/agent:alpine-sts。
安装镜像,运行以下脚本启动容器。
#!/usr/bin/bash
BASE_DIR=$(pwd)
CONTAINER=portainer-agent
IMAGE=portainer/agent:alpine-sts
docker stop $CONTAINER
docker rm $CONTAINER
docker run \
-d \
--restart=always \
--name $CONTAINER \
--label hidden=true \
-p 9091:9001 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $BASE_DIR/data:/var/lib/docker/volumes \
$IMAGE
配置agent
在服务器A上配置服务器B的agent。
如果不想在portainer的web ui中看到portainer和portainer-agent,在启动容器时加上--label hidden=true
,然后在管理员界面进行如下设置,好处是portainer不能管理自己,防止误删除。