gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:13:05 28 4
gpt4 key购买 nike

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

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

我没有错误,但什么也没发生。我的系统上有 docker 图像(我可以执行“docker 图像”并查看列表)。我在运行命令行 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,您实际上是在谈论在 virtualbox 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"....

关于macos - OS X 上没有/var/run/docker.sock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399871/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com