あくまで個人で利用するレジストリのため、http 接続で認証をかけないサクっと構築&利用できる手順となります。
レジストリを構築
すでに Docker Hub 上にレジストリ用のイメージが用意されているため、とても簡単に構築することができます。docker run -d -p 5000:5000 -v /var/docker/data:/var/lib/registry registry
以上で構築完了です!
動作確認
構築したプライベートレジストリにイメージが登録できるか確認してみます。まずはプライベートレジストリに上げるためのイメージにタグをつけます。
今回は軽量な alpine イメージをそのまま利用します。docker pull alpine docker tag alpine localhost:5000/kmor1/alpine:latest# docker tag {タグ付けするイメージ名} {push 先のレジストリの ip or host}:{port}/{リポジトリ名}/{イメージ名}:{タグ名}次に構築したプライベートレジストリに push します。
docker push localhost:5000:kmor1/alpineプライベートレジストリに push したイメージを pull してみます。
プライベートレジストリからイメージが pull できることを確認するため、いったんローカルのイメージを削除します。docker rmi localhost:5000/kmor1/alpinedocker image プライベートレジストリから pull します。
docker pull localhost:5000/kmor1/alpinedocker images 無事プライベートレジストリからイメージを取得することができました。
別のサーバから pull できるようにする手順
今回は http でつなぐように構築したため、ローカルホスト以外からプライベートレジストリにつなごうとすると警告が出てしまいます。docker pull 192.168.200.16:5000/kmor1/alpineこれを回避するため、接続元のサーバの Docker の設定( /etc/docker/daemon.json )に以下を追記します。
{"insecure-registries":["192.168.200.16:5000"]}# {"insecure-registries":["{プライベートレジストリのip}:{port}"]}service docker restartこれで取得できるようになりました。
docker pull 192.168.200.16:5000/kmor1/alpine




