基本的に、docker コンテナーでデータを管理する 4 つの異なる方法を見てきました。
- コンテナ内で「エフェメラル」ボリュームを使用 - コンテナが削除されるとデータが削除されます
- ホスト上のコンテナーを Docker コンテナー内のボリュームにマッピングする - テスト目的でのみ推奨
- 「データ コンテナ」を作成し、そのコンテナ ボリュームを他のコンテナにマッピングする
- Docker「データボリューム」を作成し、それを他のコンテナにマッピングする
私が理解している限り、代替案 3 と 4 が最も推奨されるアプローチですが、さまざまなアプローチの利点/欠点は何ですか?
私が意味することを説明するためのいくつかのコード:
データ コンテナー
docker create -v /dbdata --name dbstore training/postgres /bin/true
docker run -d --volumes-from dbstore --name db1 training/postgres
データ量
ここで説明: https://docs.docker.com/engine/reference/commandline/volume_create/
さまざまな「docker volume」コマンドを使用してボリュームを維持する
docker volume create --name hello
docker run -d -v hello:/world busybox ls /world
使用事例
jira、bitbucket、jenkins、sonar、nexus を docker コンテナーとして実行し、アプリケーション データを可能な限りシンプルかつ信頼性の高い方法でバックアップできます :-)