前回は、Dockerプライベートレジストリ(DPR)にユーザー認証を付ける方法の概要を紹介しました。今回は、ユーザー認証機能つきのDockerイメージ配信システムを社内LAN上に構築する具体的な方法を紹介します。以下は、ユーザー認証付きの社内配信用のDPRのシステム構成案です。システムのゴール、手段、メリット、想定ハードウェアとソフトウェアの構成を以下に示します。
- 社内の各部門にあるDockerホストから、社内に設置したDPRサーバ経由でDockerイメージを入手、または登録できる。パスワードを付与されたユーザーのみが、DPRを利用できるとする
- ユーザー「admin」は、Dockerイメージの登録、入手が可能で、ユーザー「koga」は、Dockerイメージの入手のみが可能で、ユーザー「tanaka」は、Dockerイメージの登録も入手もできない設定にする
- DPRサーバ上で、Authorization Serviceが稼働するDockerコンテナを稼働させることで、ユーザー認証付きのDPRを実現する。利用者側は、Dockerエンジンが稼働できるとする
- ユーザーは、インターネットにアクセスしない環境においても、Dockerイメージの入手、登録、Dockerコンテナの利用が可能だが、ユーザー認証により、社内の限られたユーザーのみに利用を制限できる
- Dockerイメージへのアクセス制限を設けることで、社内部門間のDockerイメージの漏えい防止が期待できる
- HPE Apollo 4200 Gen9サーバー x 1台(DPR用)
- Dockerコンテナが稼働するマシン x 1台以上(アクセス元のクライアントマシン)
- Dockerホスト用のLinux OS
- Dockerエンジン
- Docker社が提供するDockerイメージ「registry:latest」
- Cesanta Softwareが提供するDockerイメージ「cesanta/docker_auth」
ユーザー認証機能付きDPRの構築手順は以下のとおりです。
- ホストOSにDockerエンジンをインストール
- OpenSSLにより証明書を作成し、ホストOS上に配置
- ユーザー名と対応するパスワードを記述したYMLファイルを作成
- YMLファイルをロードするユーザー認証用のDockerコンテナの起動
- DPRをコンテナとして起動
- Dockerイメージをインターネット経由で入手
- 入手したDockerイメージにタグを付与
- ユーザー名とパスワードを使って、DPRにログイン
- タグを付与したDockerイメージをDPRに登録
- ユーザー名とパスワードを使って、クライアントマシンからDockerイメージを入手
- 入手したDockerイメージをクライアント上で起動
ホストOSは、CentOS 7.3.1611(以下、CentOS 7.3と表記)を想定します。また、Dockerエンジンは、2017年9月時点での最新バージョンである「17.06.2-ce」(Docker エンジンのコミュニティエディション)を使用します。各マシンの役割、ソフトウェア構成、ネットワーク構成は、以下のとおりです。
各マシンの役割、ソフトウェア構成、ネットワーク構成
物理マシン |
サーバ1号機 |
サーバ2号機 |
役割 |
DPR |
クライアントマシン |
ホストOS |
CentOS 7.3 |
CentOS 7.3 |
Dockerエンジン |
17.06.2-ce |
17.06.2-ce |
ホストOSのIPアドレス |
172.16.1.100/16 |
172.16.1.101/16 |
ホストOSのゲートウェイ |
172.16.1.1 |
172.16.1.1 |
ホストOSのDNS参照先 |
172.16.1.254 |
172.16.1.254 |
ホスト名 |
n0100 |
n0101 |
レジストリの認証情報 |
YMLファイルに保持 |
− |
|
図 ユーザー認証付きのDPRのシステム構成例
Copyright © ITmedia, Inc. All Rights Reserved.