『現學現忘』Docker基礎 — 24、Docker圖形化管理工具Portainer

1、Portainer介紹

(1)Portainer 是一款輕量級的圖形化管理工具,通過它我們可以輕鬆管理不同的 Docker 環境。Portainer 部署和使用都非常的簡單,它由一個可以運行在任何 Docker 引擎上的容器組成。

(2)Portainer 功能十分全面,提供狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像,創建容器等操作)、事件日誌顯示、容器控制台操作、Swarm 集群和服務等集中管理和操作、登錄用戶管理和控制等功能。基本能滿足中小型單位對容器管理的全部需求。

簡單來說,Portainer就是Docker的可視化工具,讓我們可以用更直觀的方式來管理和監控Docker裏面的鏡像和容器。

Portainer官網://www.portainer.io/

Portainer官網提供的安裝文檔:

2、Portainer安裝啟動

如果僅有一個Docker宿主機,則可使用單機版運行就可以,來管理該機器上的Docker鏡像、容器等數據。

直接執行如下命令使用獨立容器啟動 Portainer工具。

步驟1:搜索Portainer鏡像

執行命令:docker search Portainer

image

我們下載第一個鏡像就可以。

步驟2:下載Portainer鏡像到本地

執行命令:docker pull portainer/portainer

[root@192 ~]# 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

[root@192 ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
tomcat                9.0       040bdb29ab37   2 months ago   649MB
portainer/portainer   latest    62771b0b9b09   7 months ago   79.1MB

步驟3:運行Portainer鏡像

執行命令:

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

解釋上面命令中的參數含義:

  • -d 以後台方式運行容器;
  • -p 9000:9000 將宿主機端口映射到容器端口;
  • --name portainer 設置容器名稱,若不指定則隨機生成;
  • --restart always 容器退出時總是重新啟動,若需退出手動運行 docker stop portainer
  • -v /var/run/docker.sock:/var/run/docker.sock 將宿主機docker.sock(Docker API)映射到容器;
  • -v portainer_data:/data 映射宿主機數據卷到容器 /data 目錄;
    使用docker volume create --name portainer_data命令,單獨創建數據卷也行。
    命令中還是使用-v portainer_data:/data
  • --privileged-true:(選用)
    使用該參數,container內root擁有真正的root權限。
    否則,container內的root只是外部的一個普通用戶權限。
  • portainer/portainer:Portainer的鏡像名稱。

完成後瀏覽器訪問 //服務器IP:9000/ 進行初始化配置。

注意Portainer的數據存儲在容器內部的 /data 目錄,這樣容器重啟的時候數據會丟失,所以要確保數據持久化。

示例:

image

步驟4:外網主機訪問Portainer容器

其實就是在本地電腦的瀏覽器訪問虛擬機中Docker的Portainer容器。

即瀏覽器訪問 //服務器IP:9000/ 進行初始化配置。

如下圖:

image

3、Portainer初始化配置

輸入密碼進入Portainer。

image

簡單說明一下界面的內容:

Connect Portalner to the Docker environment you want to manage.

將Portalner連接到您要管理的Docker環境。

  • LocalManage the local Docker environment
    管理本地Docker環境。
  • RemoteManage a remote Docker environment
    管理遠程Docker環境(分佈式)。
  • AgentConnect to a Portalner agent
    連接到Portalner代理。
  • AzureConnect to Microsoft Azure ACI
    連接到Microsoft Azure容器實例(ACI)。

Manage the Docker environment where Portalner Is running.

管理運行Portalner的Docker環境。

Ensure that you have started the Portainer contalner with the following Docker flag:

確保已使用以下Docker標誌啟動了Portainer contalner:

剛才在run這個鏡像的時候添加了這些參數。選擇Local,最後點擊Connect進行連接。

如下圖:

image

登錄後我們可以查看服務上各個鏡像、容器、網絡、Volume等信息,並可以對它們進行管理。

關於具體的操作,我們自己點擊試着用用就好了,也可以在網上查查,在實際的工作中用的不多,這裡就不展開了。

說明:Portainer工具我們自己會簡單的用用就可以了,在持續集成CI/CD的時候,我們一般使用Rancher工具

4、Portainer漢化

(1)環境說明:

  • 系統:CentOS 7.8.2003。
  • Docker:20.10.5

(2)上傳漢化文件到服務器:

將下載漢化包解壓之後,並將解壓後的public文件夾上傳到centos系統的根目錄下,如下圖所示:

# 將漢化包public拷貝到/目錄中
[root@192 /]# ll public/
總用量 8
drwxr-xr-x. 2 root root   30 3月  17 22:07 css
drwxr-xr-x. 2 root root 4096 3月  17 22:07 fonts
drwxr-xr-x. 2 root root  272 3月  17 22:07 ico
drwxr-xr-x. 2 root root  165 3月  17 22:07 images
-rw-r--r--. 1 root root 2810 3月  17 22:07 inde

提示:一定要放在根目錄下,我放在其他地方不好使。

(3)啟動Portainer:

就是在上面Portainer啟動命令中加入如下選項:-v /public:/public

[root@192 /]# docker run -d -p 9000:9000 \
> --name portainer \
> --restart always \
> -v /var/run/docker.sock:/var/run/docker.sock \
> -v /tmp/portainer_data:/data \
> -v /public:/public \
> portainer/portainer
b991a3d4058f0abaea218c5b68f6e4987d69ce363c4942ee40e271dd5eb4ca50
[root@192 /]# 

使用瀏覽器訪問如下:

image

image

提示:如果已部署Portainer容器,需要將之前的容器刪除,在重新啟動。