Docker で作成したコンテナ内のフォルダ構成を確認する方法には、いくつかあるようです。
1.一般的なフォルダ構成
Docker で作成したコンテナ内のフォルダ構成は、コンテナイメージや設定によって異なる様です。
ここでは、一般的な場合のMySQLコンテナのフォルダ構成を以下に示します。
/var/lib/mysql
: MySQLデータファイルが格納されるディレクトリです。データベースのテーブルデータやログファイルが保存されます。/etc/mysql
: MySQLの設定ファイルが格納されるディレクトリです。my.cnf
や他の設定ファイルがここに配置されます。/var/log/mysql
: MySQLのログファイルが保存されるディレクトリです。エラーログやクエリログなどがここに書き込まれます。
これらは一般的なMySQLコンテナのフォルダ構成ですが、特定のDockerイメージや設定によっては異なる場合があります。カスタムイメージやDocker Composeなどを使用している場合は、設定によってディレクトリの配置が変わる可能性があります。
2.フォルダ構成を実際に確認する方法(その1)
(1)手順概要
コンテナ内のフォルダ構成を確認するには、docker exec
コマンドを使用してコンテナに入り、ファイルシステムを探索することができます。以下のコマンドを使用します。
>docker exec -it <コンテナIDまたはコンテナ名> bash
上記のコマンドを実行すると、コンテナに対して対話的なシェルセッションが開かれます。その後、コンテナ内でフォルダを探索するためにls
コマンドなどを使用できます。
試行例:
コンテナ内でシェルセッションが開かれたら、cd
コマンドやls
コマンドを使用して、フォルダ構成を探索できます。
(2)応用手順
上記①手順に沿って、ここでは、フォルダ構成を、パイプにより、(例えば、tree.txtという名前の)ファイルに出力し、そのファイルを、コンテナー内部からローカル環境にコピーすることで、上記フォルダ構成を取得してみました。
① MySQLコンテナのシェルセッションを開く
>docker exec -it mysql8.0.33-container bash
② 内部のフォルダ構成をファイル(tree.txt)出力する
>ls -R > tree.txt
(一部のフォルダーがアクセス権で開けなかったんですが、これは別途レビューアップしますので、ここでは割愛します)
③ Dockerのコンテナ用コマンド(docker cp)で、MySQLコンテナ内から、ローカル環境に、出力ファイル(tree.txt)を取得(コピー)します。
>docker cp mysql8.0.33-container:/tree.txt ./tree.txt
④ 取得した出力ファイルの内容を確認する
ローカルフォルダの出力ファイル(tree.txt)を開くと…
↓ …メモ帳で開いてみましたが…
以上で、MySQLコンテナ内部のフォルダ構成を取得できました。