CentOS 7
 

Docker : Docker-Registry を利用する#1
2015/12/17
 
Docker-Registry をインストールして、Docker イメージのプライベートレジストリサーバーを構築します。
[1] レジストリサーバーとする任意のホストに Docker-Registry をインストールして起動します。
[root@dlp ~]#
yum -y install docker-registry
[root@dlp ~]#
vi /etc/docker-registry.yml
# 19行目:追記

search_backend: _env:SEARCH_BACKEND
:sqlalchemy
# 21行目:検索用DB保管場所 (必要があれば変更)

sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite:////tmp/docker-registry.db
# 74行目:イメージ保管場所 (必要があれば変更)

storage_path: _env:STORAGE_PATH:/var/lib/docker-registry
# イメージ保管ディレクトリ作成

[root@dlp ~]#
mkdir /var/lib/docker-registry

[root@dlp ~]#
systemctl start docker-registry

[root@dlp ~]#
systemctl enable docker-registry
# アクセス可能か確認

[root@dlp ~]#
curl localhost:5000

"\"docker-registry server\""
[2] 任意の Docker ノードからプライベートレジストリを利用するにあたり、Docker サービスはデフォルトでは HTTPS でアクセスするため、HTTP でアクセスするには Docker ノード上での設定変更が必要です。
HTTPS アクセスの場合の設定はこちらを参照ください
[root@node01 ~]#
vi /etc/sysconfig/docker
# 23行目:コメント解除し、Docker-Registry サーバーを指定

INSECURE_REGISTRY='--insecure-registry
dlp.srv.world:5000
'
[root@node01 ~]#
systemctl restart docker
[3] 任意の Docker ノードのローカルイメージをプライベートレジストリに保存するには以下のように実行します。
# タグ付けをして push する

[root@node01 ~]#
docker tag web_server dlp.srv.world:5000/httpd

[root@node01 ~]#
docker push dlp.srv.world:5000/httpd

[root@node01 ~]#
docker images

REPOSITORY                    TAG       IMAGE ID        CREATED              VIRTUAL SIZE
web_server                    latest    4d62ac763587    About a minute ago   282.8 MB
dlp.srv.world:5000/httpd   latest    4d62ac763587    About a minute ago   282.8 MB
docker.io/centos              latest    14dab3d40372    36 hours ago         194.7 MB
[4] 任意の Docker ノードでプライベートリポジトリのイメージを取得するには以下のように実行します。
[root@node02 ~]#
docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

# プライベートレジストリをキーワード「httpd」で検索

[root@node02 ~]#
docker search dlp.srv.world:5000/httpd

INDEX          NAME                                  DESCRIPTION   STARS     OFFICIAL   AUTOMATED
srv.world   dlp.srv.world:5000/library/httpd                 0

[root@node02 ~]#
docker pull dlp.srv.world:5000/httpd

[root@node02 ~]#
docker images

REPOSITORY                    TAG      IMAGE ID        CREATED             VIRTUAL SIZE
dlp.srv.world:5000/httpd   latest   4d62ac763587    14 minutes ago      282.8 MB
 
Tweet