一、Portainer介紹
Docker的可視化管理工具有DockerUI、Shipyard、Rancher、Portainer等,具體的功能差異請查看Docker的可視化管理工具對比,本文使用Portainer工具對Docker環境進行管理。
Portainer是一個輕量級的docker環境管理UI,可以用來管理docker宿主機和docker swarm集群。
Portainer主要功能:
- 提供狀態顯示面板:顯示主機或者swarm集群上有多少鏡像,容器、網絡、數據卷等;
- 應用模板快速部署:可以使用預存的模板或者自己定制的模板快速部署;
- 鏡像網絡數據卷管理:通過頁面進行管理和操作,例如構建鏡像,增刪數據卷等;
- 事件日志顯示:對任何操作有記錄,并且有頁面可以顯示審計日志;
- 容器控制臺操作:查看容器,啟停容器,查看容器占用的性能(內存,cpu等)
- Swarm集群管理:可以管理swarm集群,是最大的優點;
- 登錄用戶管理:有完備的用戶系統,權限控制(高級功能需付費);
頁面功能如下圖:
二 、管理單臺Docker主機
本文基礎環境:
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
$ uname -r
3.10.0-957.5.1.el7.x86_64
$ docker -v
Docker version 19.03.1, build 74b1e89
部署Portiner容器
$ 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
e2563719b606ef475a7fb691aee9e3e2f1d36f76ad28588dc8127f92c4b61473
-v /var/run/docker.sock:/var/run/docker.sock
:掛載本地 /var/run/docker.socker與容器的/var/run/docker.socker連接
-v portainer_data:/data
:數據持久化
配置管理用戶
選擇管理模式,由于這里是單臺Docker主機,我們選擇Local 本機即可
進入管理頁面
三、Docker API 方式管理多臺主機
Docker節點主機需開啟Docker API端口,這種方式需要重啟當前的Docker服務,但節點主機無需單獨部署Agent服務。
$ vim /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[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 tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
........
在ExecStart啟動項添加如下內容:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重啟Docker加載配置
$ systemctl daemon-reload
$ systemctl restart docker
$ ss -ntulp|grep 2375
tcp LISTEN 0 128 :::2375 :::* users:(("dockerd",pid=24991,fd=5))
部署Portainer容器
$ docker run -d -p 9000:9000 --name portainer --restart=always -v portainer_data:/data portainer/portainer
299854fcf045c62f6ddbae2c3d8e27ec4fed1f50efb7a80a6eed3c9b9a670ce3
選擇管理模式,添加遠程Docker主機
portainer頁面Endpoints菜單通過Docker API 添加其他Docker主機
四、Agent方式管理多臺主機
由于Docker API 方式需要重啟Docker服務,會影響現有應用運行,可以采用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
e2563719b606ef475a7fb691aee9e3e2f1d36f76ad28588dc8127f92c4b61473
-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
299854fcf045c62f6ddbae2c3d8e27ec4fed1f50efb7a80a6eed3c9b9a670ce3
在Portainer管理頁面添加Agent主機
關注公眾號獲取視頻教程: