Docker构成重用卷

前端之家收集整理的这篇文章主要介绍了Docker构成重用卷前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试创建一个新的Docker镜像,该镜像不再使用来自正在使用图像的正在运行的容器中的卷.卷是使用docker-compose文件而不是Dockerfile创建的.问题是,当我通过新的docker-compose.yml文件启动一个新容器时,它仍然有映射的卷.我仍然需要保留这些卷和使用它们的原始容器/图像.另外,如果可能的话,我想继续使用相同的docker镜像,只需添加新版本,或者:最新版本.这是我使用的步骤:

现有图像的新版本:

docker commit 

从当前运行的容器创建一个新图像:

docker commit 

创建没有定义卷的新docker-compose.yml,并使用不同的项目名称运行docker-compose

docker-compose -p 

在没有docker-compose的情况下运行,只需使用docker run:

 docker run -d -p 8093:80 

每当我运行这些卷的任何组合时,仍然会从原始图像映射卷.所以我的问题是,如何从曾经映射过卷的图像创建一个容器,但我不想再使用这些卷了?

编辑:
我试过的其他事情:

>停止容器,移除容器,重新启动docker,再次运行docker compose.没运气.

编辑2:
决定从图像开始.使用基本映像,启动了一个容器,其中包含使用现在不相关图像的更新的docker compose文件.运行docker-compose -f up -d – >即使映像没有(并且从未拥有)映射的任何卷,STILL也会映射这些相同的卷,并且当前的docker-compose.yml文件不映射文件.看起来像docker-compose缓存为项目映射的卷.

在docker-compose中搜索缓存选项后,我遇到了这篇文章How to get docker-compose to always re-create containers from fresh images?
这似乎解决了缓存图像而不是容器缓存卷的问题

最佳答案
根据另一篇SO帖子,我想做的事情是不可能的.为了将来参考,不能将卷附加到图像,然后决定删除它们.必须在没有卷的情况下创建新映像.参考:
How to remove configure volumes in docker images

猜你在找的Docker相关文章