在一个简短的编程项目中,我构建了几十个Docker映像,容器和网络。我可以使用docker image ls
,docker container ls --all
等来找到它们。
现在,我也想使用Docker启动一个新的,无关的项目。我不想将所有新项目的图像和容器与旧的图像和容器混合在一起。我想重新开始。
一个选项是docker prune
,但这对我来说不合适,因为我希望以后可以返回到旧项目。
有什么办法告诉Docker将所有现有的映像/容器存储到文件夹或档案中吗?到目前为止,我最好的主意是为新项目创建一个新的VM,但我希望找到一个更简单的解决方案。
答案 0 :(得分:0)
如果正确设置了所有内容,则现在应该可以删除所有内容,并确保保留所有数据目录。以后您应该可以或多或少地
$SCM clone ...
cd myproject
cp -r $HOME/backups/myproject/mysql .
docker-compose up -d --build
要使其正常工作:
docker-compose.yml
或类似的部署控制文件,应用程序的源代码,任何配置文件)都需要检入源代码管理。docker import
或docker commit
,或者尝试过不通过Dockerfile-> build->运行顺序来创建容器或映像。如果需要将工作移植到新系统上,则这是同一步骤。您会得到一台新的闪亮笔记本电脑;您的同事想开始您的项目;您的硬盘崩溃,您需要重新开始;或/var/lib/docker
只是随机破坏自己。
一旦处于这种状态,容器就无所谓了,您可以全部docker stop && docker rm
(您可以将docker run
或docker-compose up
的脚本编写成相同的配方州)。同样,图像也没关系,您可以docker rmi
进行所有操作(可以从本地来源轻松docker build
)。