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のコンテナイメージレジストリから似たようなイメージ名を検索するシンプルで効果的なツールです。検索結果ページには、イメージファイルを取得するためのコマンド(プルコマンド)が表示されます。例えば、次のスクリーン出力では、最初の列にコンテナイメージの名前が表示されます。
notion image
イメージ名をクリックすると、コンテナイメージの詳細ページが表示されます。ただし、詳細ページに表示される情報は一律ではなく、各作者が提供する情報のレベルが異なるため、必ずしも特定の情報が表示されるわけではありません。
notion image

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 シェルを起動するには、以下のようにします:

インタラクティブプログラムの起動

  • ti オプションを使用することで、インタラクティブなプログラムを実行できます。これにより、コンテナ内で疑似端末が割り当てられ、ユーザーが直接操作できるようになります。バックグラウンドで動作するプロセスには、これらのオプションは必要ありません。

環境変数の設定

多くのコンテナイメージでは、起動時に設定すべき環境変数があります。例えば、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/で可能です。
notion image
Red Hat Container Catalog (RHCC)で「Apache」を検索ボックスに入力すると、検索パターンに一致する製品やイメージリポジトリの推奨リストが表示されます。表示されたリストから、Apache httpd 2.4-rhscl/httpd-24-rhel7 を選択すると、Apache httpd 2.4のイメージページにアクセスできます。
notion image
Apache httpd 2.4パネルの下には、詳細情報といくつかのタブが表示されます。このページには、Red Hat, Inc.がイメージリポジトリを管理していることが記載されています。また、このイメージリポジトリがRed Hat Enterprise Linuxと関連していることも示されています。Overviewタブの下には、次のような詳細が記載されています:
  • Description: イメージの機能についての簡単な説明。
  • Evaluate Image: OpenShift Online(公開PaaSクラウド)を使用して、イメージ内のアプリケーションの機能状態を検証できます。
  • Most Recent Tag: イメージが最後に更新された時期、その更新内容、イメージの健康状態などが表示されます。
    notion image
    Using red hat loginタブでは、イメージの最新バージョンを取得する手順が提供されます。イメージを使用するプラットフォームを指定すると、そのプラットフォームに適した実行コマンドがページに表示されます。
    参考文献
     
    相关文章
    RedHat EX200 本番近い試験問題集
    Lazy loaded image
    RedHat EX200 本番試験問題集(有料版)
    Lazy loaded image
    82- 第17章:導入総復習-3:OpenShiftにマルチコンテナデプロイのラボ
    Lazy loaded image
    81- 第17章:導入総復習-2:docker,KubernetesおよびOpenShiftのラボ
    Lazy loaded image
    80- 第17章:導入総復習-1:総合レビュー
    Lazy loaded image
    79- 第16章:OpenShiftの管理と監視-8:ラボ
    Lazy loaded image
    06- 第2章:コンテナ化されたサービスの作成-2:KubernetesとOpenShiftアーキテクチャの演習04- 第2章:コンテナ技術の説明-3:KubernetesとOpenShiftアーキテクチャの説明
    Loading...
    みなみ
    みなみ
    一个普通的干饭人🍚
    最新发布
    35条書面-64問-1
    2025年6月13日
    TOKYO自習島
    2025年6月10日
    平成26年秋期 午後問1
    2025年6月6日
    令和5年秋期 午後問1
    2025年6月6日
    令和2年秋期 午後問1
    2025年6月6日
    業務上の規制-87問-1
    2025年6月4日
    公告

    🎉 欢迎访问我的博客 🎉

    🙏 感谢您的支持 🙏

    📅 本站自 2024年9月1日 建立,致力于分享在 IT・MBA・不动产中介 等领域的学习与实践,并推动 学习会 的自主开展。
    📖 博客语言使用比例
    🇯🇵 日语 90% 🇨🇳 中文 8% 🇬🇧 英语 2%

    📚 主要内容

    💻 IT・系统与开发

    • 系统管理:Red Hat 等
    • 容器与编排:Kubernetes、OpenShift
    • 云计算:AWS、IBM Cloud
    • AI 入门:人工智能基础与实践
    • 技术笔记与考证经验

    🏠 不动产 × 宅建士

    • 宅建士考试笔记

    🎓 MBA 学习笔记

    • 管理学、经济学、财务分析等

    🔍 快速查找内容(标签分类)

    由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
    📌 定期更新,欢迎常来看看!
    📬 有任何建议或想法,也欢迎留言交流!