banner
云野阁

云野阁

闲云野鹤,八方逍遥

使用portainer管理容器

基礎環境#

系統環境:

操作系統:CentOS 7.9

軟體環境:

Docker-26.1.4、Docker Compose-2.27.1 、portainer-2.20.3

配置阿里 yum 源 :

cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

配置防火牆策略:

firewall-cmd --add-port=9443/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

安裝 Docker#

(1)安裝 yum-utils 軟體包(提供 yum-config-manager 實用程式)並設置存儲庫。

# 安裝 yum-utils 軟體包
yum install -y yum-utils
# 設置docker-ce存儲庫
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(2)安裝最新版 docker 和 docker compose。

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

(3)修改 Docker 的資料目錄為 “/data/dockerData”, 並修改 docker 映像源。

# 創建Docker守護進程配置文件,編輯配置文件/etc/docker/daemon.json,配置docker資料目錄,並修改docker映像源
echo '{
  "data-root": "/data/dockerData",
    "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://dockerhub.azk8s.cn",
    "https://mirror.ccs.tencentyun.com",
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.m.daocloud.io",
    "https://noohub.ru",
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud"
  ]
}' > /etc/docker/daemon.json

(4)啟動 Docker 服務,並設置為開機自啟動。

# 啟動Docker服務
systemctl start docker
# 設置Docker為開機自啟動
systemctl enable docker
# 查看Docker服務狀態
systemctl status docker

安裝 portainer#

(1)拉取 portainer 映像並創建容器

方式一:使用 docker 命令

docker run -d -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer:/data portainer/portainer-ce:2.20.3

方式二:使用 compose 文件安裝

vi portainer.yml
--------------------------------------------------
services:
  portainer:
    image: portainer/portainer-ce:2.20.3
    container_name: portainer
    restart: always
    ports:
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/portainer:/data
    user: "0"
    networks:
      net:
        ipv4_address: 172.20.110.10

networks:
 net:
  driver: bridge
  ipam:
   config:
    - subnet: 172.20.110.0/24
--------------------------------------------------
#運行安裝
docker compose -f portainer.yml up -d

(2)初始化 portainer,設置 admin 用戶的密碼

1

(3)進入系統後,點擊 “Get Started”,查看本機的容器,如下圖。

2

多實例環境管理#

Portainer 可以管理多個環境,包括 Docker Standalone、Docker Swarm、Kubernetes、ACI 等。

使用 Portainer 管理多 Docker Standalone 實例,有兩種方式,分別是 api 和客戶端容器。

方式一:使用 docker api 管理 Docker Standalone 實例#

(1)在其他實例環境上,修改 docker 服務的配置文件,讓 Docker 守護進程通過 TCP 在的 2375 端口監聽連接,並通過 UNIX 套接字在本地監聽連接。

即在 ExecStart 後添加 - H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 參數。

vi /usr/lib/systemd/system/docker.service
#修改內容如下
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

(2)重新加載配置,使配置生效。

#重新加載配置
systemctl daemon-reload
#重啟docker
systemctl restart docker

(3)設置防火牆策略

#只允許Portainer主機訪問該主機的2375端口
sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.22.23/32" port protocol="tcp" port="2357" accept"

(4)點擊 Environment-related 菜單中的 Environments,點擊 Add environment 按鈕,添加 Docker Standalone,如下圖。

3

(5)選擇 API,填寫名稱和 Docker Standalone 實例的 ip 和端口(2375),點擊 Connect,連接成功後,點擊 Close,如下圖。

4

方式二:使用 agent 容器管理 Docker Standalone 實例#

(1)在其他實例環境上,部署 agent 容器進行連接,具體命令如下:

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

(2)設置防火牆策略

#只允許Portainer主機訪問該主機的9001端口
sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.22.23/9001" port protocol="tcp" port="9001" accept"

連接成功後,在 Home 界面查看兩種方式連接的 Docker Standalone 實例

5

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。