共有データボリュームを使用すると、データの永続性とコンテナ間のデータ共有が容易になります。
共有データボリュームを使用すると、MySQLコンテナ内のデータが永続的に保存され、また複数のMySQLコンテナ間でデータを共有することが容易になります。
以下に具体的な手順・実施例・説明を示します。
(前提)ここでは、まず「1.共有データボリュームの作成と確認」を行い、「2.MySQLコンテナの起動(1つ目)」と「3.MySQLコンテナの起動(2つ目)」で、2つのMySQLコンテナを実行し、両方から、同一の共有データボリュームを操作するテスト環境を作成しています。
1.共有データボリュームの作成と確認
(1)共有データボリュームの作成
共有データボリュームを作成するために、以下のコマンドを使用します。
> docker volume create mysql_data
このコマンドにより、mysql_data
という名前の共有データボリュームが作成されます。このボリュームはホストOSのファイルシステム上にデータを保存します。
実施例)
docker volume create mysql_data01
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-158.png?resize=640%2C142&ssl=1)
(2)(上記(1)で作成した)共有データボリュームの確認
① Docker Desktop上での確認方法
Docker Desktopで[設定]→[Resources]と選択し、[Disk image location]で、共有データボリュームが作成される場所を確認できます。
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-160.png?resize=640%2C450&ssl=1)
② ローカルディスク上での確認内容
(上記①で確認した場所で)作成された共有データボリュームを確認する。
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-161.png?resize=640%2C175&ssl=1)
これで、共有データボリュームが作成されていることが確認できました。
③ コマンドプロンプト上での確認方法
また上記で作成した共有データボリューム情報は、次のコマンドでも確認できます。
> docker volume inspect
試行例)
> docker volume inspect mysql_data01
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-174.png?resize=550%2C233&ssl=1)
こちらでは、仮想環境(mysqlコンテナ)内での設置場所等が確認できました。
2.MySQLコンテナの起動(1つ目)
共有データボリュームを使用してMySQLコンテナを起動するために、以下のコマンドを使用します。
> docker run -d –name mysql-container -e MYSQL_ROOT_PASSWORD=password -v mysql_data:/var/lib/mysql mysql:8.0.33
実施例)
① ここでは、既に動いているMySQLコンテナを一旦停止します。
> docker stop mysql8.0.33-container
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-162.png?resize=453%2C71&ssl=1)
② (上記で作成した)共有データボリュームを使用するMySQLコンテナを作成します。
> docker run -d –name mysql8.0.33-container -e MYSQL_ROOT_PASSWORD=<パスワード> -v mysql_data01:/var/lib/mysql mysql8.0.33-image
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-163.png?resize=640%2C39&ssl=1)
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-164.png?resize=640%2C34&ssl=1)
これで、(上記で作成した)共有データボリュームを使用するMySQLコンテナを作成できました。
3.MySQLコンテナの起動(2つ目)
① 2つ目のMySQLコンテナを実行します。(名前は、mysql8.0.33-container2としています)
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/image-165.png?resize=640%2C85&ssl=1)
これで、(上記で作成した)共有データボリュームを共有する2つのMySQLコンテナを作成・確認することができました。
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/06/fd2e2fc4521cdb63ebee176fa3387d5d-1.jpg?resize=640%2C640&ssl=1)