目的
CI/CDのビルド処理で作成されたコンテナをGitLabからpushし、デプロイ時にpullされてデプロイ先のサーバへ転送するための一時的なコンテナの仮置き場として利用する。
環境
Ubuntu 20.04
IP/Port:192.168.9.7:32000
以下、レジストリサーバにて実行
イメージの取得
Internetに接続しているDocker環境でregistryのイメージを取得する。
$ sudo docker pull registry:2.3.0
コンテナのビルド、起動(手動)
取得したイメージデータをホスト側の領域に置きたいので、/home/opt/registry をコンテナの /var/lib/registryに接続する設定にする。
$ sudo docker run -d -p 32000:5000 --name hmq_registry -v /home/opt/registry:/var/lib/registry registry:2.3.0
コンテナのビルド、起動(docker-compose)
$ cat docker-compose.yml
version: '3'
services:
hmq_registry:
image: registry:2.3.0
container_name: test_registry
ports:
- "32000:5000"
volumes:
- /home/opt/registry:/var/lib/registry
restart: always
Dockerデーモンの設定ファイル
ローカルレジストリを使用するためにDockerエンジンに定義を追加する。
$ sudo vi /etc/docker/daemon.json
{
"registry-mirrors": [],
"insecure-registries": [ "192.168.9.7:32000" ]
}
プロセス再起動して反映
$ systemctl restart docker
以下、デプロイ先のサーバにて実行
Dockerデーモンの設定ファイル(同一セグメント)
ネットワークが同じサーバは、ローカルレジストリを使用するためにDockerエンジンに定義を追加する。
$ sudo vi /etc/docker/daemon.json
{
"registry-mirrors": [],
"insecure-registries": [ "192.168.9.7:32000" ]
}
Dockerデーモンの設定ファイル(異なるセグメント)
ネットワーク異なるサーバは、デフォルトゲートウェイ(DGW-IP)をレジストリに見立てる。
$ sudo vi /etc/docker/daemon.json
{
"insecure-registries": [ "DGW-IP:32000", "192.168.9.7:32000" ],
"default-address-pools": [ {"base":"172.16.0.0/12", "size":24} ]
}
構築後の正常性確認
CI/CDのビルド処理にてpush、デプロイ処理にてpullできていることをパイプラインのログから確認する。