docker daemon -H tcp://0.0.0.0:2375
,但终端建议我使用dockerd
,这显然不是Docker Client for mac附带的程序。有没有办法可以:
- A-在我的mac机器上获取某种形式的
dockerd
。 - B-通过其他方法绕过
dockerd
的使用。
?
docker daemon -H tcp://0.0.0.0:2375
,但终端建议我使用dockerd
,这显然不是Docker Client for mac附带的程序。有没有办法可以:
dockerd
。dockerd
的使用。?
brew install socat
socat -d -d TCP-L:8099,fork UNIX:/var/run/docker.sock
tcp://localhost:8099
用作API URL通过其他方法绕过使用
dockerd
。(2016)
请注意,到了2022年,您可以完全不需要dockerd
/ Docker Desktop。
请参阅Batuhan Apaydin的文章"一个现代化的工具包,在macOS上开始使用容器镜像,满足您的需求,而不需要Docker Daemon甚至是Docker Desktop。"
nerdctl
工具旨在成为Docker客户端的替代品。
而 Lima 是一个虚拟机监视器,可以启动 Linux 虚拟机,并自动进行文件共享、端口转发和 containerd。
Lima 的名称来自于 Linux Machines 的前两个大写字母的缩写。
Lima 的设计类似于 WSL2,但 Lima 主要针对 macOS 作为主要目标主机。
Lima 使用 QEMU 作为虚拟化技术的 hypervisor,并作为通用开源机器仿真器和虚拟化器。
Lima 还可以与其他容器引擎一起使用,例如 Podman,甚至用于非容器应用程序。
默认情况下,当 Lima 启动虚拟机时,它会以无根方式运行 buildkitd 和 containerd,并下载必要的客户端工具,如 buildctl、nerdctl 等。
一切都将为我们设置好。所以,剩下的就是构建、拉取和运行容器了。
对于 buildkit,Batuhan 建议使用 developer-guy/buildkit-machine
。
buildkit-machine
允许您在 macOS 环境中访问buildkitd
守护程序。为此,它在底层使用了一个名为
lima
的 Linux 子系统来实现。
lima
启动一个虚拟机,在其中以无根方式运行buildkitd
守护程序,这意味着buildkitd
守护程序的 sock 文件现在可以从/run/user/<USERID>/buildkit/buildkitd
访问。
所以:不再需要 Docker Desktop / dockerd
,并且可以以无根模式使用容器!
更多信息,请参见Bret Fisher的视频 "Free Docker Desktop Alternatives: DevOps and Docker Live Show (Ep 156)"(2022年1月)。
在 Mac 上运行 dockerd 是不被支持的。参考 this issue:
我认为在 Darwin 上不应该建议运行 dockerd。守护进程在 Linux 虚拟机中运行,因此您不需要(也不能)手动运行它。
我在官方论坛中找到了一个解决方法
https://forums.docker.com/t/using-pycharm-docker-plugin-with-docker-beta/8617/9
$socat TCP-LISTEN:2376,reuseaddr,fork UNIX-CLIENT:/var/run/docker.sock