Podman : Registry を利用する2026/01/09 |
|
Registry をインストールして、コンテナーイメージのプライベートレジストリーサーバーを構築します。 |
|
| [1] | Registry をインストールします。 |
|
root@dlp:~ # pkg install -y docker-registry
|
| [2] | Registry の設定です。 HTTP 通信 且つ 認証なしの場合の設定です。 |
|
root@dlp:~ #
vi /usr/local/etc/docker-registry/config.yml # [auth] セクションはコメント化
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
#auth:
# htpasswd:
# realm: basic-realm
# path: /etc/registry
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
root@dlp:~ #
root@dlp:~ # service docker_registry enable registry enabled in /etc/rc.conf root@dlp:~ # service docker_registry start
podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/freebsd-nginx latest 3cd54285ea87 29 minutes ago 1.02 GB localhost/freebsd-httpd latest dbf5f8b9e7e2 38 minutes ago 1.19 GB localhost/freebsd-base latest afb96df72092 About an hour ago 902 MB quay.io/centos/centos stream10 e9ac565bc256 2 days ago 316 MB docker.io/library/ubuntu latest c3a134f2ace4 2 months ago 80.6 MB # ローカルホストから [push] root@dlp:~ # podman tag localhost/freebsd-base dlp.srv.world:5000/freebsd-base:my-registry root@dlp:~ # podman push dlp.srv.world:5000/freebsd-base:my-registry --tls-verify=false Getting image source signatures Copying blob 6af2ef15f616 done | Copying config afb96df720 done | Writing manifest to image destinationroot@dlp:~ # podman images EPOSITORY TAG IMAGE ID CREATED SIZE localhost/freebsd-nginx latest 3cd54285ea87 32 minutes ago 1.02 GB localhost/freebsd-httpd latest dbf5f8b9e7e2 40 minutes ago 1.19 GB dlp.srv.world:5000/freebsd-base my-registry afb96df72092 About an hour ago 902 MB localhost/freebsd-base latest afb96df72092 About an hour ago 902 MB quay.io/centos/centos stream10 e9ac565bc256 2 days ago 316 MB docker.io/library/ubuntu latest c3a134f2ace4 2 months ago 80.6 MB # リモートホストから [pull] root@node01:~ # podman pull dlp.srv.world:5000/freebsd-base:my-registry --tls-verify=false root@node01:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/freebsd-base my-registry afb96df72092 About an hour ago 902 MB |
| [3] | Basic 認証を有効にする場合は以下のように設定します。 |
|
root@dlp:~ #
pkg install -y apache24
root@dlp:~ #
vi /usr/local/etc/docker-registry/config.yml # [auth] セクションをコメント解除して [path] 変更
auth:
htpasswd:
realm: basic-realm
path: /usr/local/etc/containers/.htpasswd
root@dlp:~ #
service docker_registry restart
# 任意のユーザー登録 # [-B] ⇒ bcrypt を使用する : registry は bcrypt のみサポート # [-c] ⇒ オプションは新規ファイル作成のため初回のみ付与 root@dlp:~ # htpasswd -Bc /usr/local/etc/containers/.htpasswd freebsd
# 任意のノードでアクセス確認 # 認証していない場合はエラー root@node01:~ # podman pull dlp.srv.world:5000/freebsd-base:my-registry --tls-verify=false Trying to pull dlp.srv.world:5000/freebsd-base:my-registry... Error: unable to copy from source docker://dlp.srv.world:5000/freebsd-base:my-registry: initializing source docker://dlp.srv.world:5000/freebsd-base:my-registry: reading manifest my-registry in dlp.srv.world:5000/freebsd-base: authentication required # [htpasswd] で登録したユーザーで認証 root@node01:~ # podman login dlp.srv.world:5000 --tls-verify=false
Username: freebsd
Password:
Login Succeeded!
root@node01:~ # podman pull dlp.srv.world:5000/freebsd-base:my-registry --tls-verify=false root@node01:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/freebsd-base my-registry afb96df72092 About an hour ago 902 MB |
| [4] | HTTPS でアクセスする場合 且つ Let's Encrypt 等から取得した有効な SSL/TLS 証明書
を使用する場合は以下のように設定します。 当例では、SSL 証明書はリンク先の例のように [/usr/local/etc/letsencrypt/live/dlp.srv.world] 配下に取得している前提で進めます。 |
|
root@dlp:~ # cp -p /usr/local/etc/letsencrypt/live/dlp.srv.world/*.pem /usr/local/etc/containers/certs.d/
root@dlp:~ #
vi /usr/local/etc/docker-registry/config.yml # [http] セクション配下に [tls] セクションを追記して証明書を指定
.....
.....
http:
addr: :5000
tls:
certificate: /usr/local/etc/containers/certs.d/fullchain.pem
key: /usr/local/etc/containers/certs.d/privkey.pem
.....
.....
root@dlp:~ #
service docker_registry restart
# 任意のノードでアクセス確認 root@node01:~ # podman pull dlp.srv.world:5000/freebsd-base:my-registry root@node01:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/freebsd-base my-registry afb96df72092 About an hour ago 902 MB |
| Sponsored Link |
|
|