Docker

5分で社内にプライベートなDocker Registryを立てる!

2019/01/22


Dockerfileから作成したときに、いろいろツールをmakeしたりすると時間がかかっちゃいます。

また、DockerHubにイメージを置いてもダウンロードで時間がかかり、ローカル環境にDockerHub的なものを作る必要が出てきました。

公開したくない、でもプライベートリポジトリにお金払いたくない。ということでDocker Registryを構築することにしました。

5分でDockerRegistryを立てたい人はdocker-compose.ymlファイルをコピーして、docker-compose up -dをしてください。

Docker Registryとは

レジストリ(Registry)とは、ステートレス(処理状態を把握しない)であり、サーバ・サイドのアプリケーションを大きくスケールさせるため、Docker イメージを保管・提供をします。レジストリは Apache ライセンス 許諾のオープン・ソースです。

イメージの保管される場所を厳密に管理したい
イメージ配布パイプラインを、自分で完全に管理したい
組織内の開発ワークフローに一致するように、イメージ・ストレージと配布を統合

前提

docker, docker-composeコマンドが使えること。
linuxの基本的なコマンドが使えること。

ゴール

Docker Regitstyを構築してイントラネットからdocker push,pullができるようにする

本記事ではDocker Registryにhttpで接続します。
httpsで接続する必要がある場合は下記の記事を参考にしてください。
Deploy a registry server

環境

やっていく

docker-composeでコンテナ作成

認証設定

Docker Registryはコンテナを立てるだけですぐに使い始めることができますが、URLを知っていると誰でもpush,pullができるのでBASIC認証を行います。

htpasswdファイルをコンテナにマウントすれば、認証付きでアクセスできるようになります。

コンテナの起動

下記のymlファイルを作成して、docker-compose up -dコマンドでコンテナを立ち上げます。

無事、コンテナが立ち上がっていることを確認します。

Docker Registryへイメージをpush

クライアントの設定変更

今回構築したDocker Registryはhttp接続のみなので、クライアント側のdockerのDaemonの設定を変更します。
今回構築したDocker Registryにアクセスする場合のみhttpアクセスするように設定します。

    MACの場合

    Linuxの場合

daemonの設定変更後は、dockerの再起動が必要です。

Docker Registryへlogin

コマンドでDocker Registryへログインを行います。認証設定で作成したhtpasswdのUsernameとPasswordでログインしてください。

イメージのpush

適当なイメージをDocker Registryへpushします。

alpineのイメージをDockerHubから取得し、タグを付与します。

タグを付与したイメージをDocker Registryへpushします。

イメージのpull

一度、pushしたイメージを削除して、pullしてみます。

問題なくイメージがpullできればOKです!

プライベートレジストリからイメージ一覧情報

イメージの一覧を確認

イメージのタグを確認

-Docker
-,

Translate »