I'm using MacBook Pro 2009 which doesn't support the latest Docker for Mac. So, I'm using Docker Machine approach to get the Docker up and running for my machine.
Here are the commands I use to install Docker in my machine:
$ brew install docker docker-compose docker-machine
$ docker-machine create --driver virtualbox default
$ docker-machine env
$ eval $(docker-machine env default)
There is nothing wrong with the commands above. The Docker process is up and running perfectly everytime I run the last command.
But, when I reboot the host (MacBook), the Docker Machine is dead and I see Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
error.
I tried putting 2 lines below in my .bash_profile
but it didn't work (yes, I already source
it):
docker-machine restart default
docker-machine env
eval $(docker-machine env default)
I also tried creating a LaunchDaemons .plist file to run a bash script on startup, but it didn't work too:
<?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>
The bash script:
#!/bin/bash
docker-machine restart default
docker-machine env
eval $(docker-machine env default)
The command was:
$ sudo launchctl load -w /Library/LaunchDaemons/com.startup.plist
How do I restart Docker Machine everytime I start or restart my MacBook?