Docker : Docker-Registry を利用する
2015/12/17 |
Docker Private Registry を設定して、自身のローカル環境に Docker イメージを保存します。
|
|
[1] | Registry 用のイメージが公式から提供されているため、イメージを Pull して 容易に Private Registry を構築できます。 下記設定の場合、イメージは ローカル環境の [/var/lib/registry] 配下に保存されます。 |
[root@dlp ~]# docker run -d -p 5000:5000 -v /var/lib/registry:/var/lib/registry --restart=always --name registry registry:2 Trying to pull repository docker.io/library/registry ... 2: Pulling from docker.io/library/registry 81033e7c1d6a: Pull complete Status: Downloaded newer image for docker.io/registry:2 5188ec6904756070138edfc49d4c0f231841bfbdd620556a85eb44b201b37b31[root@dlp ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5188ec690475 registry:2 "/entrypoint.sh /e..." 16 sec ago Up 14 seconds 0.0.0.0:5000->5000/tcp registry |
[2] | 任意の Docker クライアントからプライベートレジストリを利用するにあたり、デフォルトでは
HTTPS でアクセスするためエラーとなります。そのため HTTP でアクセスするには Docker クライアント上での設定変更が必要です。 HTTPS アクセスの場合の設定はこちらを参照ください。 |
[root@node01 ~]#
vi /etc/sysconfig/docker # 4行目:Docker-Registry サーバーの URL を追記 OPTIONS=' --insecure-registry dlp.srv.world:5000 --selinux-enabled --log-driver=journald.....'
systemctl restart docker
|
[3] | 任意の Docker ノードのローカルイメージをプライベートレジストリに Push/Pull するには以下のように実行します。 |
[root@node01 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest e934aafc2206 9 days ago 199 MB # タグ付けをして push する [root@node01 ~]# docker tag centos dlp.srv.world:5000/centos [root@node01 ~]# docker push dlp.srv.world:5000/centos The push refers to a repository [dlp.srv.world:5000/centos] 43e653f84b79: Pushed latest: digest: sha256:191c883e479a7da2362b2d54c0840b2e8981e5ab62e11ab925abf8808d3d5d44 size: 529[root@node01 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest e934aafc2206 9 days ago 199 MB dlp.srv.world:5000/centos latest e934aafc2206 9 days ago 199 MB # 一旦イメージを削除して Pull 可能か確認 [root@node01 ~]# docker rmi docker.io/centos [root@node01 ~]# docker rmi dlp.srv.world:5000/centos [root@node01 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE[root@node01 ~]# docker pull dlp.srv.world:5000/centos Using default tag: latest Trying to pull repository dlp.srv.world:5000/centos ... latest: Pulling from dlp.srv.world:5000/centos 469cfcc7a4b3: Pull complete Digest: sha256:191c883e479a7da2362b2d54c0840b2e8981e5ab62e11ab925abf8808d3d5d44 Status: Downloaded newer image for dlp.srv.world:5000/centos:latest[root@node01 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/centos latest e934aafc2206 9 days ago 199 MB |