目的
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デーモンの設定ファイル
ローカルレジストリを使用するために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できていることをパイプラインのログから確認する。