Dockerコンテナの再起動後にデータが消失する問題の対処法
Docker コンテナを再起動してもデータを失わないようにするには、次の方法が有効です。
- Docker のボリューム機能を利用して、コンテナー内のデータディレクトリをホストマシンのファイルシステムにマウントすると、コンテナーが再起動してもホストマシン上にデータが保持され、失われることはありません。
- 例えば、-v または –volume パラメーターを使用して、コンテナー内のディレクトリをホストマシンにマウントします。
- ドッカー コンテナを起動し、ホストマシンのディレクトリをコンテナのディレクトリにマウントします。イメージ名を使用します。
- データボリュームコンテナを使用して、データ用の特別なコンテナを作成し、他のコンテナはそのデータボリュームコンテナをマウントしてデータにアクセスします。これにより、コンテナが再起動しても、データボリュームコンテナのデータは失われません。
- まず、データボリュームのコンテナを作成:
- docker create -v /コンテナデータディレクトリ –name データボリュームコンテナ名 イメージ名 /bin/true
- 次に、–volumes-from 引数を別のコンテナ に使用して、そのデータ・ボリューム・コンテナをマウントします。
- docker run –volumes-from データボリュームコンテナ名 イメージ名
- コンテナのデータをホストマシンの永続ストレージ(ローカルファイルシステム、ネットワークストレージなど)に保存するため、ローカル永続ストレージを使用します。これによりコンテナの再起動時もデータが復元されます。
- 例えば、コンテナのデータディレクトリをホストマシンのフォルダのマウントポイントにマウントする。
- docker run -v ホスト側のディレクトリ:コンテナ側のディレクトリ イメージ名
実践的なニーズに基づいて上記の方法を選択することで、コンテナの再起動後にデータが失われないようにすることができます。