08- 第3章: コンテナの管理-2:MySQLコンテナの管理の演習

type
status
date
slug
summary
tags
category
icon
password
 
この演習では、Dockerを使用してMySQLデータベースコンテナを作成および管理する手順を説明します。演習終了後には、以下ができるようになります:
  1. MySQLデータベースコンテナの作成
  1. MySQLデータベースへの接続と操作
  1. コンテナの管理

事前準備

Dockerが動作していることを確認します。以下のコマンドをターミナルで実行してください:

手順

1. MySQLコンテナの初回起動

ターミナルで以下を実行します:
このコマンドはMySQLデータベースのコンテナイメージをダウンロードして起動しますが、必要な環境変数が指定されていないためエラーで停止します。
ヒント: デーモンモード(-d)で実行するとエラーが表示されませんが、ログで確認できます:

2. 環境変数を指定してコンテナを起動

以下のコマンドでコンテナを再度起動します(名前はmysqlに設定):

3. コンテナの動作確認

コンテナが正常に起動したか確認します:
出力例:

4. MySQLのIPアドレスを取得

コンテナのメタデータからIPアドレスを確認します:
例:

5. MySQLに接続

ホストからデータベースに接続します:
パスワードとしてmypa55を入力します。

6. データベースにテーブルを作成

以下のSQLコマンドを実行してテーブルを作成します:
もう一つ方法: 提供されたSQLファイルを使用してデータベースをアップロード:

7. データを挿入

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

8. MySQLからログアウト


9. 別のコンテナでBashを実行

新しいコンテナを作成し、/bin/bashシェルを起動します:

10. MySQL接続エラーの確認

Bashシェル内で以下を実行するとエラーが表示されます:
エラー例:
原因: データベースサーバーが起動していないため。
詳細な説明
MySQLコンテナのデフォルト動作: 通常、MySQLのコンテナは起動時に自動的にMySQLサーバーを起動します。このプロセスはコンテナのエントリーポイントであり、/bin/bash シェルではありません。
Bashシェルを指定した場合: コマンド docker run --name mysql-2 -it rhscl/mysql-57-rhel7 /bin/bash では、コンテナの起動時にMySQLサーバーの代わりに/bin/bashシェルを起動してしまっています。つまり、MySQLサーバーが起動していないため、MySQLに接続できません。
エラー内容: エラー ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) は、MySQLクライアントがローカルのMySQLサーバーに接続しようとした際に、そのサーバーが動作していないことを示しています。/var/lib/mysql/mysql.sock は通常MySQLサーバーが使用するソケットファイルであり、MySQLサーバーが起動していないため、このファイルが存在しません。
解決方法
MySQLサーバーを起動するには、コンテナを起動する際に適切なコマンドを使用する必要があります。具体的には、MySQLのサーバープロセスが開始されるように設定する必要があります。

11. Bashシェルを終了


12. コンテナの状態を確認

停止したコンテナmysql-2が動作していないことを確認します:

13. データベースの正確性を確認

以下のコマンドを実行して検証します:

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

以下の手順でコンテナやイメージを削除します:
  1. コンテナの停止:
  1. コンテナの削除:
  1. イメージの削除:

演習完了!

これでMySQLコンテナの作成と管理についての演習が終了しました。
 
Loading...