共有データボリュームを使用すると、データの永続性とコンテナ間のデータ共有が容易になります。
共有データボリュームを使用すると、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
(2)(上記(1)で作成した)共有データボリュームの確認
① Docker Desktop上での確認方法
Docker Desktopで[設定]→[Resources]と選択し、[Disk image location]で、共有データボリュームが作成される場所を確認できます。
② ローカルディスク上での確認内容
(上記①で確認した場所で)作成された共有データボリュームを確認する。
これで、共有データボリュームが作成されていることが確認できました。
③ コマンドプロンプト上での確認方法
また上記で作成した共有データボリューム情報は、次のコマンドでも確認できます。
> docker volume inspect
試行例)
> docker volume inspect mysql_data01
こちらでは、仮想環境(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
② (上記で作成した)共有データボリュームを使用するMySQLコンテナを作成します。
> docker run -d –name mysql8.0.33-container -e MYSQL_ROOT_PASSWORD=<パスワード> -v mysql_data01:/var/lib/mysql mysql8.0.33-image
これで、(上記で作成した)共有データボリュームを使用するMySQLコンテナを作成できました。
3.MySQLコンテナの起動(2つ目)
① 2つ目のMySQLコンテナを実行します。(名前は、mysql8.0.33-container2としています)
これで、(上記で作成した)共有データボリュームを共有する2つのMySQLコンテナを作成・確認することができました。