4
16

More than 5 years have passed since last update.

プライベートなdockerのレジストリサーバの構築

Last updated at Posted at 2017-04-11

プライベートなdockerのレジストリサーバの構築

CentOS7(RHEL7)には、docker-distribution という、docker-registry のパッケージが存在するので、わざわざ docker hubから registry を取得する必要が無かった。(2017/07/10)

環境は CentOS 7.3.1611、docker-1.12.6-11

パッケージのインストール

# yum install docker-distribution
# systemctl start docker-distribution.service
# systemctl enable docker-distribution.service

これで、ポート 5000 でサービス待ちを行っている。待ち受けのポート番号やレジストリデータの待避場所を変更したい場合は、定義ファイル config.yml を変更してサービスの再起動を行えばよい。

/etc/docker-distribution/registry/config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /var/lib/registry
http:
    addr: :5000

リクエスト用のポート(5000)を開放する。

# firewall-cmd --add-port=5000/tcp --zone=public --permanent
# firewall-cmd --reload
# firewall-cmd --list-ports

参考

クライアント側の設定

作成したレジストリに対して、登録を実施する。ホストは docker.internal とする。ホスト名を解決するために /etc/hosts に定義を追加する。

192.168.45.131  docker.internal

内部への接続はhttpsで無くてもエラーとならないように /etc/sysconfig/docker の INSECURE_REGISTRY にhttpで接続許可するアドレスを登録し、dockerを再起動する。

/etc/sysconfig/docker
INSECURE_REGISTRY='--insecure-registry docker.internal:5000'

設定を行わないと、以下のエラーが発生する。

Get https://docker.internal:5000/v1/_ping: http: server gave HTTP response to HTTPS client

クライアントのイメージを、レジストリサーバに登録

$ docker images
docker.io/nginx               1.13.1                958a7ae9e569        5 weeks ago         109.4 MB
$ docker tag docker.io/nginx:1.13.1 docker.internal:5000/nginx:1.13.1
$ docker images
docker.internal:5000/nginx    1.13.1                958a7ae9e569        5 weeks ago         109.4 MB
docker.io/nginx               1.13.1                958a7ae9e569        5 weeks ago         109.4 MB
$ docker push docker.internal:5000/nginx:1.13.1
(略)
1.13.1: digest: sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268 size: 948

ただし、検索を行うとエラーとなる。

$ docker search docker.internal:5000/nginx:1.13.1
Error response from daemon: Unexpected status code 404
$ docker search docker.internal:5000
INDEX     NAME      DESCRIPTION   STARS     OFFICIAL   AUTOMATED

原因については不明

参考

OFFICIAL REPOSITORY

4
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
16