通过文件夹或档案来组织docker映像/容器/网络

时间:2019-06-25 15:17:22

标签: docker

在一个简短的编程项目中,我构建了几十个Docker映像,容器和网络。我可以使用docker image lsdocker container ls --all等来找到它们。

现在,我也想使用Docker启动一个新的,无关的项目。我不想将所有新项目的图像和容器与旧的图像和容器混合在一起。我想重新开始。

一个选项是docker prune,但这对我来说不合适,因为我希望以后可以返回到旧项目。

有什么办法告诉Docker将所有现有的映像/容器存储到文件夹或档案中吗?到目前为止,我最好的主意是为新项目创建一个新的VM,但我希望找到一个更简单的解决方案。

1 个答案:

答案 0 :(得分:0)

如果正确设置了所有内容,则现在应该可以删除所有内容,并确保保留所有数据目录。以后您应该可以或多或少地

$SCM clone ...
cd myproject
cp -r $HOME/backups/myproject/mysql .
docker-compose up -d --build

要使其正常工作:

  • 运行系统所需的所有工件(Dockerfile,docker-compose.yml或类似的部署控制文件,应用程序的源代码,任何配置文件)都需要检入源代码管理。
  • 您从未做过docker importdocker commit,或者尝试过不通过Dockerfile-> build->运行顺序来创建容器或映像。
  • 没有数据仅存在于容器中。容器碰巧处于永久状态的任何地方,都会保存在命名卷或绑定安装的主机目录中。 (IMHO主机目录更易于备份和管理。)

如果需要将工作移植到新系统上,则这是同一步骤。您会得到一台新的闪亮笔记本电脑;您的同事想开始您的项目;您的硬盘崩溃,您需要重新开始;或/var/lib/docker只是随机破坏自己。

一旦处于这种状态,容器就无所谓了,您可以全部docker stop && docker rm(您可以将docker rundocker-compose up的脚本编写成相同的配方州)。同样,图像也没关系,您可以docker rmi进行所有操作(可以从本地来源轻松docker build)。