Podman : Registry を利用する2025/10/31 |
|
Registry をインストールして、コンテナーイメージのプライベートレジストリーサーバーを構築します。 |
|
| [1] | Registry をインストールします。 |
|
dlp:~ #
zypper -n install distribution-registry
dlp:~ #
systemctl enable --now registry # Firewalld 稼働中の場合はサービスポート許可 dlp:~ # firewall-cmd --add-port=5000/tcp dlp:~ # firewall-cmd --runtime-to-permanent
|
| [2] | Registry の設定です。 HTTP 通信 且つ 認証なしの場合の設定です。 |
|
dlp:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/suse-nginx latest 2f5e96e113e4 18 minutes ago 439 MB srv.world/suse-httpd latest 155ffb9ef27d 29 minutes ago 393 MB registry.opensuse.org/opensuse/leap latest 004d9956dc10 2 weeks ago 118 MB # ローカルホストから [push] dlp:~ # podman tag opensuse/leap dlp.srv.world:5000/opensuse:my-registry dlp:~ # podman push dlp.srv.world:5000/opensuse:my-registry --tls-verify=false dlp:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/suse-nginx latest 2f5e96e113e4 27 minutes ago 439 MB srv.world/suse-httpd latest 155ffb9ef27d 38 minutes ago 393 MB dlp.srv.world:5000/opensuse my-registry 004d9956dc10 2 weeks ago 118 MB registry.opensuse.org/opensuse/leap latest 004d9956dc10 2 weeks ago 118 MB # 他ノードから [pull] node01:~ # podman pull dlp.srv.world:5000/opensuse:my-registry --tls-verify=false node01:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/opensuse my-registry 004d9956dc10 2 weeks ago 118 MB |
| [3] | Basic 認証を有効にする場合は以下のように設定します。 |
|
dlp:~ #
zypper -n install apache2-utils
dlp:~ #
vi /etc/registry/config.yml # 最終行に [auth] セクションを追記
auth:
htpasswd:
realm: basic-realm
path: /etc/containers/registries.conf.d/.htpasswd
# 任意のユーザー登録 # [-c] オプションは新規ファイル作成のため初回のみ付与 dlp:~ # htpasswd -Bc /etc/containers/registries.conf.d/.htpasswd suse New password: Re-type new password: Adding password for user suse
dlp:~ #
systemctl restart registry
# 任意のノードでアクセス確認 # 認証していない場合はエラー node01:~ # podman pull dlp.srv.world:5000/opensuse:my-registry --tls-verify=false Trying to pull dlp.srv.world:5000/debian:my-registry... Error: initializing source docker://dlp.srv.world:5000/debian:my-registry: reading manifest my-registry in dlp.srv.world:5000/debian: authentication required # [htpasswd] で登録したユーザーで認証 node01:~ # podman login dlp.srv.world:5000 --tls-verify=false
Username: suse
Password:
Login Succeeded!
node01:~ # podman pull dlp.srv.world:5000/opensuse:my-registry --tls-verify=false node01:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/opensuse my-registry 004d9956dc10 2 weeks ago 118 MB |
| [4] | HTTPS でアクセスする場合 且つ Let's Encrypt 等から取得した有効な SSL/TLS 証明書
を使用する場合は以下のように設定します。 当例では、SSL 証明書はリンク先の例のように [/etc/letsencrypt/live/dlp.srv.world] 配下に取得している前提で進めます。 |
|
dlp:~ # cp -p /etc/letsencrypt/live/dlp.srv.world/{fullchain,privkey}.pem /etc/containers/registries.conf.d/ dlp:~ # chown registry /etc/containers/registries.conf.d/{fullchain,privkey}.pem
dlp:~ #
vi /etc/registry/config.yml # [http] セクション配下に [tls] セクションを追記して証明書を指定
.....
.....
http:
addr: 0.0.0.0:5000
tls:
certificate: /etc/containers/registries.conf.d/fullchain.pem
key: /etc/containers/registries.conf.d/privkey.pem
.....
.....
dlp:~ #
systemctl restart registry
# 任意のノードでアクセス確認 # HTTPS のため [insecure-registries] の登録不要 node01:~ # podman pull dlp.srv.world:5000/opensuse:my-registry node01:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/opensuse my-registry 004d9956dc10 2 weeks ago 118 MB |
| Sponsored Link |
|
|