私はDockerを見て、その周りを頭で囲んでいるので、私はその概念を誤解しているかもしれません。データとともにコンテナをエクスポートして、別のコンピュータに完全なコピーを作成することはできますか?
sebp/elk(ElasticSearch-Logstash-Kibana)をインストールしていて、動作中のコンテナを実行しています。私はいくつかのインデックスを設定し、いくつかのデータをlogstashに投稿しました。これはコンテナに保存されています。コンテナを再起動すると、すべてが正常に動作します。今私はコンテナをそのままエクスポートし、私が設定した設定とデータを持つ別のコンピュータで起動することに興味があります。
私はexport
コンテナを試しました。import
新しいイメージとして、run
新しいイメージからのコンテナです。コンテナは機能しますが、元のコンテナに入れたすべてのデータがなくても新しいコンテナとして起動します。
私はまた、新しいイメージからコンテナをsave
、その後、画像への私の変更をcommit
画像をしようとしたload
それは再び、その後run
。それも動作しますが、データは一切ありません。
元のコンテナの場合は、ボリュームがマウントされていることがわかりました。そのため、elasticsearchデータを.tarファイルにエクスポートしてから新しいコンテナにインポートする必要があります。しかし、それはどちらもうまくいきませんでした。
これは元の容器のマウント検査です:
docker run --rm --volumes-from elk -v $(pwd):/volumes original/sebp/elk:exported tar cvf /volumes/elk-volume.tar /var/lib/elasticsearch
...そしてこれは私がそれをインポートしようとした方法である:ここでは
"Mounts": [
{
"Name": "fe17e920f9d17e177ac899b1617a8c51231c8a3b34007f463d082e5be2677412",
"Source": "/var/lib/docker/volumes/fe17e920f9d17e177ac899b1617a8c51231c8a3b34007f463d082e5be2677412/_data",
"Destination": "/var/lib/elasticsearch",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
は、私はそれをエクスポートしようとした方法です。
docker run --rm --volumes-from elk-imported -v $(pwd):/volumes original/sebp/elk:exported bash -c "cd /volumes && tar xvf /volumes/elk-volume.tar --strip 1"
Dockerコンテナをエクスポートして、データとすべてを含む正確なコピーを取得することは可能ですか?私はこの問題に間違った方法で近づいていますか?