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
                                    18-Red Hat DO285 第5章:カスタムコンテナイメージの作成-1:コンテナイメージの管理ラボ
                                    Lazy loaded image
                                    17-Red Hat DO285 第4章:コンテナイメージの管理-4:コンテナイメージの管理ラボ
                                    Lazy loaded image
                                    16-Red Hat DO285 第4章:コンテナイメージの管理-3:ガイド付き演習
                                    Lazy loaded image
                                    15-Red Hat DO285 第4章:コンテナイメージの管理-2:コンテナイメージの操作
                                    Lazy loaded image
                                    01-生成AIパスポート試験対策:第1章「人口知能」21-Red Hat DO285 第6章:マルチコンテナアプリケーションの展開-1:考慮事項
                                    Loading...
                                    みなみ
                                    みなみ
                                    一个普通的干饭人🍚
                                    最新发布
                                    02-生成AIパスポート試験対策:第2章「生成AI」
                                    2025-2-1
                                    01-生成AIパスポート試験対策:第1章「人口知能」
                                    2025-2-1
                                    究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
                                    2025-1-27
                                    不要再傻傻的直接买NISA啦
                                    2025-1-27
                                    Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
                                    2025-1-24
                                    529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
                                    2025-1-22
                                    公告
                                    🎉欢迎访问我的博客🎉
                                    - 感谢您的支持 --
                                    本站点于2024/09/01建立
                                    👏主要分享IT相关主题👏
                                    系统管理:
                                    Redhat…
                                    容器和编排:
                                    Kubernetes、Openshift…
                                    云计算:
                                    AWS、IBM…
                                    AI入门
                                    以及技术笔记和考证经验
                                    定期更新,欢迎互动。
                                    感谢访问!
                                    快速浏览相关标签