一、安装portainer

1.下载Portainer的Docker镜像

docker pull portainer/portainer

2.运行docker

docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer

3.创建管理员账号,访问地址:http://ip:9000/

4.选择local管理本地,选择remote可以管理多台服务器中的docker

二、docker 管理多台服务器

Docker节点主机需开启Docker API端口,这种方式需要重启当前的Docker服务,但节点主机无需单独部署Agent服务。

 修改/usr/lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

在ExecStart启动项添加如下内容:

ExecStart= xxxx -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

xxx是代表原有的参数,追加 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 内容

保存启动文件后重启服务

systemctl daemon-reload
systemctl restart docker

ss -unlpt | grep 2375 检查看是否生效

 portainer页面Endpoints菜单通过Docker API 添加其他Docker主机

由于docker API方式需要重启dockers,会影响现有运行程序,可以采用Agent方式管理

管理节点部署master

docker run -d -p 9000:9000 --name portainer --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -v  portainer_data:/data portainer/portainer 

-v /var/run/docker.sock:/var/run/docker.sock:挂载本地 /var/run/docker.socker与容器的/var/run/docker.socker连接
-v portainer_data:/data:数据持久化

节点主机部署agent

docker run -d -p 9001:9001 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐