Есть ли способ заставить докер-машину создать докер vm с определенным ip (при условии, что ip доступен)?Есть ли способ заставить докер-машину создать vm с определенным ip?
ответ
Это активно запрошенный в docker/machine
issue 1709
Я хочу, чтобы иметь возможность указать IP-адрес виртуальной машины (то есть значение, которое перечислено в разделе «URL» в Докер-машина LS), когда я создаю его докер-машина.
Я хочу это, потому что я полагался на адрес загрузки boot2docker по умолчанию 192.168.59.103, но теперь он варьируется от машины к машине.
Мой VirtualBox имеет диапазон Dhcp 192.168.99.100 - 255, и я хочу, чтобы установить IP-адрес, прежде чем 100.
Я нашел простой трюк, чтобы установить статический IP: после того, как создать машину, я запускаю эту команду и перезагрузить машину:
echo "ifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh prova-discovery sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null
Эта команда создает файл
bootsync.sh
, который выполняется по сценариям запуска и запускаетсяboot2docker
.Теперь во время загрузки машины выполняется команда и задается статический IP-адрес.
docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
test-1 - virtualbox Running tcp://192.168.99.50:2376 test-1 (master)
Michele Tedeschi (micheletedeschi
)adds
Я обновил команды с:
echo "kill `more /var/run/udhcpc.eth1.pid`\nifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh prova-discovery sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null
затем запустить команду (только первый раз)
docker-machine regenerate-certs prova-discovery
теперь IP не будет изменен DHCP
(заменить prova-discovery
именем вашего Докер-машины)
Вот является (Windows) скрипт (dmvbf.bat
) Теперь я использую, основанный на том, что выше:
@echo off
setlocal enabledelayedexpansion
set machine=%1
if "%machine%" == "" (
echo dmvbf expects a machine name
exit /b 1
)
set ipx=%2
if "%ipx%" == "" (
echo dmvbf x missing ^(for 192.168.x.y^)
exit /b 2
)
set ipy=%3
if "%ipy%" == "" (
echo dmvbf y missing ^(for 192.168.x.y^)
exit /b 3
)
echo kill $(more /var/run/udhcpc.eth1.pid) | docker-machine ssh %machine% sudo tee /var/lib/boot2docker/bootsync.sh >NUL
echo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up | docker-machine ssh %machine% sudo tee -a /var/lib/boot2docker/bootsync.sh >NUL
echo route add default gw <gateway ip address here> | docker-machine ssh %machine% sudo tee /bar/lib/boot2docker/bootsync.sh >NUL
docker-machine ssh %machine% "sudo cat /var/run/udhcpc.eth1.pid | xargs sudo kill"
docker-machine ssh %machine% "sudo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up"
(Примечание: на Windows 10, Monty Wildcomments что udhcpc.eth0.pid
, не udhcpc.eth1.pid
)
Я начинаю VM (docker-machine start <machine-name>
), а затем:
dmvbf <machine-name> 99 101
я сделать это только один раз.
В следующем docker-machine start <machine-name>
IP будет 192.168.99.101.
Мое обходное решение состояло в том, чтобы посмотреть, к чему привязана машина докеров-докеров VBoxNet, а затем я зашел в VirtualBox, чтобы сбросить диапазон DHCP, чтобы предоставить только тот IP-адрес, который мне нужен, чтобы машина была.
- 1. Есть ли способ заставить создать удаленный репозиторий?
- 2. Есть ли способ заменить IP-адрес определенным именем в терминале?
- 3. Есть ли способ форматирования файла .vm скорости.
- 4. VM просто исчезла. Есть ли способ восстановить?
- 5. Есть ли способ создать ip-независимую сессию http?
- 6. Есть ли способ заставить окна кэшировать файл?
- 7. Есть ли способ заставить схему соблюдаться?
- 8. Есть ли способ получить IP-адрес отправителя?
- 9. Есть ли способ заставить TextMate кэшировать файлы?
- 10. git merge: есть ли способ заставить --squash?
- 11. Есть ли способ удалить гостевой vm с помощью API pyvmomi?
- 12. Есть ли способ заставить jsonRpcService работать синхронно?
- 13. Есть ли способ заставить IntentService не воссоздаваться?
- 14. Есть ли способ заставить цин представить?
- 15. Есть ли способ заставить метаданные таблиц обновления?
- 16. Есть ли способ заставить текущий UIEvent обрабатываться?
- 17. Есть ли способ заставить сезонность от auto.arima
- 18. Есть ли способ заставить UIView освободить подвью?
- 19. Языковая служба: есть ли способ заставить парсинг?
- 20. Azure VM IP геолокация?
- 21. Есть ли способ заставить консольное приложение работать с определенным размером окна (используя Pdcurses)?
- 22. Есть ли способ заставить Guice Grapher работать?
- 23. Есть ли способ заставить читать кодировку XSLT?
- 24. Есть ли способ заставить onFinish от CountDownTimer?
- 25. Есть ли способ заставить Android-устройство бодрствовать?
- 26. Есть ли способ заставить немедленное завершение Раскадровки?
- 27. Есть ли способ заставить Хероку дино спать?
- 28. Есть ли способ заставить приложение iPhone перезапустить?
- 29. Есть ли способ создать CI с Sourcesafe
- 30. есть ли способ создать SVG с ipyvega?
Ницца обходной путь. Надеюсь, что это разрешится. – ashic
Я пробовал это - действительно надеялся, что это сработает - с машиной по умолчанию, Windows 10, с машиной по умолчанию в VirtualBox VM. Это делает недействительным сертификат, созданный докером. Когда вы выполняете докер-машину ls, она заявляет, что сертификат действителен для старого IP-адреса, а не нового IP-адреса. – rmcsharry
@mcs, который, как ожидается: выполните окончательную рестарт-сертификацию докеров-машин, и все готово. – VonC