6

docker run -it -v /xx1 -v /xx2 [image] /bin/bash用来创建一个容器。

然后提交镜像并推送到 docker hub。

采用docker inspect [image]

Volumes细节是

"Volumes": {
            "/xx1": {},
            "/xx2": {}
        },

现在我想删除/xx1这张图片中的音量。

我该怎么办?

4

3 回答 3

4

我认为现在使用 Docker 工具是不可能的。您无法从正在运行的容器中删除卷,或者如果您要将映像用作新 Dockerfile 中的基础,则无法删除继承的卷。

可能您可以使用 Jérôme Petazzoni 的nsenter工具手动移除容器内的挂载,然后提交。您可以使用该方法将卷附加到正在运行的容器,但需要进行一些相当低级的黑客攻击。

于 2016-09-20T10:05:40.423 回答
4

有一种解决方法,您可以docker save image1 -o archive.tar编辑元数据 json 文件,然后docker import -i archive.tar. 这样历史和所有其他元数据都被保留了。

为了帮助保存/解包/编辑/加载,我创建了一个小脚本,看看docker-copyedit。专门针对您将执行的问题

./docker-copyedit.py from [image] into [image2] remove volume /xx1
于 2018-04-22T21:55:21.063 回答
0

删除卷的一种简单方法是导出然后导入容器映像:

  • docker run --name my-container -it [image] /bin/bash
  • docker export my-container > tarball
  • docker import tarball
于 2018-01-23T23:09:34.247 回答