type
status
date
slug
summary
tags
category
icon
password
コンテナ化されたサービスの作成
目標
コンテナ技術を使用してサーバーを提供する。
目的
- Docker Hubに保存されたコンテナイメージを使ってデータベースサーバーを作成する。
セクション
- データベースサーバーの提供(ガイド付き演習)
ラボ
- コンテナ化されたサービスの作成
データベースサーバーの提供
目的
このセクションを終えた後、学生は次のことができるようになります:
- Docker Hubに保存されたコンテナイメージからデータベースサーバーを作成する。
- Docker Hubサイトでコンテナを検索する。
docker
コマンドを使ってコンテナを開始する。
- コマンドラインからコンテナにアクセスする。
- Red Hatコンテナカタログを活用する。
Docker Hubでイメージを探す
多くのコンテナイメージは、Dockerコミュニティのウェブサイト(https://docker.io)からダウンロード可能です。このサイトは、大規模なリポジトリで、開発者や管理者がコミュニティや企業によって開発された多数のコンテナイメージを取得することができます。
デフォルトでは、DockerはDocker Hubのイメージレジストリからイメージレイヤーをダウンロードします。ただし、イメージ自体には詳細な説明が含まれていない場合があり、そのため、各イメージやその機能に関する情報を探すための検索エンジンツール「Docker Hub」が作成されました。
注意
Red Hatは、テスト済みで認定されたコンテナイメージを提供するプライベートレジストリも提供しています。
デフォルトで、RHEL 7はDocker Hubに加えて、Red Hatのレジストリも検索するように設定されています。
Docker Hubの検索エンジンは、プロジェクト名やDocker Hubのコンテナイメージレジストリから似たようなイメージ名を検索するシンプルで効果的なツールです。検索結果ページには、イメージファイルを取得するためのコマンド(プルコマンド)が表示されます。例えば、次のスクリーン出力では、最初の列にコンテナイメージの名前が表示されます。

イメージ名をクリックすると、コンテナイメージの詳細ページが表示されます。ただし、詳細ページに表示される情報は一律ではなく、各作者が提供する情報のレベルが異なるため、必ずしも特定の情報が表示されるわけではありません。

Dockerクライアントからの検索
docker
コマンドを使ってコンテナイメージを検索することもできます。以下のコマンドを実行することで、特定のイメージを検索できます:この検索コマンドは、Docker Hubのレジストリだけでなく、APIバージョン1をサポートする他のレジストリも検索対象にします。
docker
コマンドを実行するには特別な権限が必要です。開発環境では、通常、開発者を docker
グループに追加して、適切な権限を与えます。もし docker
コマンドを実行する権限がない場合、次のようなエラーメッセージが表示されます:注意
本番環境では、
docker
コマンドのアクセス権限を付与する際は、sudo
コマンドを使うべきです。なぜなら、docker
グループは権限昇格攻撃に対して脆弱だからです。イメージの取得
Docker Hubコンテナイメージレジストリからイメージをダウンロードするには、Docker Hubの検索結果ページから最初の列に表示されるイメージ名を確認するか、
docker search
コマンドの出力結果の2列目に表示される名前を利用して、次のように docker pull
コマンドを使用します:このコマンドは、
mysql
のコンテナイメージをDocker Hubからダウンロードします。docker pull
コマンドが正常に実行されると、必要なイメージのレイヤーがコンテナにダウンロードされ、使用できる状態になります。以上が、Dockerクライアントを使ったコンテナイメージの検索と取得の手順です。このプロセスにより、必要なイメージを迅速に取得し、開発環境で使用できるようになります。
同一イメージの複数のバージョン
同じイメージには、複数のバージョンが提供されることがあります。各バージョンは異なるタグ名を持っています。例えば、MySQLイメージの詳細ページでは、複数のタグが割り当てられた3つの異なるイメージ名が提供されています。
タグ名が指定されていない場合、
docker pull
はデフォルトで「latest」タグを使用します。特定のタグをダウンロードするには、イメージ名にコロン(:
)でタグ名を追加して、次のように docker pull
コマンドを実行します:ローカルキャッシュにあるイメージのリスト表示
ローカルDockerデーモンで既にダウンロードされたイメージをリスト表示するには、
docker images
コマンドを使用します:- REPOSITORY 列には、イメージ名が最後のパスコンポーネントとして表示されます。
- Dockerデーモンのインストール直後はイメージがないため、システム管理者がイメージをダウンロードするまでリストは空です。
- イメージ名にはレジストリ名がプレフィックスとして付けられます。通常はレジストリホストのFQDN名ですが、任意の文字列でも可能です。イメージ名にはタグも含めることができます。
イメージ名の完全な構文(オプションのパラメータを含む)は次の通りです:
例:
docker.io/library/mysql:latest
- Docker Hubのユーザー名なしで提供されるイメージ名は、実際には「library」というユーザー名が使用されており、前述のイメージ名は次のように同じです:
docker.io/mysql:latest
。
- 「library」ユーザーは、公式に整理されたイメージに関連付けられており、Docker Hub Registryで提供されています。
コンテナの作成
新しいコンテナ内でプロセスを作成し、開始するには、
docker run
コマンドを使用します。コンテナは、引数として渡されたコンテナイメージ名から作成されます:もしイメージがローカルDockerデーモンキャッシュに存在しない場合、
docker run
コマンドは、まるで docker pull
コマンドを実行したかのように、そのイメージをプルしようとします。docker run
コマンドの出力
docker run
コマンドが表示する出力は、コンテナ内で実行されているプロセスから生成されます。このプロセスはホストOSから見た通常のプロセスです。このプロセスを終了させると、コンテナも停止します。例えば、インタラクティブではないプロセスでコンテナを起動し、その後Ctrl+C(SIGINT)で停止させると、コンテナも停止します。バックグラウンドでコンテナを起動
コンテナをバックグラウンドで実行したい場合は、
-d
オプションを使います。これにより、コンテナがバックグラウンドで実行されます:コンテナ名の指定
コンテナには名前を付ける必要があります。名前を指定しない場合、Dockerが自動で名前を生成します。しかし、コンテナの管理や追跡を簡単にするために、
--name
オプションを使って名前を指定できます:異なるコマンドでコンテナを起動
コンテナを起動する際に、デフォルトのコマンドではなく、別のコマンドを実行させることも可能です。例えば、MySQLコンテナ内で
bash
シェルを起動するには、以下のようにします:インタラクティブプログラムの起動
t
とi
オプションを使用することで、インタラクティブなプログラムを実行できます。これにより、コンテナ内で疑似端末が割り当てられ、ユーザーが直接操作できるようになります。バックグラウンドで動作するプロセスには、これらのオプションは必要ありません。
環境変数の設定
多くのコンテナイメージでは、起動時に設定すべき環境変数があります。例えば、MySQLの公式イメージでは、
-e
オプションを使って環境変数を指定します。これにより、コンテナ内で実行されるプロセスが環境変数を利用できます。例えば:これにより、
MYSQL_ROOT_PASSWORD
という環境変数が設定され、MySQLのルートパスワードが指定されます。MySQLサーバーをカスタムユーザーで起動する
MySQLコンテナをカスタムユーザー名とパスワードで起動するには、
-e
フラグを使用して必要な環境変数を設定します。以下は、MySQLサーバーをユーザーredhat
およびパスワードr3dh4t
で起動する例です。e MYSQL_USER=redhat
:MySQLのユーザー名をredhat
に設定。
e MYSQL_PASSWORD=r3dh4t
:MySQLのパスワードをr3dh4t
に設定。
d
:コンテナをバックグラウンドモードで実行(デタッチモード)。
mysql:5.5
:MySQLの5.5バージョンのイメージを指定。
Red Hat Container Catalog (RHCC)の活用
Red Hatは、高品質なコンテナイメージのリポジトリを提供しています。このリポジトリを使用することで、既知の脆弱性に対する保護と信頼性を確保できます。標準の
docker
コマンドでこのリポジトリを利用することができますが、Red Hat Container Catalog(RHCC)というウェブポータルを使用すると、Red Hatのコンテナイメージを検索し、操作するためのユーザーフレンドリーなインターフェースを提供します。- RHCCは、リポジトリ内のコンテナイメージを検索・探索できるインターフェースを提供します。
- イメージの「ヘルスインデックスグレード」を確認することができ、これはイメージの最新性とセキュリティ更新の適用状態を示します。グレードはAからFまであり、Aが最良です。
- RHCCでは、イメージの最新のバグ修正や強化に関する情報を提供する「エラタ(Errata)」ドキュメントにもアクセスできます。
- また、各オペレーティングシステムでイメージを引き出す最適な方法も提案しています。
RHCCへのアクセスは、https://access.redhat.com/containers/で可能です。

Red Hat Container Catalog (RHCC)で「Apache」を検索ボックスに入力すると、検索パターンに一致する製品やイメージリポジトリの推奨リストが表示されます。表示されたリストから、Apache httpd 2.4-rhscl/httpd-24-rhel7 を選択すると、Apache httpd 2.4のイメージページにアクセスできます。

Apache httpd 2.4パネルの下には、詳細情報といくつかのタブが表示されます。このページには、Red Hat, Inc.がイメージリポジトリを管理していることが記載されています。また、このイメージリポジトリがRed Hat Enterprise Linuxと関連していることも示されています。Overviewタブの下には、次のような詳細が記載されています:
- Description: イメージの機能についての簡単な説明。
- Evaluate Image: OpenShift Online(公開PaaSクラウド)を使用して、イメージ内のアプリケーションの機能状態を検証できます。
- Most Recent Tag: イメージが最後に更新された時期、その更新内容、イメージの健康状態などが表示されます。

Using red hat loginタブでは、イメージの最新バージョンを取得する手順が提供されます。イメージを使用するプラットフォームを指定すると、そのプラットフォームに適した実行コマンドがページに表示されます。
参考文献
- Docker Hubウェブサイト: https://hub.docker.com
- Red Hat Registryウェブサイト: https://registry.access.redhat.com
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/140d7ae8-88e2-8082-9e3c-dadb4386018b
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章