type
status
date
slug
summary
tags
category
icon
password
书籍

ガイド付き演習: MySQL データベースのロード

この演習では、MySQL データベースコンテナを作成し、コンテナからホストへのポート転送を行い、SQL スクリプトをロードしてデータベースを設定します。

リソース:

  • ファイル: 該当なし
  • アプリケーション URL: 該当なし
  • イメージ: RHSCL MySQL 5.7 イメージ (rhscl/mysql-57-rhel7)

目標:

  • 永続的なストレージを備えた MySQL データベースコンテナを展開できるようになります。
  • SQL スクリプトをデータベースにロードできるようになります。

手順:

  1. データベースの永続的ストレージを設定する
    1. 最初に、データベースがコンテナの再起動後もデータを保持できるように必要なディレクトリを作成します。
      ターミナルで以下のコマンドを実行します:
  1. MySQL コンテナインスタンスの作成とポート転送設定
    1. 永続ストレージとポート転送を設定した MySQL コンテナを作成します。以下のコマンドを実行します:
      • p パラメータでポート転送を設定。ホストのポート 13306 への接続はコンテナ内の 3306 ポートに転送されます。
      • /var/local/mysql ディレクトリは、セットアップスクリプトによって適切な権限で作成されていることを確認してください。
  1. コンテナが正しく起動したことを確認する
    1. 以下のコマンドを実行して、コンテナが起動していることを確認します:
      出力結果に PORTS の列でポート転送が表示されていることを確認します。
  1. データベースをロードする
    1. 次に、SQL スクリプトを使用してデータベースをロードします。以下のコマンドを実行します:
  1. データベースのロードが成功したことを確認する
    1. 以下のコマンドを実行して、データベースにデータがロードされたかを確認します:
  1. コンテナ内で確認する方法
    1. コンテナ内の MySQL にアクセスして確認する方法もあります。以下のコマンドでコンテナ内に bash シェルを開きます:
  1. コンテナ内でデータを確認する
    1. bash シェル内で以下のコマンドを実行して、データベースの内容を確認します:
  1. コンテナ内から exit する
    1. データ確認後、bash シェルを終了します:
  1. 他の方法でデータを確認する
    1. コンテナ内の絶対パスを使ってプロセスを注入し、データを確認することもできます:
      注意: mysql コマンドは $PATH に含まれていないため、絶対パスを使用する必要があります。
  1. データベースが正しく設定されたか確認する
    1. ターミナルで以下のコマンドを実行して、設定を確認します:
  1. コンテナとボリュームの削除 最後に、作成したコンテナとボリュームを削除します:
  • コンテナを停止する:
    • 停止したコンテナを削除する:
      • コンテナイメージを削除する:
        • データベースデータを保存していたディレクトリを削除する:
          これでガイド付き演習は完了です。
           

          ソリューション:コンテナ管理

          このラボでは、MySQLデータベースデータをホストフォルダに永続的に保存するコンテナをデプロイし、データベースをロードしてコンテナを管理する方法を学びます。

          1. MySQLデータ保存用のホストフォルダ作成

          コンテナをデプロイする前に、MySQLのデータを保存するホストディレクトリを設定する必要があります。

          1.1 ホストフォルダの作成

          以下のコマンドで/var/local/mysqlディレクトリを作成します:

          1.2 SELinuxコンテキストの設定

          Dockerがこのディレクトリにアクセスできるように、適切なSELinuxコンテキストを設定します:

          1.3 フォルダの所有者を変更

          MySQLユーザー(uid=27)とMySQLグループ(gid=27)にホストフォルダの所有権を変更します:

          2. MySQLコンテナインスタンスのデプロイ

          次に、MySQLコンテナを以下の条件でデプロイします:
          • 名前:mysql-1
          • デーモンとして実行
          • ボリューム:/var/local/mysqlホストフォルダから/var/lib/mysql/dataコンテナフォルダへ
          • コンテナイメージ:rhscl/mysql-57-rhel7
          • ポート転送:なし
          • 環境変数:
            • MYSQL_USER=user1
            • MYSQL_PASSWORD=mypa55
            • MYSQL_DATABASE=items
            • MYSQL_ROOT_PASSWORD=r00tpa55

          2.1 コンテナの作成と起動

          以下のコマンドでコンテナを作成し、起動します:

          2.2 コンテナが正しく起動したか確認

          以下のコマンドでコンテナの状態を確認します:

          3. データベースのロード

          次に、db.sqlスクリプトを使ってデータベースをロードします。

          3.1 コンテナのIPアドレスを取得

          コンテナのIPアドレスを確認します:

          3.2 データベースをロード

          以下のコマンドでデータベースをロードします:
          CONTAINER_IPは、前のコマンドで取得したIPアドレスに置き換えます。

          3.3 データベースの確認

          以下のコマンドでデータベースがロードされたことを確認します:

          4. コンテナの停止

          次に、コンテナを停止します。このステップは、新しいコンテナが同じボリュームを使用するため、データベースの破損を防ぐために重要です。コンテナを再起動しないでください。

          コンテナを停止

          以下のコマンドでコンテナを停止します:

          5. 新しいMySQLコンテナの作成

          次に、以下の条件で新しいコンテナmysql-2を作成します:
          • 名前:mysql-2
          • デーモンとして実行
          • ボリューム:/var/local/mysqlホストフォルダから/var/lib/mysql/dataコンテナフォルダへ
          • コンテナイメージ:rhscl/mysql-57-rhel7
          • ポート転送:ホストのポート13306からコンテナのポート3306
          • 環境変数:
            • MYSQL_USER=user1
            • MYSQL_PASSWORD=mypa55
            • MYSQL_DATABASE=items
            • MYSQL_ROOT_PASSWORD=r00tpa55

          5.1 新しいコンテナの作成と起動

          以下のコマンドで新しいコンテナを作成して起動します:

          5.2 コンテナが正しく起動したか確認

          以下のコマンドでコンテナの状態を確認します:

          6. コンテナのリストを保存

          すべてのコンテナ(停止中のものも含む)の情報を/tmp/my-containersファイルに保存します:

          7. コンテナ内でデータベースを確認

          コンテナ内のシェルにアクセスし、データベースとテーブルが利用可能か確認します。

          7.1 コンテナのbashシェルにアクセス

          以下のコマンドでコンテナ内に入ります:

          7.2 MySQLサーバーに接続

          以下のコマンドでMySQLに接続します:

          7.3 データベースを確認

          以下のコマンドでデータベースを確認します:

          7.4 テーブルを確認

          itemsデータベースのテーブルを確認します:

          7.5 テーブルのデータを確認

          テーブルからデータを確認します:

          7.6 シェルから退出

          MySQLクライアントおよびコンテナシェルから退出します:

          8. データの追加

          ポート転送を使用して、Itemテーブルに新しい行を追加します。

          8.1 MySQLに接続

          以下のコマンドでMySQLに接続します:

          8.2 データの挿入

          以下のコマンドで新しいデータを挿入します:

          8.3 MySQLクライアントから退出

          以下のコマンドでMySQLクライアントを終了します:

          9. 不要なコンテナの削除

          最初のコンテナmysql-1は不要となるため、リソースを解放するために削除します。

          9.1 コンテナを削除

          以下のコマンドでコンテナを削除します:

          10. ラボの確認

          ラボが正しく実行されたかを確認するために、以下のコマンドを実行します:

          11. コンテナとリソースの削除

          ラボで作成したコンテナとリソースを削除します。

          11.1 コンテナを停止

          以下のコマンドでmysql-2コンテナを停止します:

          11.2 コンテナを削除

          以下のコマンドでコンテナを削除します:

          11.3 コンテナイメージを削除

          以下のコマンドでコンテナイメージを削除します:
          この章で学んだことは以下の通りです:
          1. コンテナ管理に関する基本的なコマンド
              • docker run: 新しいコンテナを作成します。
              • docker ps: 実行中のコンテナを一覧表示します。
              • docker inspect: コンテナのメタデータを表示します。
              • docker stop: 実行中のコンテナを停止します。
              • docker kill: コンテナを強制的に停止します。
              • docker restart: 停止したコンテナを再起動します。
              • docker rm: コンテナを削除します。
          1. コンテナストレージ
              • コンテナストレージは一時的であり、コンテナが削除されるとそのデータは保存されません。
          1. 永続的なデータの取り扱い
              • ホストのフォルダを使用してデータを永続化できます。
          1. ボリュームのマウント
              • docker runコマンドで v オプションを使用して、ボリュームをマウントできます。
          1. コンテナ内での追加プロセスの実行
              • docker execコマンドを使用して、実行中のコンテナ内で追加のプロセスを開始できます。
          1. ポートマッピング
              • docker runコマンドで p オプションを使用して、ホストとコンテナ間でポートをマッピングできます。
           
          相关文章
          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
          13- 第3章: コンテナの管理-6:MySQL データベースのロードの演習11- 第3章: コンテナの管理-5:Dockerネットワークのアクセスの説明
          Loading...
          みなみ
          みなみ
          一个普通的干饭人🍚
          最新发布
          TOKYO自習島
          2025-4-27
          第1回:イントロダクション
          2025-4-21
          第1回:イントロダクション
          2025-4-18
          第1回:オリエンテーション/意思決定と会計情報
          2025-4-18
          建物業法の基本と免許-59問
          2025-4-10
          宅建士过去问速刷:小南小白陪你拿证-001
          2025-4-7
          公告

          🎉 欢迎访问我的博客 🎉

          🙏 感谢您的支持 🙏

          📅 本站自 2024年9月1日 建立,致力于分享我在 IT・MBA・不动产中介 等领域的学习与实践经验,并推动 线上线下学习会 的自主开展。

          📚 主要内容

          💻 IT・系统与开发

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

          🏠 不动产 × 宅建士

          • 宅建士考试笔记

          🎓 MBA 学习笔记

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

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

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