第46回 Dockerのプライベートレジストリを活用する(準備編):古賀政純の「攻めのITのためのDocker塾」(1/3 ページ)
インターネットを経由せずに、プライベートLAN内で、Dockerイメージをユーザーに配布したいといったニーズに対応するには、「プライベートレジストリ」を活用するのがおすすめです。実際にプライベートレジストリを立ち上げる方法をご紹介します。
前回は、Dockerプライベートレジストリの概要、そして、Dockerイメージの社内配信システムを採用している米国Hewlett Packard Enterprise(HPE)の事例をご紹介しました。今回は、Dockerイメージを配信するシステム(社内Dockerプライベートレジストリ)を社内LAN上に構築する具体的な方法を紹介します。
以下は、社内配信用のDockerプライベートレジストリのシステム構成案です。システムのゴール、手段、メリット、想定ハードウェアとソフトウェアの構成を以下に示します。
ゴール
- 社内に設置したDockerレジストリサーバから、社内の各部門に対して、Dockerイメージを配信、または、登録できる
手段
- Dockerプライベートレジストリサーバを1台構築する。利用者側は、Dockerエンジンが稼働できるとする
社内配信用のDockerプライベートレジストリのメリット
- ユーザーは、インターネットにアクセスしない環境においても、Dockerイメージの入手、アップロード、Dockerコンテナの利用が可能
- ユーザーにインターネットへのアクセスを制限すれば、DockerプライベートレジストリのDockerイメージのみを使わせるポリシーを定めることで、信頼性の低いDockerイメージの利用を制限できる
想定ハードウェア
- プライベートレジストリサーバ(HPE Apollo 4200 Gen9サーバ×1台)
- 利用するクライアントマシン(Dockerコンテナが稼働するマシン×1台以上)
必要なソフトウェア
- Dockerホスト用のLinux OS
- Dockerエンジン
社内LAN上に接続されているクライアントマシン群に、Dockerプライベートレジストリを使って、Dockerイメージを配信するシステムを構築する手順は以下のとおりです。
- ホストOS(Linux)にDockerエンジンをインストール
- DockerプライベートレジストリをDockerコンテナとして起動
- プライベートレジストリに登録するためのDockerイメージをインターネット経由で入手
- 入手したDockerイメージにタグを付与
- タグを付与したDockerイメージをDockerプライベートレジストリに登録
- Dockerプライベートレジストリに登録されたDockerイメージをクライアントから入手
- Dockerプライベートレジストリに登録されたDockerイメージをクライアント上で起動
DockerプライベートレジストリサーバのホストOSは、CentOS 7.3.1611(以下、CentOS 7.3と表記)とします。また、Dockerエンジンは、2017年7月時点での最新バージョンである「17.06.0-ce」(DockerエンジンのCommunity Edition)を使用します。各マシンの役割、ソフトウェア構成、ネットワーク構成は、以下のとおりです。
物理マシン | サーバ1号機 | サーバ2号機 |
---|---|---|
役割 | プライベートレジストリ | クライアントマシン |
ホストOS | CentOS 7.3 | CentOS 7.3 |
Dockerエンジン | 17.06.0-ce | 17.06.0-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 |
社内プライベートレジストリサーバにDockerエンジンをインストール
まずは、社内に設置した物理サーバ上でDockerプライベートレジストリを構築します。社内プライベートレジストリは、dockerコンテナで稼働しますので、Dockerエンジンをインストールします。今回は、最新のCommunity EditionのDockerエンジンをインストールします。Dockerエンジンの最近のバージョン(17.XX-X-ce)では、開発者向けのものやエンタープライズ向けのものなど、エディションによってインストール方法が異なります。
以下では、Community EditionのDockerエンジンをインストールする手順を説明します。
関連記事
- 第45回 「プライベートレジストリ」を知る――HPEが使っているDockerイメージ管理
ホステッドレジストリは、インターネット経由でクラウドサービスのように利用できますが、インターネットを経由せずに、プライベートLAN内で、Dockerイメージをユーザーに配布したいといったニーズもあります。そんなときに活用したいのが、プライベートLAN内でDockerイメージを配布する「社内プライベートレジストリ」です。 - 第44回 Dockerfileを「Quay.io」で管理する
ホステッドレジストリを活用すると、Dockerイメージをアップして管理するだけでなく、Dockerfileをアップロードし、ホステッドレジストリでDockerイメージをビルドすることも可能です。今回はその方方を具体的に見ていきます。 - 第43回 Dockerイメージを「Quay.io」で管理する(セキュリティ編)
ホステッドレジストリには、アップロードしたDockerイメージのセキュリティ脆弱性をチェックする機能もあります。「Quay.io」を実際に操作しながら、セキュリティチェックの方法を確認します。 - 第42回 Dockerイメージを「Quay.io」で管理する(準備編)
ホステッドレジストリは、一般に「Docker Hub」が有名ですが、今回はNASAやeBayも利用しているホステッドレジストリの「Quay.io」を使って、実際にDockerイメージを管理してみます。 - 第41回 「ホステッドレジストリ」を知る――NASAも使っているDockerイメージ管理
今回からは、Dockerイメージの管理サービスについて紹介していきます。NASAのジェット推進研究所でも利用されているDockerイメージの管理サービスを例に、具体的な操作方法も披露します。
Copyright © ITmedia, Inc. All Rights Reserved.