Podman : Registry を利用する2023/11/16 |
Registry をインストールして、コンテナーイメージのプライベートレジストリーサーバーを構築します。
|
|
[1] | Registry をインストールします。 |
[root@dlp ~]# dnf -y install docker-distribution
|
[2] | Firewalld を有効にしている場合は、ポートの許可が必要です。 |
[root@dlp ~]# firewall-cmd --add-port=5000/tcp success [root@dlp ~]# firewall-cmd --runtime-to-permanent success |
[3] | Registry の設定です。 HTTP 通信 且つ 認証なしの場合の設定です。 |
[root@dlp ~]#
vi /etc/docker-distribution/registry/config.yml # デフォルトの設定 # HTTP 且つ 認証なしの場合は変更不要 version: 0.1 log: fields: service: registry storage: cache: layerinfo: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :5000
[root@dlp ~]#
[root@dlp ~]# systemctl enable --now docker-distribution
podman images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/fedora-nginx latest 6a43f18a8fc3 27 minutes ago 447 MB srv.world/fedora-httpd latest 43a608e50bc8 33 minutes ago 459 MB registry.fedoraproject.org/fedora latest ec546109f822 8 days ago 183 MB # ローカルホストから [push] [root@dlp ~]# podman tag fedora dlp.srv.world:5000/fedora:my-registry [root@dlp ~]# podman push dlp.srv.world:5000/fedora:my-registry --tls-verify=false [root@dlp ~]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/fedora-nginx latest 6a43f18a8fc3 28 minutes ago 447 MB srv.world/fedora-httpd latest 43a608e50bc8 34 minutes ago 459 MB registry.fedoraproject.org/fedora latest ec546109f822 8 days ago 183 MB dlp.srv.world:5000/fedora my-registry ec546109f822 8 days ago 183 MB # 他ノードから [pull] [root@node01 ~]# podman pull dlp.srv.world:5000/fedora:my-registry --tls-verify=false [root@node01 ~]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/fedora my-registry ec546109f822 6 days ago 196 MB |
[4] | Basic 認証を有効にする場合は以下のように設定します。 |
[root@dlp ~]#
dnf -y install httpd-tools
[root@dlp ~]#
vi /etc/docker-distribution/registry/config.yml # 最終行に追記 auth: htpasswd: realm: basic-realm path: /etc/containers/registries.d/.htpasswd
[root@dlp ~]#
systemctl restart docker-distribution
# 任意のユーザー登録 # [-c] オプションは新規ファイル作成のため初回のみ付与 [root@dlp ~]# htpasswd -Bc /etc/containers/registries.d/.htpasswd fedora New password: Re-type new password: Adding password for user fedora # 任意のノードでアクセス確認 # 認証していない場合はエラー [root@node01 ~]# podman pull dlp.srv.world:5000/fedora:my-registry --tls-verify=false Trying to pull dlp.srv.world:5000/fedora:my-registry... Error: initializing source docker://dlp.srv.world:5000/fedora:my-registry: reading manifest my-registry in dlp.srv.world:5000/fedora: unauthorized: authentication required # [htpasswd] で登録したユーザーで認証 [root@node01 ~]# podman login dlp.srv.world:5000 --tls-verify=false
Username: fedora
Password:
Login Succeeded!
[root@node01 ~]# podman pull dlp.srv.world:5000/fedora:my-registry --tls-verify=false [root@node01 ~]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/fedora my-registry ec546109f822 6 days ago 196 MB |
[5] | HTTPS でアクセスする場合 且つ Let's Encrypt 等から取得した有効な SSL/TLS 証明書
を使用する場合は以下のように設定します。 当例では、SSL 証明書はリンク先の例のように [/etc/letsencrypt/live/dlp.srv.world] 配下に取得している前提で進めます。 |
[root@dlp ~]# cp -p /etc/letsencrypt/live/dlp.srv.world/{fullchain,privkey}.pem /etc/containers/certs.d/
[root@dlp ~]#
vi /etc/docker-distribution/registry/config.yml # [http] セクション配下に [tls] セクションを追記して証明書を指定
.....
.....
http:
addr: :5000
tls:
certificate: /etc/containers/certs.d/fullchain.pem
key: /etc/containers/certs.d/privkey.pem
.....
.....
[root@dlp ~]#
systemctl restart docker-distribution
# 任意のノードでアクセス確認 [root@node01 ~]# podman pull dlp.srv.world:5000/fedora:my-registry [root@node01 ~]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/fedora my-registry ec546109f822 6 days ago 196 MB |
Sponsored Link |