如何在Mac命令行中启动Docker

84

我在Mac上安装了Docker桌面版。为了启动Docker,我打开应用程序并找到Docker。然后我可以在顶部菜单栏中看到Docker图标。稍后,我可以从命令行运行Docker命令。

我的问题是如何从命令行启动Docker本身?

谷歌搜索只能帮我找到如何从命令行启动容器的结果 :|


3
打开 /Applications/Docker.app。 - Henrik Andersson
5
可以了。但我正在寻找像 $ service docker-daemon start 这样的东西。 - Shobi
1
我不确定Docker Desktop是否有任何此类服务。无论是在Windows还是Mac上,Docker Desktop都是一个应用程序,而不是一个服务。这可能是故意的。 - Chris F Carroll
1
@Shobi,被接受的答案实际上并没有回答问题。 - james-see
2个回答

127

您可以使用以下方法在 Mac 上打开 Docker Desktop:

open -a Docker

Mac的等同于systemctlservice的是launchctl。但是,Docker桌面版在Mac和Windows上被打包成应用程序而不是服务。

关于关机,采用以下方法:

pkill -SIGHUP -f /Applications/Docker.app 'docker serve' 

看起来与从GUI退出Docker的效果差不多。我的意思是(a)当你重新启动Docker时,它会毫无怨言地启动,(b)无论我如何退出Docker Desktop,我仍然有一个运行中的Docker网络守护程序。


4
打开 Docker 应用程序运行良好;但是出现 "systemctl: command not found" 错误,并且没有 "launchctl restart" 命令。 - Chris F Carroll
1
@ChrisFCarroll,你找到解决方案了吗? - Payel Dutta
1
我为Docker桌面应用程序提供的最佳解决方案是pkill -SIGHUP -f /Applications/Docker.app 'docker serve',它似乎可以进行干净的关闭。当我使用open -a Docker重新启动时,它会毫无怨言地启动,并且docker命令可以正常工作。 - Chris F Carroll
请参阅 https://apple.stackexchange.com/questions/444913/how-to-launch-docker-container-from-cli-in-macos-eg-docker-run。 - Michael Altfield
在我的情况下,它运作得很好。谢谢。 - undefined
显示剩余2条评论

7
在 macOS 上,您需要使用 launchctl:
虽然在 Linux 上等价于 service 或 systemctl 的服务不清楚,但在 macOS 上是 launchctl(例如,使用 launchd 运行 docker registry):
将 Docker registry plist 复制到指定位置:
plutil -lint registry/recipes/osx/com.docker.registry.plist
cp registry/recipes/osx/com.docker.registry.plist ~/Library/LaunchAgents/
chmod 644 ~/Library/LaunchAgents/com.docker.registry.plist

启动Docker注册表:

launchctl load ~/Library/LaunchAgents/com.docker.registry.plist

重新启动Docker注册表服务

launchctl stop com.docker.registry
launchctl start com.docker.registry

卸载Docker Registry服务

launchctl unload ~/Library/LaunchAgents/com.docker.registry.plist

Run the Docker Registry under launchd


3
你在哪里找到了 com.docker.registry.plist 文件? - Flash Sheridan
10
这份文档来自于“Docker registry”,它介绍了一个Docker镜像服务器(https://docs.docker.com/registry/)。这不是关于如何从命令行启动Docker daemon的问题吗? - Scott Anderson
4
由于这似乎回答了一个关于启动Docker注册表的不同问题,因此我会将其投下反对票。 - Maximilian
@Shobi 这不应该被接受为答案。 - james-see

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接