レジストリ

【docker registry】レジストリサーバ構築手順

2023年7月26日



目的

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できていることをパイプラインのログから確認する。

CATEGORIES & TAGS

レジストリ,

Author:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

カテゴリー

むるし

フリーランスのインフラ系エンジニア。
備忘録で色々書いていきます。
お問い合わせは↓
mo-gyu@murci.net
LPIC303 Security
%d人のブロガーが「いいね」をつけました。