我不确定这是否是正确的提问地点,但我正在运行一个docker build
在已安装的卷上构建图像的命令。在这个过程中我遇到了这个奇怪的错误
无法将文件 /mnt/Volumes/file/on/volume 添加到 tar: archive/tar: 不支持套接字
这是什么意思?
答案1
这对我有用。我尝试进行 docker commit 并收到消息
ERRO[2018-10-06T20:54:22.894911981-05:00] Can't add file /var/lib/docker/overlay2/161e218868241d450115fafcadc20b52ad2c81bf2e6b83897d3dfb7081eea34d/diff/tmp/ssh-OOMPJg4ESVMk/agent.165 to tar: archive/tar: sockets not supported
我再次附加到容器并删除/tmp/ssh-OOMPJg4ESVMk/
然后它就正常提交了。
正在发生的事情是创建了一个套接字。例如,该命令eval $(ssh-agent -s)
创建了一个套接字,但我没有意识到。
删除 sock 文件并提交。
答案2
如果您确实想存档此文件,我建议您使用来自的转储扩展名star
称呼:
star -C /mnt -c -dump Volumes > /tmp/file.tar
归档所有文件类型。如果您想让备份更完整,请添加:
-sparse
-acl
-xattr
对于-dump
,star 使用exustar
专为精确增量备份而设计的格式。