当前位置: 首页 > 面试题库 >

码头工人错误:/var/run/docker.sock:没有这样的文件或目录

鞠宏恺
2023-03-14
问题内容

我是Docker的新手。我有一个将数据加载到impala中的shell脚本,并且我希望运行的docker文件构建映像并运行容器。我在Mac上,安装了boot2docker并DOCKER_HOST设置了环境。

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

我正在尝试使用以下方法安装预构建的映像:

sudo docker pull busybox

我收到此错误:

sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

我的docker设置有问题吗?

当我执行时docker pull busybox,它将拉出图像并完成下载。

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

我想念什么吗?


问题答案:

您不需要运行任何docker命令,因为sudo在使用时,默认情况下,boot2docker传递给boot2dockerVM的每个命令都以root用户身份运行。

您正在运行时看到错误,sudo因为sudo没有DOCKER_HOST设置环境,只有用户设置了。

您可以通过执行以下操作来确认这一点:

$ env

然后一个

$ sudo env

DOCKER_HOST在每个输出中寻找。

至于让docker文件运行您的脚本,类似这样的方法可能对您有用:

Docker文件

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

然后,您可以运行:

docker build -t your-image-name:your-tag .

这将构建您的docker映像,您可以通过执行以下操作看到:

docker images

然后,要运行容器,您可以执行以下操作:

docker run your-image-name:your-tag

此运行命令将从Dockerfile您使用build命令和build命令创建的映像中启动一个容器,然后script.sh在执行完成后结束。



 类似资料: