dokcer imageをプライベートリポジトリで利用する方法
目的
ローカル環境にプライベートコンテナリポジトリを作成する
なぜ?
dockerやkubernetesで使用するコンテナイメージを自分用にビルドしたものを保管、管理したい。
どのように?
コンテナイメージを管理する方法はいくつかありますので、以下の中から選択する必要があります。
1.Docker Hubの利用する(有料)
2.amazon ECRを利用する(有料)
3.ローカルオンプレ環境にOSSのリポジトリ環境を構築する
このページでは3の「ローカルオンプレ環境にOSSのリポジトリ環境を構築する」を説明します。
材料
- サーバ環境:CentOS Linux release 7.6.1810 (Core)
- ソフト:docker-distribution
- 作業時間 少々
- やる気:多め
レシピ1:レジストリサーバのインストール
ソフトウェアをインストール&サービスを起動する
# yum install docker-distribution
# systemctl start docker-distribution.service
# systemctl enable docker-distribution.service
#レシピ2:設定情報の変更
###レジストリデータ保存先&待ち受けポートの変更
- 変更必要なら修正する
# vi /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
hostsファイルの変更
以下の設定はbuild imageを取得したいノードにて作業が必要です。
- IPv6は無効にします
- ホスト名を登録します
# vi /etc/hosts
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
<レジストリサーバーのIPアドレス> kbmster
接続情報を追加
# vi /etc/docker/daemon.json
"insecure-registries": [
"kbmaster:5000"
]
#レシピ3:dockerの再起動
# systemctl daemon-reload
# systemctl restart docker
#レシピ4:buildイメージをリポジトリサーバにpushする
# docker build -t wp-tomcat:1.0 .
# docker tag wp-tomcat:1.0 kbmaster:5000/wp-tomcat:1.0
# docker push kbmaster:5000/wp-tomcat:1.0
#レシピ5:buildイメージをリポジトリサーバからpullする
各ノードから以下を実行するとdocker imagesがダウンロードされます
# docker pull kbmaster:5000/wp-tomcat:1.0
※参考資料
https://sato-labo.mydns.jp/2018/07/install-docker-registry/
https://tracpath.com/works/devops/docker_hub_and_amazon_ec2_container_registry/#Docker_Hub