Как перезапустить Docker-машину после запуска? - PullRequest
0 голосов
/ 29 мая 2018

Я использую MacBook Pro 2009, который не поддерживает последнюю версию Docker для 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)

Естьничего плохого в приведенных выше командах.Процесс Docker запускается и работает идеально каждый раз, когда я запускаю последнюю команду.

Но, когда я перезагружаю хост (MacBook), Docker Machine не работает, и я вижу ошибку 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)

Я также попытался создать файл 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>

bash-скрипт:

#!/bin/bash
docker-machine restart default
docker-machine env
eval $(docker-machine env default)

Команда была:

$ sudo launchctl load -w /Library/LaunchDaemons/com.startup.plist

Как сделатьЯ перезагружаю Docker Machine каждый раз, когда запускаю или перезагружаю свой MacBook?

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

попробуйте эту строку

запуск по док-машине по умолчанию

0 голосов
/ 26 сентября 2018

Вы можете использовать brew services command для этого.

  1. Выполнить brew info docker-machine, вы должны увидеть некоторую информацию о формуле док-машины.

Чтобы запустить, запустите Docker-машину сейчас и перезапустите при входе в систему:

brew services start docker-machine

Или, если вам не нужна / не нужна фоновая служба, вы можете просто запустить:

docker-machine start

Запустить brew services start docker-machine, сразу же запустит сервисную док-машину и зарегистрирует ее для запуска при входе в систему. Запустите brew services list для просмотра списка всех запущенных сервисов.

Еслисостояние док-машины запущено, оно должно перезапуститься при входе в систему.

Вы можете добавить eval $(docker-machine env default) в .bash_profile для настройки вашей оболочки.

...