banner
云野阁

云野阁

闲云野鹤,八方逍遥

ポータナを使用してコンテナを管理する

基本環境#

システム環境:

オペレーティングシステム:CentOS 7.9

ソフトウェア環境:

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

Aliyum リポジトリの設定 :

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 イメージをプルし、コンテナを作成します。

方法 1: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

方法 2: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 とクライアントコンテナの 2 つです。

方法 1: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

方法 2: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"

接続が成功したら、ホーム画面で 2 つの方法で接続された Docker Standalone インスタンスを確認します。

5

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。