Я использую Ubuntu 16.04 images
Я следую этому руководству
Последняя часть, сделайте постоянную часть сети, не работает в моем сценарии.
На этом этапе сетевой мост будет отключен от 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, но после перезагрузки все еще не работает.
[ ! d10]Далее я попробую решение 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
Создайте символические ссылки для моего скрипта для разных уровней выполнения:
sudo update-rc.d docker-network.sh defaults
После перезагрузки моей виртуальной машины. Я все еще не могу пинговать прямо на машину. Однако после того, как я SSH на машине, я запустил /etc/init.d/docker-network.sh, тогда я могу ping это.
Итак, как я могу убедиться, что он может работать после перезагрузки?
решение 2
Я запустил 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
На основе строки, напечатанной из приведенного выше результата команды:
Aug 21 09:27:56 vagrant rc.local [1247]: bridge eth1 не существуетЭто означает, что rc.local запускает ваш скрипт, и он выполняется, но иногда rc.locsl выполняется в первый раз, когда
Я предлагаю поместить один sleep x, прежде чем ваша команда / скрипт должна работать в rc.local (где [ f11] может указывать значение в секундах, возможно, вам нужно увеличить это x секунд, чтобы увидеть, когда он работает), также вы можете выполнить sleep x в своем скрипте перед выполнением основной команды.
Теперь Ubuntu превращается в использование systemd с момента запуска в бета-версии Ubuntu 15.04 и rc.local по умолчанию в 16.04.
Вы можете включить rc.local с помощью следующей команды и перезагрузите Ubuntu.
sudo systemctl enable rc-local.service
Вы хотите проверить активное состояние с помощью следующей команды:
sudo systemctl status rc-local
На основе строки, напечатанной из приведенного выше результата команды:
Aug 21 09:27:56 vagrant rc.local [1247]: bridge eth1 не существуетЭто означает, что rc.local запускает ваш скрипт, и он выполняется, но иногда rc.locsl выполняется в первый раз, когда
Я предлагаю поместить один sleep x, прежде чем ваша команда / скрипт должна работать в rc.local (где x может указывать значение в секундах, возможно, вам нужно увеличить это x секунд, чтобы увидеть, когда он работает), также вы можете выполнить sleep x в своем скрипте перед выполнением основной команды.
Теперь Ubuntu превращается в использование systemd с момента запуска в бета-версии Ubuntu 15.04 и rc.local по умолчанию в 16.04.
Вы можете включить rc.local с помощью следующей команды и перезагрузите Ubuntu.
sudo systemctl enable rc-local.service
Вы хотите проверить активное состояние с помощью следующей команды:
sudo systemctl status rc-local
На основе строки, напечатанной из приведенного выше результата команды:
Aug 21 09:27:56 vagrant rc.local [1247]: bridge eth1 не существуетЭто означает, что rc.local запускает ваш скрипт, и он выполняется, но иногда rc.locsl выполняется в первый раз, когда
Я предлагаю поместить один sleep x, прежде чем ваша команда / скрипт должна работать в rc.local (где x может указывать значение в секундах, возможно, вам нужно увеличить это x секунд, чтобы увидеть, когда он работает), также вы можете выполнить sleep x в своем скрипте перед выполнением основной команды.