docker - 如何删除正在运行的Docker镜像中的文件,然后保存该镜像以供以后加载?

标签 docker

我正在尝试从Docker镜像中删除文件,然后导出Docker镜像以在另一台服务器上使用。

我已完成以下步骤:

docker exec -it <name> sh
rm <file>
exit
docker commit <id> <newImageName>
docker save <newImageName> > newImageName.tar

当我解压newImageName.tar时,它仍然包含我在其中一层中上面找到的文件。

如何从正在运行的镜像中删除文件并保存该镜像?

谢谢

最佳答案

使用docker execrm删除文件,然后使用docker export导出容器。当您使用docker import还原容器时,该文件将不存在。

当您使用docker commit时,您将在先前的层上创建另一个层,并且该文件仍将存在于先前层的tarball中,因为Docker镜像是基于层的概念构建的。当您docker load并运行图像时,该文件将不存在。

如果您的问题是由于病毒扫描出现误报而导致压缩文件中存在该文件,请使用docker export

关于docker - 如何删除正在运行的Docker镜像中的文件,然后保存该镜像以供以后加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44137007/

相关文章:

node.js - Docker 容器中的 NSolid 应用程序注册了错误的 IP

docker - 使用 Docker Compose 引用服务

node.js - docker 上的微服务 - 架构

ubuntu - 检查每个 Docker 容器使用的资源

docker - 在Docker上设置Mesos和Kubernetes的命令?

windows - Haskell 和 Docker 合理部署的镜像大小?

laravel - 在docker中构建lumen时如何重新安装libzip发行版

docker - host to add/usr/bin/host to scratch 由 Go binary 组成的 Dockerfile?

docker - 将用户添加到现有的Kubernetes集群

docker - 不允许使用Docker CentOS systemctl