Docker构建错误,存档/ tar:不支持套接字

时间:2019-05-20 06:34:43

标签: linux docker dockerfile

我是Docker的新手,正在尝试构建映像。 我使用Docker commit命令成功完成了此操作,但是当我尝试使用Dockerfile执行此操作时,出现以下错误:

shim@shim-Inspiron-5570:~$ sudo docker build -t shim/debian .
[sudo] password for shim: 
ERRO[0014] Can't add file /home/shim/.ServiceHub/bc1be858c1/116f2fb4b7 to tar: archive/tar: sockets not supported 
ERRO[0014] Can't add file /home/shim/.ServiceHub/bc1be858c1/11a6628921 to tar: archive/tar: sockets not supported 
ERRO[0014] Can't add file /home/shim/.ServiceHub/bc1be858c1/2cb20241cd to tar: archive/tar: sockets not supported 
ERRO[0014] Can't add file /home/shim/.ServiceHub/bc1be858c1/4964606154 to tar: archive/tar: sockets not supported 
ERRO[0014] Can't add file /home/shim/.ServiceHub/bc1be858c1/bc1be858c1 to tar: archive/tar: sockets not supported 
^Cnding build context to Docker daemon  1.725GB

Docker文件如下所示:

FROM debian:shim
RUN apt-get update
RUN apt-get install -y git
RUN apt-get install -y vim

我正在使用Ubuntu DeskTop 18.04 有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

您的Dockerfile可能位于/home/shim/中?

当您执行docker build .时,docker将把当前目录的内容打包,并将其发送到docker守护程序。看来/home/shim/.ServiceHub中的某些文件实际上是套接字,因此此操作失败。

最佳做法是将Dockerfile放在自己的隔离目录中,以避免此类情况。

此外,我建议您通读dockerfile_best-practices,特别是有关RUNapt-get的内容

答案 1 :(得分:0)

嗨,我也面临着同样的问题,并且从此问题中了解了原因。我的Dockerfile在一个步骤中重新启动MySQL,它创建了一个名为mysqld.sock的文件,在构建映像时出现上述错误。 如果是这种情况,那么您可以在仓库本身中添加.sock文件,然后从那里使用它。

答案 2 :(得分:0)

对于此特定示例,您不应在 Dockerfile 中包含 /home/shim

对于项目中的套接字 (*.sock) 文件的一般情况,您可以将 *.sock 添加到 .dockerignore 文件中。