Zul*_*din 2 macos plist docker launchctl docker-machine
我使用的是 MacBook Pro 2009,它不支持最新的 Docker for Mac。因此,我使用 Docker Machine 方法来启动并运行我的机器上的 Docker。
以下是我用来在我的机器上安装 Docker 的命令:
$ brew install docker docker-compose docker-machine
$ docker-machine create --driver virtualbox default
$ docker-machine env
$ eval $(docker-machine env default)
Run Code Online (Sandbox Code Playgroud)
上面的命令没有任何问题。每次我运行最后一个命令时,Docker 进程都会启动并完美运行。
但是,当我重新启动主机 (MacBook) 时,Docker 机器已死,我看到Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?错误。
我尝试在我的下面放 2 行,.bash_profile但没有用(是的,我已经source这样做了):
docker-machine restart default
docker-machine env
eval $(docker-machine env default)
Run Code Online (Sandbox Code Playgroud)
我还尝试创建 LaunchDaemons .plist 文件以在启动时运行 bash 脚本,但它也不起作用:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:</string>
</dict>
<key>Label</key>
<string>com.startup</string>
<key>Program</key>
<string>/Users/zulh/scripts/start_docker.sh</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>LaunchOnlyOnce</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/startup.stdout</string>
<key>StandardErrorPath</key>
<string>/tmp/startup.stderr</string>
<key>UserName</key>
<string>zulh</string>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
bash脚本:
#!/bin/bash
docker-machine restart default
docker-machine env
eval $(docker-machine env default)
Run Code Online (Sandbox Code Playgroud)
命令是:
$ sudo launchctl load -w /Library/LaunchDaemons/com.startup.plist
Run Code Online (Sandbox Code Playgroud)
每次启动或重新启动 MacBook 时如何重新启动 Docker Machine?
小智 5
您可以使用brew services command来做到这一点。
brew info docker-machine,您应该会看到有关 docker-machine 公式的一些信息。要立即启动 docker-machine 并在登录时重新启动:
brew services start docker-machine或者,如果您不想要/不需要后台服务,您可以运行:
docker-machine start
brew services start docker-machine,将立即启动服务 docker-machine 并注册它以在登录时启动。brew services list以列出所有正在运行的服务。如果 docker-machine 状态已启动,则应在登录时重新启动。
您可以添加eval $(docker-machine env default)in.bash_profile来配置您的 shell。
| 归档时间: |
|
| 查看次数: |
6714 次 |
| 最近记录: |