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

新手上路,请多包涵

我是码头工人的新手。我有一个将数据加载到 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

我错过了什么吗?

原文由 user1189851 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

当您使用 boot2docker sudo 运行任何 docker 命令,因为传递到 boot2docker 的每个命令都默认以 root 身份运行。

当您以 sudo 身份运行时,您会看到错误,因为 sudo 没有 DOCKER_HOST 设置,只有您的用户有。

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

 $ env

然后一个

$ sudo env

并在每个输出中寻找 DOCKER_HOST

至于有一个运行脚本的 docker 文件,这样的事情可能对你有用:

Dockerfile

 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 和您的构建命令创建的映像启动一个容器,然后在您的 script.sh 完成执行后完成。

原文由 Chris McKinnel 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 shellinit 快速设置您的环境

在您的命令提示符处执行:

 $(boot2docker shellinit)

这将填充和导出环境变量并初始化其他功能。

原文由 user848337 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进