CentOS 7
Sponsored Link

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.....'
[root@node01 ~]#
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
 
Tweet