我docker run -it -v /xx1 -v /xx2 [image] /bin/bash
用来创建一个容器。
然后提交镜像并推送到 docker hub。
采用docker inspect [image]
Volumes
细节是
"Volumes": {
"/xx1": {},
"/xx2": {}
},
现在我想删除/xx1
这张图片中的音量。
我该怎么办?
我docker run -it -v /xx1 -v /xx2 [image] /bin/bash
用来创建一个容器。
然后提交镜像并推送到 docker hub。
采用docker inspect [image]
Volumes
细节是
"Volumes": {
"/xx1": {},
"/xx2": {}
},
现在我想删除/xx1
这张图片中的音量。
我该怎么办?
我认为现在使用 Docker 工具是不可能的。您无法从正在运行的容器中删除卷,或者如果您要将映像用作新 Dockerfile 中的基础,则无法删除继承的卷。
可能您可以使用 Jérôme Petazzoni 的nsenter
工具手动移除容器内的挂载,然后提交。您可以使用该方法将卷附加到正在运行的容器,但需要进行一些相当低级的黑客攻击。
有一种解决方法,您可以docker save image1 -o archive.tar
编辑元数据 json 文件,然后docker import -i archive.tar
. 这样历史和所有其他元数据都被保留了。
为了帮助保存/解包/编辑/加载,我创建了一个小脚本,看看docker-copyedit。专门针对您将执行的问题
./docker-copyedit.py from [image] into [image2] remove volume /xx1
删除卷的一种简单方法是导出然后导入容器映像:
docker run --name my-container -it [image] /bin/bash
docker export my-container > tarball
docker import tarball