Docker Hubではプライベートリポジトリが1つしか作成できませんが、Docker Registry(レジストリ)はDocker Hubのオンプレ版のように閉じられたネットワーク内でのみ使用することができます。会社の制限等でパブリックなDocker Hubが使用できない場合に試してみてください。
Docker Registryの構築
公式を参考にしつつやっていきます。
Docker Registryのコンテナ構築はコマンド一発で完了します。
# docker registryコンテナの構築
$ docker run -d -p 5000:5000 --restart always --name registry registry:2
# 構築確認
[root@localhost vagrantshell]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eae60caba012 registry:2 "/entrypoint.sh /etc…" 2 hours ago Up 2 hours 0.0.0.0:5000->5000/tcp registry
CeontOS7のDockerイメージをpush
# CentOS7のイメージを取得
$ docker pull centos:centos7
# 公式イメージ名から自分のイメージ名に変更
# docker tag $イメージ名:$タグ名 $レジストリIP:$ポート/$リポジトリ名/$イメージ名:$タグ名
$ docker tag centos:7 localhost:5000/pocketcode/centos:7
# イメージの確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry 2 2d4f4b5309b1 3 weeks ago 26.2MB
localhost:5000/pocketcode/centos 7 b5b4d78bc90c 2 months ago 203MB
# Registryへpush
$ docker push localhost:5000/pocketcode/centos:7
# 一旦ローカルのイメージを削除
$ docker rmi localhost:5000/pocketcode/centos:7
# Registryのイメージを取得
$ docker pull localhost:5000/pocketcode/centos:7
これでDocker Hubのオンプレ版Docker Registryを構築は完了です。
30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。