type
status
date
slug
summary
tags
category
icon
password
书籍
 

実験マニュアル: WebアプリケーションとMySQLコンテナのデプロイ

目的

この実験では、Node.jsアプリケーションとMySQLデータベースをそれぞれ独立したコンテナとして実行し、それらをネットワークで接続する方法を学びます。

必要なリソース

  • ファイルパス: /home/student/DO285/labs/networkingcontainers
  • 使用するDockerイメージ:
    • RHSCL MySQL 5.7イメージ: rhscl/mysql-57-rhel7
    • カスタムMySQL 5.7イメージ: do285/mysql-57-rhel7
    • RHEL 7.5イメージ: rhel7.5
    • カスタムNode.js 4.0イメージ: do285/nodejs

実験前の準備

  1. 環境のセットアップ: 次のコマンドを実行して、必要なファイルやコードを準備します。
    1. 既存のDockerイメージの確認と削除: 現在の環境にイメージが存在しないか確認し、存在する場合は削除します。

      実験手順

      1. MySQLイメージのビルド

      1. Dockerfileの確認: 次のパスにあるDockerfileをエディタで開き、内容を確認します。
        1. MySQLイメージのビルド: ビルドスクリプトを使用して、カスタムMySQLイメージを作成します。
          1. ビルド結果の確認: 以下のコマンドで、イメージが正しくビルドされたことを確認します。

            2. Node.jsの親イメージのビルド

            1. Dockerfileの確認: 次のパスにあるDockerfileを開き、記述内容を確認します。
              1. Node.js親イメージのビルド: スクリプトを使用してビルドします。
                1. ビルド結果の確認: イメージがビルドされたか以下で確認します。

                  3. Node.jsの子イメージ(To Doアプリ)のビルド

                  1. Dockerfileの確認: 次のパスにあるDockerfileを開き、記述内容を確認します。
                    1. 子イメージのビルド: スクリプトを実行してビルドします。
                      1. ビルド結果の確認:

                        4. 環境変数の確認

                        1. 設定ファイルの確認: データベース設定が記述された以下のファイルを確認します。
                          1. 使用される環境変数:
                              • MYSQL_DATABASE: データベース名
                              • MYSQL_USER: データベースユーザー名
                              • MYSQL_PASSWORD: データベースユーザーパスワード

                          5. Dockerネットワークの作成

                          1. ネットワークの作成: 次のコマンドでカスタムネットワークdo285-bridgeを作成します。
                            1. ネットワークの確認:

                              6. コンテナの実行

                              1. MySQLコンテナの起動:run.shスクリプトを編集し、以下のコマンドを挿入します。
                                1. To Doアプリケーションコンテナの起動: 同じrun.shスクリプトに以下のコマンドを追加します。
                                  1. スクリプトに待機コマンドを追加:docker runコマンドの後に以下を追加してください。

                                    結果確認

                                    ブラウザで以下のURLを開き、To Doアプリが正しく動作することを確認します。

                                    補足

                                    エラーが発生した場合は、以下のコマンドでログを確認してください。
                                    以上で実験は完了です。
                                     
                                     

                                    実験マニュアル: マルチコンテナアプリケーションのデプロイ

                                    この実験では、Dockerデーモンを使用して、ワークステーションホスト上でコンテナ化されたデータベースアプリケーションをデプロイします。

                                    リソース

                                    • 必要なファイル: /home/student/DO285/labs/deploy-instructor

                                    目標

                                    この実験を通じて、以下の内容を習得できます:
                                    • Dockerコンテナネットワークを作成・構成する方法
                                    • 複数のコンテナを作成し、ネットワーク接続を共有する方法
                                    • コンテナ間で設定を共有・調整する方法

                                    実施前準備

                                    実験に必要なファイルをダウンロードするために、ワークステーションで以下のコマンドを実行します:

                                    手順

                                    1. データベースコンテナイメージのビルド

                                    インストラクターアプリケーション用のデータベースコンテナイメージをビルドします。イメージにはinstructor/mysql:latestというタグを付けます。Dockerfileは/home/student/DO285/labs/deploy-instructor/mysqlディレクトリにあります。
                                    1.1. ワークステーションで以下のコマンドを実行して、指定されたディレクトリに移動します:
                                    1.2. docker buildコマンドを使用して、instructor/mysql:latestとしてタグ付けされたデータベースコンテナイメージをビルドします:
                                    1.3. Dockerfile内の環境変数を確認して、コンテナのランタイム動作にどのように影響するかを把握します:
                                    重要な環境変数:
                                    • $MYSQL_USER - データベースユーザー名
                                    • $MYSQL_PASSWORD - ユーザーのパスワード
                                    • $MYSQL_DATABASE - 作成するデータベース名
                                    • $MYSQL_ROOT_PASSWORD(オプション) - rootアカウントのパスワード

                                    2. フロントエンドPHPコンテナイメージのビルド

                                    インストラクターアプリケーション用のPHPフロントエンドコンテナイメージをビルドします。イメージにはinstructor/php:latestというタグを付けます。Dockerfileは/home/student/DO285/labs/deploy-instructor/instructorディレクトリにあります。
                                    2.1. ワークステーションで以下のコマンドを実行して、指定されたディレクトリに移動します:
                                    2.2. docker buildコマンドを使用して、instructor/php:latestとしてタグ付けされたフロントエンドコンテナイメージをビルドします:
                                    2.3. src/services/api.phpファイルを確認して、データベース接続を制御する環境変数を特定します。dbConnect()関数内でデータベース接続が設定されています:
                                    dbConnect()関数で使用される環境変数:
                                    • MYSQL_HOST
                                    • MYSQL_USER
                                    • MYSQL_PASSWORD
                                    • MYSQL_DATABASE

                                    3. Dockerネットワークの作成

                                    2つのコンテナが共有できるように、appsという名前のDockerネットワークを作成します。
                                    以下のコマンドを実行してネットワークを作成します:

                                    4. データベースコンテナの作成

                                    instructor/mysql:latestイメージを使用して、以下のプロパティを持つデータベースコンテナを作成します:
                                    • コンテナはデタッチモードで実行される
                                    • コンテナはappsネットワークに接続される
                                    • コンテナ名はdb
                                    • 新しいデータベースinstructorが作成される
                                    • dbuser1というデータベースユーザーが作成され、パスワードはmypa55
                                    以下のコマンドを使用してコンテナを作成します:

                                    5. フロントエンドWebアプリコンテナの作成

                                    instructor/php:latestイメージを使用して、以下のプロパティを持つWebアプリコンテナを作成します:
                                    • コンテナはデタッチモードで実行される
                                    • コンテナはappsネットワークに接続される
                                    • データベース接続設定用の環境変数が設定される
                                    • ローカルポート8080がコンテナのポート8080に転送される
                                    以下のコマンドを使用してコンテナを作成します:

                                    6. アプリケーションの動作確認

                                    http://localhost:8080/services/instructors エンドポイントで、アプリケーションが正しく動作しているかを確認します。JSONデータが返される場合、webappコンテナがdbコンテナからデータベースレコードを取得できていることが確認できます。
                                    curlコマンドで確認します:

                                    7. グレーディングスクリプトの実行

                                    すべてのタスクが完了したか確認するために、グレーディングスクリプトを実行します:

                                    8. クリーンアップ

                                    実験を終了した後、クリーンアップを実行して環境を整えます:

                                    実験の終了

                                    これで実験は終了です。
                                     
                                    相关文章
                                    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
                                    23- 第7章:OpenShiftインストール-1:Ansibleの用意の説明21- 第6章:マルチコンテナアプリケーションの展開-1:考慮事項の説明
                                    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 学习笔记

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

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

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