Debian 10 Buster
Sponsored Link

Docker : Docker-Registry を利用する2019/07/24

 
Docker-Registry をインストールして、Docker イメージのプライベートレジストリサーバーを構築します。
[1]
Docker-Registry コンテナー起動ホスト上で、こちらを参考に SSL証明書を取得しておきます
当例では、SSL 証明書はリンク先の例のように [/etc/letsencrypt/live/dlp.srv.world] 配下に取得しているとし、[Common Name] には [dlp.srv.world] を設定しているものとして進めます。
[2] 作成した証明書を配置し、Registry イメージ (v2) を Pull して起動します。
Registry v2 コンテナーでは、イメージは [/var/lib/regstry] 配下に保管されるため、 該当領域を永続化させるために、ホスト側の [/var/lib/docker/registry] をマウントして利用するよう設定します。
root@dlp:~#
mkdir -p /etc/docker/certs.d/dlp.srv.world:5000

root@dlp:~#
cp -p /etc/letsencrypt/live/dlp.srv.world/cert.pem /etc/docker/certs.d/dlp.srv.world:5000/ca.crt
root@dlp:~#
docker pull registry:2

root@dlp:~#
mkdir /var/lib/docker/registry

root@dlp:~#
docker run -d -p 5000:5000 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain.pem \
-e REGISTRY_HTTP_TLS_KEY=/certs/privkey.pem \
-v /etc/letsencrypt/live/dlp.srv.world:/certs \
-v /var/lib/docker/registry:/var/lib/registry \
registry:2
131143d2def7d089976ce6dd658bf9c4ccc4e43beff3f6932da4d9c81841a768
root@dlp:~#
docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
131143d2def7        registry:2          "/entrypoint.sh /etc…"   11 seconds ago      Up 10 seconds       0.0.0.0:5000->5000/tcp   clever_williamson
[3] Docker ノードのローカルイメージをプライベートレジストリに保存するには以下のように実行します。
# Registry コンテナー上の Docker イメージ一覧

root@dlp:~#
curl https://dlp.srv.world:5000/v2/_catalog

{"repositories":[]}
root@dlp:~#
docker images

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
storage                    latest              51e28000b0fb        8 minutes ago       1.22MB
web_server                 latest              42e95a62ed8e        25 minutes ago      300MB
srv.world/debian_apache2   latest              4295df3e5c82        31 minutes ago      243MB
busybox                    latest              db8ee88ad75f        5 days ago          1.22MB
debian                     latest              00bf7fdd8baf        2 weeks ago         114MB
registry                   2                   f32a97de94e1        4 months ago        25.8MB

# タグ付けをして push する

root@dlp:~#
docker tag debian dlp.srv.world:5000/debian_reg

root@dlp:~#
docker push dlp.srv.world:5000/debian_reg

The push refers to repository [dlp.srv.world:5000/debian_reg]
.....
.....
31b0e148310d: Pushed
latest: digest: sha256:2ea543d7e388e3cee7be9d37ae93b1eab62a108716e64bb71f6fa93948967e73 size: 529
root@dlp:~#
docker images

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
storage                         latest              51e28000b0fb        10 minutes ago      1.22MB
web_server                      latest              42e95a62ed8e        26 minutes ago      300MB
srv.world/debian_apache2        latest              4295df3e5c82        32 minutes ago      243MB
busybox                         latest              db8ee88ad75f        5 days ago          1.22MB
dlp.srv.world:5000/debian_reg   latest              00bf7fdd8baf        2 weeks ago         114MB
debian                          latest              00bf7fdd8baf        2 weeks ago         114MB
registry                        2                   f32a97de94e1        4 months ago        25.8MB

root@dlp:~#
curl https://dlp.srv.world:5000/v2/_catalog

{"repositories":["debian_reg"]}
[4] 任意の Docker ノードでプライベートリポジトリのイメージを取得するには以下のように実行します。
# Registry コンテナー稼働ホストから証明書を取得しておく

root@node01:~#
mkdir -p /etc/docker/certs.d/dlp.srv.world:5000

root@node01:~#
cd /etc/docker/certs.d/dlp.srv.world:5000

root@node01:/etc/...5000#
scp debian@dlp.srv.world:"/etc/docker/certs.d/dlp.srv.world:5000/ca.crt" ./
root@node01:~#
docker pull dlp.srv.world:5000/debian_reg

Using default tag: latest
latest: Pulling from debian_reg
5ae19949497e: Pull complete
Digest: sha256:2ea543d7e388e3cee7be9d37ae93b1eab62a108716e64bb71f6fa93948967e73
Status: Downloaded newer image for dlp.srv.world:5000/debian_reg:latest
root@node01:~#
docker images

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
dlp.srv.world:5000/debian_reg   latest              00bf7fdd8baf        2 weeks ago         114MB
関連コンテンツ