gpt4 book ai didi

docker - 我可以导出包含数据和所有内容的容器以在另一台计算机上生成完整副本吗?

转载 作者:行者123 更新时间:2023-12-02 20:17:24 26 4
gpt4 key购买 nike

我正在研究Docker并试图将其包裹住,所以我可能会误解了这个概念。

我已经安装了sebp/elk(ElasticSearch-Logstash-Kibana)并正在运行一个工作容器。我已经设置了一些索引,并将一些数据发布到了logstash中,并与容器一起存储。如果我重新启动容器,一切都会按预期进行。现在,我有兴趣按原样导出容器,以使用我已设置的配置和数据在另一台计算机上启动。

因此,我尝试了export容器,并import将其作为新图像,并run了来自新图像的容器。该容器可以工作,但是它作为一个没有我放入原始容器的所有数据的新容器启动。

我还尝试对更改的图像进行commit,然后对图像进行save,再次对其进行load,然后对新图像中的容器进行run。这也可以,但是再次没有任何数据。

因此,当我对原始容器进行inspect编码时,我可以看到它具有已装入的卷,因此我认为应该尝试将elasticsearch数据导出到.tar文件,然后再导入到新容器中。但这也不起作用。

这是原始容器的安装检查:

"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 -v $(pwd):/volumes original/sebp/elk:exported tar cvf /volumes/elk-volume.tar /var/lib/elasticsearch

...这就是我尝试导入的方式:
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容器以获取包含数据和所有内容的精确副本,还是我以错误的方式解决此问题?

最佳答案

您的方法是正确的,docker export命令不会导出与容器关联的卷的内容,因此您必须导出容器而不是备份卷数据。

在执行卷还原之前,请确保已运行麋鹿导入的容器。

docker run -v /volumes --name elk-imported  original/sebp/elk:exported /bin/bash
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 - 我可以导出包含数据和所有内容的容器以在另一台计算机上生成完整副本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com