Docker - 替代 Mac 上的 `docker`
Docker - Replacement for `dockerd` on Mac
我想用这样一个开放的 TCP 地址启动 docker 守护进程:docker daemon -H tcp://0.0.0.0:2375
,但终端建议我改用 dockerd
,这显然不是程序Docker 客户端随 mac 一起提供。有什么办法可以吗
- A - 在我的 mac machine 上获得某种形式的
dockerd
。
- B - 通过其他方法绕过
dockerd
的使用。
?
我在官方论坛找到了解决方法
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
That workaround opens port 2376 to the world... as TLS isn't enabled, this is a bad idea as anyone on the same network can hijack your docker daemon
Mac 上的 运行dockerd 不支持。来自 this issue:
I think on Darwin it should never suggest to run dockerd. The daemon runs in a Linux virtual machine, so you do not need to (and cannot) run it manually.
终于找到了 mac docker 的配置,比如 dockerd.
单击菜单栏中的 docker 图标,首选项,高级
安装 socat 命令:brew install socat
选择一个端口:(在示例中为 8099)
运行: socat -d -d TCP-L:8099,fork UNIX:/var/run/docker.sock
然后使用 tcp://localhost:8099
作为 API URL
对我有用,希望对你有帮助
如果您想在 mac 上进行任何特定配置,您可能已经安装了 Docker Desktop。 Docker 桌面支持使用下面屏幕截图中显示的用户界面进行配置。
get around the use of dockerd
by some other method. (2016)
请注意,在 2022 年,您可以完全不使用 dockerd
/Docker 桌面。
参见Batuhan Apaydin's article "A modern toolkit to start working with container images on macOS that meets your needs without requiring a Docker Daemon or even Docker Desktop”。
nerdctl
工具旨在 drop-in 替代 Docker 客户端
而 Lima 是一个管理程序,它启动 Linux 具有自动文件共享、端口转发和 containerd
.
虚拟机
lima的名字来源于LInuxMAchines.
前两个大写字母的缩写
Lima 的设计类似于 WSL2,但 Lima 专注于将 macOS 作为主要目标主机。
Lima 使用 QEMU,它是一个通用的开源机器模拟器和虚拟器,作为引擎盖下的管理程序来实现虚拟化。
Lima 还可以与 Podman 等其他容器引擎一起工作,甚至可以用于 non-container 应用程序。
默认情况下,当 lima 启动 VM 时,它会以无根方式运行 buildkitd
和 containerd
,并下载必要的客户端工具,例如 buildctl
、[=13] =].
一切都会为我们准备好。所以,剩下的就是构建、拉动和 运行 容器
对于buildkit
,巴图汉提议developer-guy/buildkit-machine
buildkit-machine
allows you to make buildkitd
daemon accessible in your macOS environment.
To do so, it uses lima,
which is a Linux subsystem for macOS, under the hood.
lima
spins up a VM that runs buildkitd
daemon in a rootless way which means that sock file of the buildkitd
daemon is now be able to accessible from /run/user/<USERID>/buildkit/buildkitd
.
所以:不再Docker桌面/dockerd
,以无根模式使用容器!
有关更多信息,请参阅 Bret Fisher's video "Free Docker Desktop Alternatives: DevOps and Docker Live Show (Ep 156)”(2022 年 1 月)
我想用这样一个开放的 TCP 地址启动 docker 守护进程:docker daemon -H tcp://0.0.0.0:2375
,但终端建议我改用 dockerd
,这显然不是程序Docker 客户端随 mac 一起提供。有什么办法可以吗
- A - 在我的 mac machine 上获得某种形式的
dockerd
。 - B - 通过其他方法绕过
dockerd
的使用。
?
我在官方论坛找到了解决方法
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
That workaround opens port 2376 to the world... as TLS isn't enabled, this is a bad idea as anyone on the same network can hijack your docker daemon
Mac 上的 运行dockerd 不支持。来自 this issue:
I think on Darwin it should never suggest to run dockerd. The daemon runs in a Linux virtual machine, so you do not need to (and cannot) run it manually.
终于找到了 mac docker 的配置,比如 dockerd.
单击菜单栏中的 docker 图标,首选项,高级
安装 socat 命令:brew install socat
选择一个端口:(在示例中为 8099)
运行: socat -d -d TCP-L:8099,fork UNIX:/var/run/docker.sock
然后使用 tcp://localhost:8099
作为 API URL
对我有用,希望对你有帮助
如果您想在 mac 上进行任何特定配置,您可能已经安装了 Docker Desktop。 Docker 桌面支持使用下面屏幕截图中显示的用户界面进行配置。
get around the use of
dockerd
by some other method. (2016)
请注意,在 2022 年,您可以完全不使用 dockerd
/Docker 桌面。
参见Batuhan Apaydin's article "A modern toolkit to start working with container images on macOS that meets your needs without requiring a Docker Daemon or even Docker Desktop”。
nerdctl
工具旨在 drop-in 替代 Docker 客户端
而 Lima 是一个管理程序,它启动 Linux 具有自动文件共享、端口转发和 containerd
.
lima的名字来源于LInuxMAchines.
前两个大写字母的缩写Lima 的设计类似于 WSL2,但 Lima 专注于将 macOS 作为主要目标主机。
Lima 使用 QEMU,它是一个通用的开源机器模拟器和虚拟器,作为引擎盖下的管理程序来实现虚拟化。
Lima 还可以与 Podman 等其他容器引擎一起工作,甚至可以用于 non-container 应用程序。
默认情况下,当 lima 启动 VM 时,它会以无根方式运行 buildkitd
和 containerd
,并下载必要的客户端工具,例如 buildctl
、[=13] =].
一切都会为我们准备好。所以,剩下的就是构建、拉动和 运行 容器
对于buildkit
,巴图汉提议developer-guy/buildkit-machine
buildkit-machine
allows you to makebuildkitd
daemon accessible in your macOS environment.To do so, it uses
lima,
which is a Linux subsystem for macOS, under the hood.
lima
spins up a VM that runsbuildkitd
daemon in a rootless way which means that sock file of thebuildkitd
daemon is now be able to accessible from/run/user/<USERID>/buildkit/buildkitd
.
所以:不再Docker桌面/dockerd
,以无根模式使用容器!
有关更多信息,请参阅 Bret Fisher's video "Free Docker Desktop Alternatives: DevOps and Docker Live Show (Ep 156)”(2022 年 1 月)