連載
第49回 Dockerプライベートレジストリにユーザー認証を付ける(準備編):古賀政純の「攻めのITのためのDocker塾」(1/3 ページ)
インターネットを経由しないDockerプライベートレジストリに、ユーザー認証を用意することで、社内LANなどにDockerイメージ配信システムを構築できます。今回はこのユーザー認証付きのプライベートレジストリを用意する具体的な方法を解説します。
前回は、Dockerプライベートレジストリ(DPR)にユーザー認証を付ける方法の概要を紹介しました。今回は、ユーザー認証機能つきのDockerイメージ配信システムを社内LAN上に構築する具体的な方法を紹介します。以下は、ユーザー認証付きの社内配信用のDPRのシステム構成案です。システムのゴール、手段、メリット、想定ハードウェアとソフトウェアの構成を以下に示します。
ゴール
- 社内の各部門にあるDockerホストから、社内に設置したDPRサーバ経由でDockerイメージを入手、または登録できる。パスワードを付与されたユーザーのみが、DPRを利用できるとする
- ユーザー「admin」は、Dockerイメージの登録、入手が可能で、ユーザー「koga」は、Dockerイメージの入手のみが可能で、ユーザー「tanaka」は、Dockerイメージの登録も入手もできない設定にする
手段
- DPRサーバ上で、Authorization Serviceが稼働するDockerコンテナを稼働させることで、ユーザー認証付きのDPRを実現する。利用者側は、Dockerエンジンが稼働できるとする
ユーザー認証機能付きの社内DPR構築のメリット
- ユーザーは、インターネットにアクセスしない環境においても、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ファイルに保持 | − |
関連記事
- 第48回 Dockerプライベートレジストリにユーザー認証を付けるには(概要編)
前回までは、インターネットを経由せずに使えるDockerプライベートレジストリを紹介しました。今回は、ユーザー認証機能付きのDockerプライベートレジストリ(DPR)について紹介します。 - 第45回 「プライベートレジストリ」を知る――HPEが使っているDockerイメージ管理
ホステッドレジストリは、インターネット経由でクラウドサービスのように利用できますが、インターネットを経由せずに、プライベートLAN内で、Dockerイメージをユーザーに配布したいといったニーズもあります。そんなときに活用したいのが、プライベートLAN内でDockerイメージを配布する「社内プライベートレジストリ」です。 - 第46回 Dockerのプライベートレジストリを活用する(準備編)
インターネットを経由せずに、プライベートLAN内で、Dockerイメージをユーザーに配布したいといったニーズに対応するには、「プライベートレジストリ」を活用するのがおすすめです。実際にプライベートレジストリを立ち上げる方法をご紹介します。 - 第47回 Dockerのプライベートレジストリを活用する(運用編)
Dockerプライベートレジストリが構築できたら、実際にプライベートレジストリを使って、Dockerイメージの登録、入手などを行ってみましょう。プライベートレジストリは、閉じたネットワーク環境でのDockerハブのようなDockerイメージ管理が可能になります。 - 第42回 Dockerイメージを「Quay.io」で管理する(準備編)
ホステッドレジストリは、一般に「Docker Hub」が有名ですが、今回はNASAやeBayも利用しているホステッドレジストリの「Quay.io」を使って、実際にDockerイメージを管理してみます。 - 第43回 Dockerイメージを「Quay.io」で管理する(セキュリティ編)
ホステッドレジストリには、アップロードしたDockerイメージのセキュリティ脆弱性をチェックする機能もあります。「Quay.io」を実際に操作しながら、セキュリティチェックの方法を確認します。 - 第44回 Dockerfileを「Quay.io」で管理する
ホステッドレジストリを活用すると、Dockerイメージをアップして管理するだけでなく、Dockerfileをアップロードし、ホステッドレジストリでDockerイメージをビルドすることも可能です。今回はその方方を具体的に見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.