Я использую изображения Ubuntu 16.04
Я следую этому учебному руководству
Последняя часть, сделайте сетевую постоянную часть, не работает в моем сценарии.
На данном этапе сетевой мост будет отсоединен от eth1 при перезагрузке машины. Таким образом, вот еще две вещи установить постоянную настройку.
Обновление
/etc/network/interfaces
как это:auto eth1 iface eth1 inet manual pre-up ifconfig $IFACE up post-down ifconfig $IFACE down
И включите следующую команду
/etc/rc.local
(прежде чем выйдут 0):brctl addif docker1 eth1
После того, как я перезагружу машину, я не могу проверить с помощью ping-запросов IP от своего хоста. Таким образом, я подозреваю, rc.local
не работал.
Я также пытался удалить -e
параметр в rc.local
файл, но после перезагрузки, все еще не работая.
Затем я пробую решение 2
Создайте файл docker-network.sh
в каталоге /etc/init.d
:
#!/bin/sh
sudo ip addr del 192.168.33.10/24 dev eth1
sudo brctl addif docker1 eth1
Сделайте это исполняемым файлом:
sudo chmod +x /etc/init.d/docker-network.sh
Создайте символьные ссылки для моего сценария для различного runlevels:
sudo update-rc.d docker-network.sh defaults
После того, как я перезапускаю свою виртуальную машину. Я все еще не могу проверить с помощью ping-запросов прямо к машине. Однако после того, как я SSH к машине я работаю /etc/init.d/docker-network.sh
затем я могу ping
это.
Таким образом, как я удостоверяюсь он способный бежать, я перезагружаю?
ОБНОВЛЕНИЕ
Я работаю sudo systemctl enable rc-local.service
и перезапуск. Затем я работаю sudo systemctl status rc-local
vagrant@vagrant:~$ sudo systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset:
Drop-In: /lib/systemd/system/rc-local.service.d
└─debian.conf
Active: active (exited) since Mon 2017-08-21 09:27:56 UTC; 10min ago
Process: 1247 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
Aug 21 09:27:56 vagrant systemd[1]: Starting /etc/rc.local Compatibility...
Aug 21 09:27:56 vagrant sudo[1259]: root : TTY=unknown ; PWD=/ ; USER=root ;
Aug 21 09:27:56 vagrant sudo[1259]: pam_unix(sudo:session): session opened for u
Aug 21 09:27:56 vagrant sudo[1308]: root : TTY=unknown ; PWD=/ ; USER=root ;
Aug 21 09:27:56 vagrant sudo[1308]: pam_unix(sudo:session): session opened for u
Aug 21 09:27:56 vagrant rc.local[1247]: bridge eth1 does not exist!
Aug 21 09:27:56 vagrant systemd[1]: Started /etc/rc.local Compatibility.
Ubuntu теперь превращена в использование systemd
так как запущено в бета-версии Ubuntu 15.04 и rc.local
находится "прочь" по умолчанию в 16,04.
Можно включить rc.local
следующей командой и перезагрузкой Ваша Ubuntu.
sudo systemctl enable rc-local.service
Требуется проверить активное состояние следующей командой:
sudo systemctl status rc-local
На основе строки, распечатанной от вышеупомянутого результата команды:
21 августа rc.local[1247] бродяги 9:27:56: мост eth1 не существует
Это означает rc.local
инициирован Ваш сценарий, и он выполнялся, но иногда rc.locsl
при выполнении в самом первом при начальной загрузке и это заставляет некоторое прерывание быть, происходят при выполнении команд/сценария в Вашем rc.local
.
Я предлагаю поместить тот sleep x
прежде чем Ваша команда/сценарий должна работать в rc.local
(где x
может указать значение в секундах, можете, необходимо увеличить это x
секунды для наблюдения, когда это работает), также можно сделать sleep x
в Вашем сценарии прежде, чем выполнить основную команду.