繁体   English   中英

OS X上没有/var/run/docker.sock

[英]No /var/run/docker.sock on OS X

我正在尝试使用REST调用来访问Docker信息。 我尝试了这个例子,我推出了一个网站:

echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock

我没有错,但什么也没发生。 我的系统上有docker图像(我可以做'docker images'并查看列表)。 运行命令行docker工具时没有问题。

查看文件系统,我的系统上没有/var/run/docker.sock。

我在OS X上使用开箱即用的boot2docker安装。Docker信息输出在这里:

bash-3.2$ docker info
Containers: 6
Images: 174
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Dirs: 186
Execution Driver: native-0.2
Kernel Version: 3.16.7-tinycore64
Operating System: Boot2Docker 1.3.2 (TCL 5.4); master : 495c19a - Mon Nov 24 20:40:58 UTC 2014
Debug mode (server): true
Debug mode (client): false
Fds: 11
Goroutines: 13
EventsListeners: 0
Init Path: /usr/local/bin/docker

我错过了什么?

Docker仅在64位Linux内核上运行。 如果您正在使用boot2docker,那么您实际上是在虚拟机VM中安装Docker。 Docker客户端(在Mac上)实际上通过TLS对VM内的Docker守护进程进行REST调用。

由于您的Docker守护程序已经设置为执行TLS,您不需要使用nc技巧与套接字通信,我们可以直接使用curl。 不幸的是,Mac上安装的curl版本不支持boot2docker中使用的证书类型,因此我们必须首先创建一个新证书:

$ cd ~/.boot2docker/certs/boot2docker-vm/
$ openssl pkcs12 -export -inkey key.pem \
         -in cert.pem -name b2d-client-side \
         -out b2d-client-side.p12 \
         -password pass:tcuser

这应该创建文件b2d-client-side.p12 (我从https://github.com/boot2docker/boot2docker/issues/573获取了这些说明)。 现在我们可以使用curl:

$ curl \
     --cacert ~/.boot2docker/certs/boot2docker-vm/ca.pem \
     --cert ~/.boot2docker/certs/boot2docker-vm/b2d-client-side.p12:tcuser  \
     https://$(boot2docker ip):2376/images/json
[{"Created":1432076009,"Id":"b96d1548a24e2a089512da28da79ce70825f6d7f"....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM