CentOS7

Docker : Docker-Registry (認証)

ユーザー認証を要求する Docker Private Registry を設定します。

Registry Pod を起動するホストで こちらを参考に SSL証明書を取得しておきます。

認証ユーザー登録用に htpasswd をインストールします。

[root@localhost ~]# yum -y install httpd-tools

任意のユーザーを登録します。

[root@localhost ~]# htpasswd -Bc /etc/docker/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin

Registry ノード上の [/etc/letsencrypt/live/(FQDN)] 配下に証明書を取得しているものとして進めます。 上記で作成した認証ファイルと証明書を指定して Registry を起動します。

[root@localhost ~]# cp /etc/letsencrypt/live/centos.hoge.com/fullchain.pem /etc/docker/certs.d/server.crt
[root@localhost ~]# cp /etc/letsencrypt/live/centos.hoge.com/privkey.pem /etc/docker/certs.d/server.key
[root@localhost ~]# docker run -d -p 5000:5000 --restart=always --name registry \
-v /var/lib/registry:/var/lib/registry \
-v /etc/docker/certs.d:/certs \
-v /etc/docker:/auth \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/server.key \
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/.htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
registry:2
Trying to pull repository docker.io/library/registry ...
2: Pulling from docker.io/library/registry
Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54
Status: Downloaded newer image for docker.io/registry:2
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
db00df47085f registry:2 "/entrypoint.sh /e..." 31 sec Up 29 sec 0.0.0.0:5000->5000/tcp registry

任意の Docker ノードからプライベートレジストリに認証して Push/Pull するには以下のように実行します。

# 登録したユーザーで認証
[root@node01 ~]# docker login centos.hoge.com:5000
Username: admin
Password:
Login Succeeded
[root@node01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest b175e7467d66 6 days ago 109 MB
[root@node01 ~]# docker tag nginx centos.hoge.com:5000/nginx
[root@node01 ~]# docker push centos.hoge.com:5000/nginx
The push refers to a repository [centos.hoge.com:5000/nginx]
77e23640b533: Pushed
757d7bb101da: Pushed
3358360aedad: Pushed
latest: digest: sha256:d903fe3076f89ad76afe1cbd0e476d9692d79b3835895b5b3541654c85422bf1 size: 948
[root@node01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest b175e7467d66 6 days ago 109 MB
centos.hoge.com:5000/nginx latest b175e7467d66 6 days ago 109 MB

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS