Docker 图形化管理工具 Portainer
Docker 提供了许多的命令用来在命令行中管理镜像和容器,但使用命令管理麻烦又枯燥,有什么方法可以轻松管理 Docker 呢? Portainer 是一个可视化的容器镜像的图形管理工具,使用 Portainer 可以轻松管理和维护 Docker 环境。
拉取镜像
首先,查询镜像:
$ docker search portainer
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
portainer/portainer This Repo is now deprecated, use portainer/p… 2041
portainer/portainer-ce Portainer CE - Making Docker and Kubernetes … 440
thibaudlabat/portainer_32 Portainer built for 32bit Linux [ OUTDATED ]… 1
acicn/portainer-ce 0
thibaudlabat/portainer-ce-32 32-bit / x86 portainer-ce 0
luomoxu/portainer-ce-cn 0
nativeit/portainer-ce 0
6053537/portainer-ce 0
luflo/portainer-ce Eingefrorener Stand von portainer ARM 03.21 0
hanlahanla/portainer-ce 0
22803189/portainer-ce 0
terryromeu3sr/portainer-ce 0
然后拉取镜像:
$ docker pull portainer/portainer
Using default tag: latest
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
717377b83d5c: Pull complete
Digest: sha256:f8c2b0a9ca640edf508a8a0830cf1963a1e0d2fd9936a64104b3f658e120b868
Status: Downloaded newer image for portainer/portainer:latest
docker.io/portainer/portainer:latest
查看镜像:
$ docker images
portainer/portainer latest 62771b0b9b09 8 months ago 79.1MB
创建容器
创建映射目录:
$ mkdir -p /home/workspace/Portainer/data
创建容器:
$ docker run -d -p 9000:9000 \
--name portainer \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/workspace/Portainer/data:/data \
portainer/portainer
说明
这里也可以使用挂载卷来保存数据,首先创建卷:
$ docker volume create portainer_data
创建容器:
$ 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
查看容器:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
300fa84acb99 portainer/portainer "/portainer" 51 seconds ago Up 50 seconds 0.0.0.0:9000->9000/tcp portainer
访问 Portainer 服务
在浏览器中输入 http://IP:9000/ 可以访问 Portainer 服务。首次登录,需要设置管理账户和密码:
密码设置完成后,需要选择 Docker 环境,Portainer 提供了四种方式连接到 Docker 环境,分别是 Local、Remote、Agent 和 Azure。这里选择 Loacl:
进入 Portainer:
配置中文环境
如果想使用中文界面,需要进行汉化配置,过程如下:
# Step1:下载汉化包
$ git clone https://gitee.com/faith01238/Dockers.git
Cloning into 'Dockers'...
remote: Enumerating objects: 72, done.
remote: Counting objects: 100% (72/72), done.
remote: Compressing objects: 100% (69/69), done.
remote: Total 72 (delta 4), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (72/72), 5.51 MiB | 1.31 MiB/s, done.
# Step2:下载完成后会在当前目录生成 Dockers 目录,进入 Dockers/Portainer/ 目录
$ cd Dockers/Portainer/
$ ls
public
# Step3:将 public 目录拷贝到 /home/workspace/Portainer 目录下
$ cp -rf public/ /home/workspace/Portainer/
$ ls /home/workspace/Portainer/
data public
# Step4:创建容器
$ docker run -d -p 9000:9000 \
--name portainer \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/workspace/Portainer/data:/data \
-v /home/workspace/public/:/public \
portainer/portainer
Portainer 管理远程 Docker 主机
按照前面的章节,我们可以使用 portainer 管理本地的 Docker 主机。正如前面提到的,Portainer 提供了四种方式连接到 Docker 环境,分别是 Local、Remote、Agent 和 Azure。这一节将介绍使用 Portainer 管理远程 Docker 主机,即 Remote。
配置 Docker 主机
Portainer 安装在一台主机上,这里是 192.168.194.136,需要远程管理 192.168.164.133 的 Docker 主机,那么配置需要远程的 Docker 主机,使其允许远程连接。
首先,修改 Docker 主机 daemon.json 文件:
$ vim /etc/docker/daemon.json
添加 hosts 配置项:
{
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
修改 /usr/lib/systemd/system/docker.service 配置文件 vim /usr/lib/systemd/system/docker.service
:
# 将 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 修改为
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock
说明
也可不配置 /etc/docker/daemon.json 文件,直接修改 /usr/lib/systemd/system/docker.service:
# 将 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 修改为 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重启 Docker 服务:
$ systemctl daemon-reload
$ systemctl restart docker.service
注意
如果系统安装了防火墙,请关闭防火墙或者开放 2375 端口,允许远程连接。
配置 Portainer 远程控制
登录 Portainer,在菜单栏选择 Endpoints:
点击 Add endpoint,添加节点,然后选择 Docker 选项卡,填写名称和 URL,然后点击 Add endpoint:
添加完成后,可以在 Endpoint 菜单和 Home 菜单下面看到 Docker 主机的列表: