2016-11-08 128 views
0

处理大图像时遇到的问题是Docker会在您创建容器时复制所有数据:因此,在Docker虚拟机上使用25GB图像和容器完全占用大约50GB。 我做错了什么或者Docker的功能是这样吗?如果是这样,为什么?例如,在Git中,您可以在克隆回购库后直接使用代码,大多数情况下您不需要额外增加一个分支或任何其他副本。我想保留我的MySQL数据库的不同版本(因为目前它是由开发人员独占地更改的,而且发生频率不是很高),而且我希望启用快速恢复(唯一方法MySQL允许从* .sql文件恢复,并且它需要7个小时 - 太长时间才能够自由地使用db)为什么docker在VM上保留图像和图像容器?

+2

如果你有很多数据,你应该使用卷。图像应该很小,阅读https://docs.docker.com/engine/tutorials/dockervolumes/并使用Alpine或bitnami(Debian光)作为基础图像,并且您的图像将更小 – user2915097

+0

@ user2915097添加了我的用例这个问题 – Yurii

回答

0

MySql数据库至少使用卷的官方映像。你只需要两个容器中使用不同的命名卷枝条相同的图像:

docker create volume devdb 
docker run --name devdb -v devdb:/var/lib/mysql -p 3306:3306-e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql 

然后又为您提供:

docker create volume mydb 
docker run --name mydb -v mydb:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql 

而且恐怕泊坞窗将所有的图像内容到新的容器。但我不确定这一点。

Regards

相关问题