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
コマンドなどを使用できます。
試行例:
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-117.png?resize=640%2C67&ssl=1)
コンテナ内でシェルセッションが開かれたら、cd
コマンドやls
コマンドを使用して、フォルダ構成を探索できます。
(2)応用手順
上記①手順に沿って、ここでは、フォルダ構成を、パイプにより、(例えば、tree.txtという名前の)ファイルに出力し、そのファイルを、コンテナー内部からローカル環境にコピーすることで、上記フォルダ構成を取得してみました。
① MySQLコンテナのシェルセッションを開く
>docker exec -it mysql8.0.33-container bash
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-118.png?resize=640%2C67&ssl=1)
② 内部のフォルダ構成をファイル(tree.txt)出力する
>ls -R > tree.txt
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-119.png?resize=578%2C717&ssl=1)
(一部のフォルダーがアクセス権で開けなかったんですが、これは別途レビューアップしますので、ここでは割愛します)
③ Dockerのコンテナ用コマンド(docker cp)で、MySQLコンテナ内から、ローカル環境に、出力ファイル(tree.txt)を取得(コピー)します。
>docker cp mysql8.0.33-container:/tree.txt ./tree.txt
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-120.png?resize=640%2C67&ssl=1)
④ 取得した出力ファイルの内容を確認する
ローカルフォルダの出力ファイル(tree.txt)を開くと…
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-121.png?resize=640%2C101&ssl=1)
↓ …メモ帳で開いてみましたが…
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-122.png?resize=227%2C611&ssl=1)
以上で、MySQLコンテナ内部のフォルダ構成を取得できました。