プライベートなDockerレジストリ構築手順

スポンサーリンク

Dockerを利用していると独自イメージを作成して利用するケースが出てくると思いますが、その時に必要となるのがDockerレジストリ。

Docker Hubがインターネット上で利用可能ですが、セキュリティが厳しい環境では利用できないことも。

そんなときはプライベートのレジストリを利用すれば解決!

本記事ではプライベートな環境で利用可能な独自のレジストリを構築&利用する方法を紹介します。

準備

コンテナを利用してレジストリを構築するので、DockerエンジンおよびDocker-Composeをあらかじめインストールしておきます。

WindowsのDockerインストール手順はこちらの過去記事を参考にしてください。

Docker Desktopインストール手順(WSL2バックエンド)

スポンサーリンク

構築

今回はDockerレジストリに加えて、ブラウザからリポジトリの内容が閲覧可能となるフロントエンドも合せて導入します。

まずはdocker-composeの定義ファイルを作成します。

任意のフォルダに以下の内容をコピペしたファイルを「docker-compose.yml」という名称で保存します。必要に応じて内容は書き換えてください。

version: '3.8'

services:
  registry:
    image: registry:latest
    container_name: registry
    restart: always
    hostname: registry
    ports:
      - '5000:5000'
    volumes:
      - './registry:/var/lib/registry'
  registry-frontend:
    image: konradkleine/docker-registry-frontend:v2
    container_name: registry-frontend
    hostname: registry-frontend
    environment:
      ENV_DOCKER_REGISTRY_HOST: registry
      ENV_DOCKER_REGISTRY_PORT: 5000
    ports:
      - 8080:80

次にレジストリのコンテナがマウントするフォルダを作成します

mkdir registry

完了したらdocker-composeで起動します

docker compose up -d

こんな感じで出力されれば起動OKです

Starting registry ... done
Creating registry-frontend ... done
スポンサーリンク

動作確認

フロントエンド動作確認

まずはフロントエンドが動作しているか確認してみましょう。

http://ホスト名:8080/

にアクセスします。

以下のような画面が出れば正常に起動しています。

コンテナイメージのpush

実際にコンテナイメージをpushしてみます。

まずはタグ付けです。

docker tag イメージID or イメージ名 レジストリのホスト名:ポート番号/任意の名前

今回は以下の条件でやっていきます!

  • ホスト名・・・registry
  • ポート番号・・・5000
  • イメージ名・・・redis:latest

実際のコマンドはこんな感じになります。

docker tag redis:latest registry:5000/redis

上記ができたらpushします

docker push registry:5000/redis

以上でpush完了です。

再度ブラウザでフロントエンドを見てみましょう。
トップページの「Browse respositories」をクリックすると・・・

正常にpushされていますね!

コンテナイメージのpull

それではpullしてみます。

Dokcerが入った別のマシンで以下コマンドを実行し、問題なくpullできることを確認します。

docker pull registry:5000/redis

問題なくpullできたら、動作確認は完了です!

まとめ

コンテナを利用した開発には欠かせないDockerリポジトリを構築する方法でした!

意外と簡単に構築できるにも関わらず、とても便利なので、ぜひ利用してみてくださいね(^ ^)

コメントを残す

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