Machine: [Funktionsanfrage] Geben Sie eine statische IP für VirtualBox-VMs an

Erstellt am 16. Aug. 2015  ·  212Kommentare  ·  Quelle: docker/machine

Hallo, ich habe die Dokumente und Probleme durchsucht, um dies herauszufinden, kann aber keine Antwort finden.

Grundsätzlich möchte ich in der Lage sein, die IP-Adresse einer VM (dh den Wert, der unter "URL" in docker-machine ls ) anzugeben, wenn ich sie mit docker-machine create erstelle.

Ich möchte dies, weil ich mich auf die Standardadresse von boot2docker von 192.168.59.103 verlassen habe, aber jetzt variiert sie von Maschine zu Maschine.

Danke!

drivevirtualbox kinenhancement

Hilfreichster Kommentar

Leute, komm schon. Könnten wir bitte +1 bei einem offensichtlich langwierigen Problem beenden? Aus diesem Grund wurde ein Like-Button implementiert. Keine Notwendigkeit, die Abonnenten zu spammen.

Alle 212 Kommentare

+1, benötige diese Funktion

+1

+1

+1

Hier ist ein guter Workaround. Fügen Sie Ihrem ~/.bash_profile Folgendes hinzu:

eval `docker-machine env <docker-machine name>`
export <some variable>=$(docker-machine ip <docker-machine name>)

@letsgolesco Sie können dafür die Option --virtualbox-hostonly-cidr , die den richtigen vboxnetX Host-Only-Adapter auswählt.

Standardmäßig scheint Docker-Maschine zufällig einen auszuwählen, so dass er gezwungen ist, den für vboxnet0 ( 192.168.59.3/24 , den von boot2docker verwendeten) zu verwenden, das Problem zu lösen:

$ docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "192.168.59.3/24" dev
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev

$ docker-machine ip dev
192.168.59.103

Beifall.

@luislavena - Das hat leider nicht funktioniert.

+1

Diese Funktion wird jedoch auf jeden Fall benötigt!

@krinkere bin mir nicht sicher, ob Ihr env ist, aber dies hat für meine OSX-Installation funktioniert, ist aber bei der Verwendung des Computers unter Linux fehlgeschlagen, was Anpassungen an der dhcpserver-Konfiguration von vboxnet0 erforderte:

$ VBoxManage dhcpserver modify --ifname vboxnet0 --disable

$ VBoxManage dhcpserver modify --ifname vboxnet0 --ip 192.168.59.3 --netmask 255.255.255.0 --lowerip 192.168.59.103 --upperip 192.168.59.203

$ VBoxManage dhcpserver modify --ifname vboxnet0 --enable

$ docker-machine create --driver "virtualbox" --virtualbox-cpu-count "-1" --virtualbox-disk-size "30000" --virtualbox-memory "2560" --virtualbox-hostonly-cidr "192.168.59.3/24" dev

Dies ist, wie Sie sehen können, ein riesiger Hack :smile_cat:, funktioniert aber vorerst :smile:

Würde diese Funktion gerne sehen!!

@luislavena - Danke für deine Antwort

Hier ist, was ich auf meinem Mac bekomme.

$ docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "192.168.99.3/24" dev
VirtualBox-VM erstellen...
SSH-Schlüssel erstellen...
VirtualBox-VM wird gestartet...
VM wird gestartet...
Um zu sehen, wie Docker mit diesem Computer verbunden wird, führen Sie aus: docker-machine env dev

$ docker-machine ip dev
192.168.99.100

Obwohl ich die IP im richtigen Subnetz habe, ist es nicht die IP, die ich verwenden möchte ... Def würde diese Funktion gerne sehen

+1 nützliche Funktion

+1 Diese Funktion würde uns wirklich weiterhelfen!

Wir verwenden docker-machine, um einen lokalen Elasticsearch-Cluster auszuführen, und wir haben den Eintrag /etc/hosts für 192.168.59.103 der elastic-local.mycompany.com . Da wir von boot2docker zu docker-machine gewechselt sind, mussten wir diesen Hosts-Dateieintrag ständig manuell auf die neue IP-Adresse aktualisieren, die unserer Docker-VM zugewiesen ist. Wir könnten eine Automatisierung schreiben, die diesen Hosts-Dateieintrag für uns aktualisiert, aber es wäre viel einfacher, wenn docker-machine uns einfach eine konfigurierbare IP-Adresse für neue Maschinen verwenden lässt.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1 (und)

+1

+1

+1

Vorübergehend verwende ich einige Bash-Skripte, um die Hosts-Dateien zu aktualisieren, ist aber klumpig, da Sie /etc/hosts über ein sudo'd-Skript aktualisieren müssen, aber da Sie die IP von der Docker-Maschine abrufen können, funktioniert es. Ich kann einen Kern teilen.

ianlintner-wf, teile bitte das Skript. Ich bin gerade dabei, selbst so einen zu schreiben, aber wenn ich das Rad nicht neu erfinden kann, wäre das großartig.. ja..

Hier ist das primäre Skript, das ich verwende. Ich habe es ein wenig aufgeräumt, aber es fehlen formalere Standardparameter und andere Dinge.

https://gist.github.com/ianlintner-wf/a2b917158aaf100d9fb3

+1 bitte!

danke für das Skript @ianlintner-wf. Ich habe einen geschrieben, der den Host / die IP-Adresse aller ausgeführten Docker-Computer dynamisch hinzufügt. Habe auf OS X El Capitan getestet.

https://gist.github.com/cookandy/f14fadd31721dc6e136e

Das IP-Inkrement wird vom VirtualBox-DHCP-Server zwischengespeichert. Stoppen und starten Sie VirtualBox neu, um das IP-Inkrement zurückzusetzen.

+1, unsere OSX-Entwickler verwenden immer noch boot2docker, weil unser env auf statische /etc/hosts-Einträge angewiesen ist. (übrigens danke für das Skript @ianlintner-wf )

+1

+1

+1

+1

+2

Meine Hacky-Hack-Lösung, die definitiv nicht jedermanns Sache ist: Ich führe Cassandra in einer Docker-Maschine aus und möchte von der von mir entwickelten node.js-App darauf zugreifen können. Anstatt eine feste IP für den Docker-Computer zu verwenden, mache ich Folgendes:

docker-machine stop dockervm
VBoxManage modifyvm "dockervm" --natpf1 "tcp-port9160,tcp,,9160,,9160"
VBoxManage modifyvm "dockervm" --natpf1 "tcp-port9042,tcp,,9042,,9042"
docker-machine start dockervm
eval "$(docker-machine env dockervm)"

Dies ermöglicht die Portweiterleitung für Port-Tunneling von localhost zur Docker-VM. Jetzt kann ich mich einfach mit localhost:9042 verbinden. (Dies wäre viel einfacher, wenn jemand https://github.com/docker/machine/issues/41 beheben würde. :D)

@luislavena danke, habe gerade den Standardcomputer mit diesen Optionen neu erstellt und alles funktioniert jetzt gut

+1

+1, ich werde das Skript mit der automatischen Aktualisierung der Hosts-Datei ausprobieren, aber ich möchte diese Funktion auf jeden Fall!

Basierend auf dem Skript @cookandy & @ianlintner-wf habe ich meins erstellt.

Sie können es mit einer Zuordnung zwischen Docker-Computername und Hostname konfigurieren.

Es aktualisiert Ihre Hosts, indem es ältere und neue Docker-Computer-IPs entfernt

https://gist.github.com/juliengarcia/9a208ca5cf6590b25150

+1

:+1:

+1

+1

:+1:

+1

+1

+1

Docker sagt mir, dass ich Zertifikate regenerieren soll, wenn sich die IP ändert. Ich muss eine statische IP festlegen, um dieses Problem zu vermeiden, oder gibt es eine andere Lösung?

eval "$(docker-machine env machine-1)"

Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.101:2376": x509: certificate is valid for 192.168.99.108, not 192.168.99.101
You can attempt to regenerate them using 'docker-machine regenerate-certs name'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

+1 ETA für diese Funktion?

Ein Workaround für einige Anwendungsfälle könnte darin bestehen, Maschinen wie

192.168.98.100

docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.98.1/24" m98

192.168.97.100

docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.97.1/24" m97

192.168.96.100

docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.96.1/24" m96

Wenn es keine andere Maschine mit dem gleichen cidr , sollte die Maschine beim Start immer die .100 IP erhalten.

@schmunk42 sehr gute

Meine Virtualbox hat den DHCP-Bereich 192.168.99.100 - 255 und ich möchte eine IP vor 100 einstellen.

Ich habe einen einfachen Trick gefunden, um eine statische IP festzulegen: Nachdem ich eine Maschine erstellt habe, führe ich diesen Befehl aus und starte die Maschine neu:

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

Dieser Befehl erstellt eine Datei bootsync.sh, die von boot2docker-Startskripten durchsucht und ausgeführt wird.

Jetzt wird während des Maschinenstarts der Befehl ausgeführt und die statische IP festgelegt.

docker-machine ls
NAME              ACTIVE   DRIVER       STATE     URL                                      SWARM
test-1                      -        virtualbox     Running   tcp://192.168.99.50:2376      test-1 (master)

Das ist auch ein guter Trick @micheletedeschi :+1:

Ich mag die Art und Weise, wie

Einige Dokumentationen finden Sie hier oder hier

+1
Ich arbeite mit 3 VMs und habe immer Probleme, mich über ssh zu verbinden und meine Utils, Hosts-Dateien usw.

+1

:+1:

+1

+1

+1

+1

+1 Ich versuche, die Maschinenerstellung zu automatisieren, und kann nicht erwarten, dass ich die Berechtigung habe, immer wieder Einträge zu /etc/hosts hinzuzufügen. Eine stabile IP zu haben würde bedeuten, dass Sie diese nur einmal einrichten müssen.

Am Ende habe ich ein Skript eingerichtet, das dnsmasq auf dem Host mit docker-machine ip vorfüllt

Am 19. Dezember 2015 um 12:18 Uhr schrieb Pedro Cattori [email protected] :

+1


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an.

Eine sehr nützliche Funktion :+1:

Ich liebe @micheletedeschis Fix, obwohl ich die IP auf eine virtuelle Schnittstelle gesetzt habe (ersetzen Sie eth1 durch eth1:1 im obigen Befehl), da die eth1-Schnittstelle DHCP ausführt und schließlich zu die von DHCP zugewiesene IP-Adresse.

Ich bin mir nicht sicher, wie lange die DHCP-Lease-Aktualisierungszeit ist (lief einen Tag mit der ersten Korrektur, bevor ich plötzlich den Fehler "Sie müssen TLS-Zertifikate neu generieren" erhielt und erkannte, was los war). Meldet sich zurück, wenn das Anlegen der IP an eine virtuelle Schnittstelle nicht hält

@drags Ich habe die Befehle aktualisiert mit:

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

dann Befehl ausführen (nur beim ersten Mal)

docker-machine regenerate-certs prova-discovery

jetzt wird die IP nicht vom DHCP geändert

:+1:

+1

:+1:

+1

+1

+1

Hat jemand Glück gehabt , den Workaround von

docker-machine create -d virtualbox dev
echo "ifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh dev sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null
sleep 30
docker-machine restart dev
sleep 30
docker-machine regenerate-certs -f dev

Wenn ich die Befehle manuell ausführe funktioniert es. Im Skript musste ich den sleep 30 setzen oder der Neustartbefehl würde einfach hängen bleiben. Jetzt wird das Skript erfolgreich beendet, aber nachdem es ausgeführt wurde, läuft die VM immer noch mit der alten IP.

Sie könnten vagrant verwenden, um den Docker-Rechner zu starten und dann ein Plugin wie vagrant-hostmanager verwenden. Aber natürlich haben Sie dann noch andere Probleme zu bewältigen, wenn Sie möchten, dass die VM plattformübergreifend mit einem einzigen Befehl gestartet wird.

Es gibt derzeit einfach keine perfekte Lösung (afaict).

Ja, ich denke, ich bleibe vorerst bei Vagrant.

Ich erstelle ein Vagrant-Box-Image mit Docker, der mit DOCKER_OPTS="-H 0.0.0.0:2375" . Dann kann ich eine vagabundierende VM mit einer hartcodierten IP für ein privates Netzwerk erstellen und diese IP verwenden, um DOCKER_HOST und /etc/hosts einzustellen, was meiner Meinung nach ein ziemlich ideales Setup sein wird.

+1, insbesondere bei der Arbeit mit dem Maschinentreiber vmwarevsphere

+1

+1

+1

+1, nur die IP-Adresse einer Maschine einstellen zu können. Derzeit unterstützt die CLI nur das Abrufen. Die Verwendung von AWS Elastic IPs würde dies erfordern. Andernfalls muss die config.json der Maschine manuell aktualisiert werden.

~/.docker/machine/machines/my-machine-with-aws-elastic-ip/config.json

@dcosson wrt Skripterstellung.

Ich starte einfach die Docker-Maschine und führe dann die folgenden 2 Befehle aus (einer zum Beenden des DHCP-Clients, zwei zum Festlegen einer statischen IP). Ich habe mich entschieden, 'Docker-Neustart' nicht auszuführen, um bootsync.sh auszulösen. Vielleicht funktioniert das Startskript nicht? Es ist auch möglich, dass der DHCP-Client Sie durcheinander gebracht und die eth1-IP zurückgesetzt hat.

echo "kill `more /var/run/udhcpc.eth1.pid`\nifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh <machine-name> sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null
docker-machine ssh <machine-name> "sudo ifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 up"

+1

+1

Ich hatte etwas ändern @roocell ‚s - Schnipsel den DHCP - Server sofort zu töten , weil ich nicht auf Neustart wollte. Sonst würde es nach ein paar Minuten zurückkehren.

echo "kill `more /var/run/udhcpc.eth1.pid`\nifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh <machine-name> sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null

docker-machine ssh <machine-name> "sudo cat /var/run/udhcpc.eth1.pid | xargs sudo kill"

docker-machine ssh <machine-name> "sudo ifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 up"

Ich habe das Gefühl, dass ich Probleme mit meinem Schwarmcluster habe, wenn ich keine statische IP auf meinem Computer mit consul festlege. +1 dafür

+1

+1

+1

+1

+1

+1_000000 :)

+1

Basierend auf dem Kommentar von @micheletedeschi ist hier mein Skript zum
http://stackoverflow.com/a/35367277/6309

+1

+1

+1

+1

Was ich getan habe, ist, irgendwo eine Kopie Ihrer Hosts-Datei zu erstellen.

Setzen Sie einen Platzhalter für die Teile, die Sie dynamisch ändern möchten

<docker-machine-ip> doctify.local.com
<docker-machine-ip> doctify.local.co.uk
<docker-machine-ip> www.doctify.local.com
<docker-machine-ip> www.doctify.local.co.uk

Zu Ihrer Information: Ich verwende gnu-sed als Standard-Sed, also wird es nicht das auf Ihrem Mac sein
brew install gnu-sed --with-default-names

und in meinem Startskript habe ich nur diese ersetzt und dann die Hosts-Datei ausgewechselt. Wenn Sie jetzt Ihre Kopie Ihrer Hosts-Datei haben, ist die gleiche wie zuvor. Es sollte keinen Ihrer anderen Dienste beeinträchtigen

#!/bin/bash

echo
echo "########################################################"
echo "####              Update Docker Dev Hosts           ####"
echo "########################################################"
echo

machine_name="doctify-dev"

update_hosts() {
    echo
    # Copy over default hosts file
    echo "Copy Default Hosts..."
    cp -fv nginx/hosts docker/hosts

    echo
    # Replace with actual ip address
    echo "Replace hosts file..."
    echo "$machine_name IP ($machine_ip)"
    sed -i -e "s|<docker-machine-ip>|$machine_ip|g" docker/hosts

    echo
    # Move to /etc/hosts
    echo "Move hosts to correct location..."
    sudo mv -fv docker/hosts /etc/hosts

    echo
    # Remove copied hosts file
    echo "Clean up hosts file if it still remains..."
    rm -rfv docker/hosts
}

echo
# Get Current IP
echo "Retrieving Current IP Address..."
ip=($(cat /etc/hosts | grep doctify.local.com | sed -n '1p'))
echo "Current IP: $ip"

echo
# Get IP address of docker machine
echo "Get Current Machine IP address..."
machine_ip=$(docker-machine ip $machine_name)
echo "Machine IP: $machine_ip"

echo
if [ "$ip" = "$machine_ip" ]; then
    echo "IP Addresses are matching. Exiting..."
else
    echo "IP Addresses differ. Updating..."
    update_hosts
fi

Skript starten:

#!/bin/bash

echo
echo "########################################################"
echo "####            Start Docker Dev Environment        ####"
echo "########################################################"
echo

$machine_name=doctify-dev

echo
echo "Start Machine..."
docker-machine start $machine_name

echo
echo "Attach Machine to Terminal..."
eval $(docker-machine env --shell bash $machine_name)

echo
echo "Update hosts IP..."
source docker/update-hosts

echo
echo "Set Machine IP as Hostname..."
export DOCKER_HOST_IP=$(docker-machine ip $machine_name)

echo
echo "Clean Docker Images..."
source docker/clean

echo
echo "Build Docker Images..."
docker-compose build

echo
echo "Start Docker Images..."
sh docker/bin/osx-dev -r "docker-compose up" -i ".rsyncignore"

+1

+1

+1

+1

+1

+1

+1

+1

Folgendes verwende ich, um meine Docker-Computer-Umgebungen mit konsistenten IPs zu erstellen:

#--- Usage: d-machine-static new_dm_name new_dm_ip [new_dm_memory]
function d-machine-static {
    new_dm_name="${1}"
    new_dm_ip="${2:-192.168.90.100}"
    new_dm_memory="${3:-1024}"
    docker-machine create -d virtualbox --virtualbox-hostonly-cidr "${new_dm_ip}/24" --virtualbox-memory "${new_dm_memory}" "${new_dm_name}"
    echo -e "\033[1;34m${new_dm_name}\033[0m = \033[0;32m$(/usr/local/bin/docker-machine ip ${new_dm_name})\033[0m"
}

Einige IPs neigen dazu, häufiger erfolgreich zu sein als andere, und ich hatte das größte Glück mit denen der Form 192.168.x.100, so dass x < 99 .

Und hier ist, was ich verwende, um schnell zwischen ihnen zu wechseln:

#--- Switch to a different docker-machine environment.
function d-env () {
    target_environment="${1}"
    if [[ $(/usr/local/bin/docker-machine status ${target_environment}) = "Stopped" ]]; then
        docker-machine start "${target_environment}"
        sleep 1
    fi
    eval "$(/usr/local/bin/docker-machine env ${target_environment})"
    echo -e "\033[1;34m${target_environment}\033[0m = \033[0;32m$(/usr/local/bin/docker-machine ip ${target_environment})\033[0m"
}

Fühlen Sie sich frei, nach Herzenslust zu verwenden, zu ändern und zu verteilen.

+1

Ich musste auch das Standardgateway hinzufügen ...

So mache ich dies unter Windows 10 mit PowerShell und Hyper-V (mit VMNat.dll-Dienst für NAT anstelle von ICS).

  • Subnetz ist 192.168.233.0/24
  • DHCP-Server läuft auf .1
  • DNS & NAT auf 0,2
  • neue Docker-Maschine für .10 statische IP

`````` PowerShell
docker-machine create --driver hyperv --hyperv-virtual-switch "VMWare NAT" --hyperv-memory "512" consul0

noch zu testen, ob das Standard-Gateway nach dem Neustart funktioniert....

echo "kill ``more /var/runudhcpc.eth0.id```nifconfig eth0 192.168.233.10 Netzmaske 255.255.255.0 Broadcast 192.168.233.255 up" | docker-machine ssh consul0 "sudo tee /var/lib/boot2docker/bootsync.sh" > $null

kill dhcp auf der eth0-Schnittstelle sofort

docker-machine ssh consul0 "sudo cat /var/run/udhcpc.eth0.pid | xargs sudo kill"

eth0 mit neuer statischer IP aufrufen..

folgender Befehl hängt... Ich muss nach einer Weile STRG+C drücken...

docker-machine ssh consul0 "sudo ifconfig eth0 192.168.233.10 Netzmaske 255.255.255.0 Broadcast 192.168.233.255 up"

Fix die tls-Zertifikate, die für die alte dynamische IP sind

Docker-Maschine regenerieren-certs consul0

Stellen Sie sicher, dass das Internet noch funktioniert, indem Sie das Standard-Gateway erneut hinzufügen (in meinem Fall ist es verschwunden)

docker-machine ssh consul0 "route add default gw 192.168.233.2"
``````

gut zu wissen:

#get the ip
$(Get-VM consul0).NetworkAdapters[0].IPAddresses[0]

#open vmconnect
$vm=Get-VM consul0

vmconnect $env:COMPUTERNAME $vm.Name -G $vm.Id

Hinweis: Manchmal scheint die boot2docker-Initialisierung fehlzuschlagen und Hyper-V kann die Adapter-IP nicht abrufen...

+1

+1

Wir sind immer noch im Plus-Eins-Modus? :)

Es vermasselt meine Einstellungen die ganze Zeit und es wäre absolut sinnvoll, feste IPs zu vergeben, insbesondere wenn Sie mehrere Entwicklungsumgebungen für verschiedene Projekte lokal ausführen

Wir warten auf die Bestätigung, dass die obige Strategie für andere funktioniert, die docker-machine unter Mac OSX verwenden. Hier in prägnanter Form:

1) Setzen Sie die Variable x auf eine beliebige ganze Zahl zwischen 1 und 98. Beispiel:
x='42'

2) Setzen Sie die Variable new_dm_name auf den Namen Ihrer neuen Docker-Maschinen-Umgebung. Beispielsweise:
new_dm_name='magic'

3) Führen Sie diesen Befehl aus:
docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.$x.100/24" "$new_dm_name"

Ihre neue statische IP sollte jetzt 192.168.x.100 sein und sollte zwischen den Sitzungen bestehen bleiben, solange Sie diese IP nichts anderem zuweisen. Um zu bestätigen, dass dies der Fall ist, empfehle ich, diese Befehle auszuführen:

docker-machine ip "$new_dm_name"
docker-machine stop "$new_dm_name"
docker-machine start "$new_dm_name"
docker-machine ip "$new_dm_name"

Mit etwas Glück lässt sich dies auch an Windows anpassen.

+1

Nun, ich bin verloren. Meine Firma verwendet 192.168.99.x für unsere eigene lokale IP, also erlauben Sie bitte, dass diese geändert wird.

@xbeta - Sie können das VBox-Netzwerk einfach neu konfigurieren? Ich kann Ihnen nicht sagen, wie das geht, da ich Hyper-V verwende, aber wenn Sie den Standard-VBox-Treiber verwenden, schauen Sie sich einfach die virtuellen Netzwerkkarten an, die dadurch erstellt wurden, docker-machine ist nur um VBox wickeln

+1

Könnten die Leute bitte, bitte, bitte mit den +1-Kommentaren aufhören? Github hat jetzt eine +1-Funktion. Klicken Sie einfach oben rechts auf den +Smiley und dann auf das Symbol "Daumen hoch". Es vermittelt Ihre Unterstützung, ohne jedem, der hier kommentiert hat, eine E-Mail zu senden. #kthxbye

https://blog.docker.com/2016/03/docker-for-mac-windows-beta/

Schneller und zuverlässiger: keine VirtualBox mehr!

Sieht so aus, als würde Docker VirtualBox aufgeben. Möglicherweise möchten Sie Ihre Erwartungen an dieses Problem anpassen, um jemals eine Lösung zu erhalten.

+1

+1

+1

:+1:

+1

+1

+1

Ja, bitte sei Nerds, mach weiter so. Es weckt so viel Vertrauen.

@everett-toews VirtualBox ist immer noch nützlich für Multi-Host-Docker-Lösungen wie Swarm, Kubernetes, Nomad usw. Docker für Mac entspricht einem One-Host-Setup (Ihr Mac ist der Host).
Eine andere lokale Lösung ist VmwareFusion, die die IP eines Hosts behält, wenn er neu gestartet wird. Dies ist übrigens ein neuer Fix.
Also ja, wir brauchen eine einfachere Möglichkeit, statische IPs für VirtualBox anzugeben.

@gittycat Ja . Und deshalb betreibe ich immer noch die Docker Toolbox. Nur damit ich einen Schwarm erstellen kann. Trotzdem würde ich lieber diesen Feature Request sehen: Mehrere VMs in Docker für Mac/Windows.

+1

+1

+1

+1

+1

Wenn Sie eine statische IP für eine boot2docker-Maschine einrichten müssen, bearbeiten Sie einfach /var/lib/boot2docker/profile und fügen Sie hinzu

sudo cat /var/run/udhcpc.eth1.pid | xargs sudo kill 
sudo ifconfig eth1 <ip address to assign> netmask <subnet mask> broadcast <broadcast address> up

Danach müssen Sie die Zertifikate neu generieren
docker-machine regenerate-certs rancher -f

+1

Ich denke, es ist zumindest für Mac n Windows an der Zeit, diese Anfrage als irrelevant zu schließen. Alle meine Probleme rund um die Docker-Maschinen-IP wurden von Docker für Mac gelöst. Denken alle?

@caledhwa stimme zu, Docker Mac ist ziemlich stabil, kann jetzt keinen Grund mehr sehen, sich mit Docker-Maschine zu befassen

@caledhwa Docker für Mac unterstützt nur einen Computer - wenn Sie ein Setup mit mehreren Computern haben, ist dies immer noch relevant.

@caledhwa wie @davidolrik sagte, Docker für Mac/Windows/AWS/Azure unterstützt nur 1 Host, was die Entwicklung, Demos und Tests mit mehreren Knoten von Swarm/Kubernete/Mesos/etc ausschließt.

👍

+1

Immer noch keine Bewegung dazu? Dies ist ein Blocker für die Verwendung von docker-machine, da ich die widersprüchliche Netzwerkadresse des Gastes nicht ändern kann.

Um die Docker-Maschinen-IP für Virtualbox reparieren zu können, ist eine Funktion erforderlich.

Ich habe mehrere Docker-Hosts als Beispiel für einen Schwarm eingerichtet, und nach dem Neustart hat sich die IP fast jedes Hosts geändert und der Fehler wird angezeigt:

x509: certificate is valid for 192.168.99.103, not 192.168.99.100

Ja, ich kann möglicherweise docker-machine regenerate-certs , um das Zertifikatsproblem zu beheben, jedoch hat sich auch die IP des Schlüsselwertspeichers geändert und das Ergebnis ist, dass mein Schwarm nicht mehr funktioniert, bis ich sie manuell in der Konfiguration ändere wieder einer.

Vielleicht ist es besser, sie einfach zu entfernen und diese Hosts erneut zu erstellen. Alle Bilder/Container in diesen Hosts gehen jedoch verloren.

Ermöglichen Sie also bitte die Angabe der IP des Hosts oder weisen Sie dem virtualbox docker host einfach automatisch eine feste IP zu und lassen Sie sie sich beim Neustart nicht ändern.

+1
Ich habe einen Fall, in dem ich dnsmaq für DHCP und DNS verwende. Basierend auf den obigen Kommentaren habe ich versucht, den DHCP-Server der virtuellen Box-Schnittstelle zu deaktivieren, in meinem Fall ist es vboxnet4 wie VBoxManage dhcpserver remove --netname HostInterfaceNetworking-vboxnet4 und muss neu gestartet werden die Maschine den DHCP-Bereich von dnsmasq auswählen soll, besteht das Problem darin, dass die Docker-Maschine bei jeder neuen Maschinenerstellung den DHCP-Server auf vboxnet4 aktiviert und andere Server, die dnsmasq verwenden, dies nicht können Suchen Sie die Docker-Maschine(n), ich muss das Entfernen von vnet wiederholen und dann die Docker-Maschinen neu starten. Es wäre großartig, wenn wir docker-machine-create ein Flag hinzufügen können, um zu verhindern, dass DHCP aktiviert wird.

+1

+1

+1

+1

Hier ist ein Befehl, der die Arbeit von @micheletedeschi kapselt und einige Komfort beim Umschalten zwischen DHCP und statischen Konfigurationen bietet. Es aktualisiert auf Wunsch auch Ihre /etc/hosts Datei.

https://github.com/fivestars/docker-machine-ipconfig

Wir verwenden es seit einigen Wochen mit großem Erfolg. Führen Sie es einfach direkt nach dem Erstellen Ihres Docker-Computers aus.

Usage: docker-machine-ipconfig <command> args...

Commands:
    ls                             List running docker-machines' ip addresses

    static <machine> [ip-address]  Configure <machine> to use a static IP address
                                   (default is current address)

    dhcp <machine>                 Configure <machine> to use DHCP client to gather IP address

    hosts                          Update /etc/hosts file

Alle dachten an eine "generischere" Lösung (Docker-Machine-natives Feature), da diese Option auch in Vsphere, Azure und anderen Bereitstellungsumgebungen interessant ist. Aber es ist wirklich willkommen.

+1

+1

+1

+1

+1

+1

Die Problemumgehung von @micheletedeschi funktioniert mehr oder weniger für mich, aber es scheint, dass die IP gelegentlich von der IP- Adresse zurückkehrt , die automatisch generiert wurde, als ich meinen Computer erstellt habe ( 192.168.99.104:2376). Ziemlich neu bei Docker, hat jemand einen Einblick?

+1, trat heute mit ZooKeeper und VirtualBox auf das gleiche Problem

Die Problemumgehung von @micheletedeschi funktioniert mehr oder weniger für mich, aber es scheint, dass die IP gelegentlich von der IP- Adresse zurückkehrt , die automatisch generiert wurde, als ich meinen Computer erstellt habe ( 192.168.99.104:2376). Ziemlich neu bei Docker, hat jemand einen Einblick?

Töten Sie den DHCP-Client? Können Sie nach dem Zurücksetzen bestätigen, dass der DHCP-Client immer noch nicht ausgeführt wird?

Ich habe einen weiteren Workaround gefunden, der endlich bei mir funktioniert: Ich starte einfach den Schwarmagenten auf jedem Rechner mit _advertise=$(ifconfig eth1 | grep -Eo "192.168.99.1[0-9]{2}"):2376_ und veröffentliche den aktuellen IP an ZooKeeper (oder einen anderen Erkennungsdienst). Dies ist in meinem Fall in Ordnung, da ich mich darauf verlassen kann, dass jeder Maschine eine 192.168.99.1**-Adresse zugewiesen wird (es ist nur ein Versuchsaufbau). denke, es gibt fortgeschrittenere Regex-Ausdrücke, die auf beliebige IP-Bereiche angewendet werden können. Das ist nicht schön und mag ein bisschen hacky sein, aber es macht seinen Job.

+1

+1

Willkürlich ändernde VM-IPs und TLS-Zertifikate, die beim Neustart plötzlich ungültig werden, haben viele Fallstricke verursacht und Arbeitsstunden verschwendet

Ist das überhaupt priorisiert? Ganze 13 Monate ist dieser Fall offen. +10000

Ich vermute, dass es in dieser Frage eine philosophische Meinungsverschiedenheit zwischen einigen Leuten im Docker-Maschinen-Team und dem Rest der Welt gibt. Die Verwendung von DHCP und eine nicht deterministische IP ist für alle meine Anwendungsfälle ziemlich wertlos.

Ich benutze diesen Workaround seit letztem Jahr. Es ist von einigen der oben beschriebenen einzeiligen Problemumgehungen angepasst.

SSH auf den Docker-Rechner
docker-machine ssh default

Das boot2docker-Startskript hinzufügen/bearbeiten
sudo vi /var/lib/boot2docker/bootsync.sh

#!/bin/sh
/etc/init.d/services/dhcp stop
ifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up

sudo chmod 755 /var/lib/boot2docker/bootsync.sh
Ausfahrt

Maschine neu starten und Zertifikate neu generieren
Docker-Maschine Neustart Standard
docker-machine regenerate-certs default

+1

+1

+1 (für Docker-Maschine und Jimmidyson/Minishift)

+1

@eytanhanig Leider hat deine Methode bei mir nicht funktioniert. Ich verwende OS X 10.11.6. Die Maschinen erhalten die gewünschten IPs, aber es gibt einen Fehler beim Herstellen der Verbindung. Docker schlägt vor, Schlüssel neu zu generieren, aber das hat das Problem nicht behoben.

+1

+1

Es ist lächerlich, wie lange die Leute schon +1 geben.

+1

Ich liebe es, diese Funktion zu haben, aber ich habe keinen eleganten Ansatz gefunden, um sie zu implementieren.

Das Problem wird durch DHCP in Virtualbox verursacht. Wenn das System neu startet, verliert der DHCP-Server alle zugewiesenen IP-Daten und versucht, die IP für die VMs neu zuzuweisen, die wahrscheinlich nicht zum letzten Mal dieselbe IP haben.

Ich bin mir nicht sicher, ob es richtig ist, die Virtualbox die DHCP-Daten persistent zu machen. Und Boot2docker wird die von DHCP zugewiesene IP nicht beibehalten, was eigentlich das richtige Verhalten ist.

IMHO, ich denke nicht, dass der Versuch, DHCP zu umgehen, der richtige Weg ist.

Es ist vielleicht besser, zuerst die statische IP im https://github.com/boot2docker/boot2docker-Projekt zu implementieren, z.

Hier ist der Code, um einen DHCP-Anruf auszulösen:

https://github.com/boot2docker/boot2docker/blob/master/rootfs/rootfs/bootscript.sh#L16

# Trigger the DHCP request sooner (the x64 bit userspace appears to be a second slower)
echo "$(date) dhcp -------------------------------"
/etc/rc.d/dhcp.sh
echo "$(date) dhcp -------------------------------"

Wir können es bedingt machen, indem wir eine Reihe von IP-Konfigurationen in /var/lib/boot2docker/profile hinzufügen, und wenn eine statische IP konfiguriert wurde, dann verwenden Sie die statische IP, anstatt die IP von DHCP anzufordern.

Dann können wir eine oder mehrere Optionen für den virtualbox Treiber hinzufügen, um die statische IP-Konfiguration anzugeben, z. B. --virtualbox-boot2docker-cidr , --virtualbox-boot2docker-gateway , --virtualbox-boot2docker-dns ...

+1

+1

+1

Leute, komm schon. Könnten wir bitte +1 bei einem offensichtlich langwierigen Problem beenden? Aus diesem Grund wurde ein Like-Button implementiert. Keine Notwendigkeit, die Abonnenten zu spammen.

Keine Notwendigkeit, die Abonnenten zu spammen.

Sie können sich abmelden.
1

Ich bin ganz dafür, die Abonnenten zu spammen.

Einige dieser Abonnenten sind Teil des Projektteams.

Am 26. Januar 2017, 14:20 Uhr, "Sergey Nevmerzhitsky" [email protected]
schrieb:

Keine Notwendigkeit, die Abonnenten zu spammen.

Sie können sich abmelden.
[Bild: 1]
https://cloud.githubusercontent.com/assets/1006042/22332699/4cf1a8b4-e3e3-11e6-8bad-52406c3b8055.png


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/docker/machine/issues/1709#issuecomment-275386350 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AG44NZ2KdnsH6JTU6iI_5Uieh9WZxWXBks5rWJ2RgaJpZM4FsQYg
.

Ich bin ganz dafür, die Abonnenten zu spammen.
Einige dieser Abonnenten sind Teil des Projektteams.

Betreuer checken ein. Bitte _nicht_ spammen Sie das Problem mit +1-Kommentaren. Dies ist ein bekanntes Problem und das Spammen des Threads bringt nichts. Zeigen Sie Unterstützung durch die "+1"-Emoji-Reaktionen an, wenn Sie möchten. Wie immer werten wir gerne Pull Requests oder Detailvorschläge aus. Danke an alle.

( Nebenbei bemerkt,

Ich möchte nicht wirklich eine statische IP. Sobald die IP-Adresse jedoch während der Erstellung ausgewählt wurde, sollte sie bei nachfolgenden Neustarts beibehalten werden. Ist das schon vorhanden?

Ich hatte einen Docker mit VPN und der Standard 192.168.99.100 wurde nicht geladen. Ich dachte, das liegt an der VPN-Verbindung, also habe ich ein Bridge-Netzwerk in Virtualbox eingerichtet, um über 192.168.1.159 auf das Docker zuzugreifen. Ich möchte, dass dies auf der veröffentlichten IP-Adresse von Kitematic angezeigt wird. Gibt es eine Möglichkeit, dies zu tun?

Für diejenigen, die es kaum erwarten können, diese Funktion zu implementieren, ist die Zuweisung einer benutzerdefinierten IP sowie einer benutzerdefinierten CPU / eines benutzerdefinierten Speichers mithilfe des Vagrant VirtualBox-Anbieters und des generischen Docker-Machine-Treibers möglich .

Platzieren Sie beispielsweise in Windows diese Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "AlbanMontaigu/boot2docker"
  config.vm.provider "virtualbox" do |v|
    v.memory = 8192
    v.cpus = 8
  end
  config.vm.synced_folder ".", "/vagrant", disabled: true
  config.vm.synced_folder "C:/Users", "/c/Users"
  config.vm.network "private_network", ip: "192.168.99.103"
end

und platzieren Sie einen vagabundierenden privaten Standard-SSH-Schlüssel mit dem Namen vagrant.pem

und Renn

vagrant up
docker-machine create --driver generic --generic-ip-address=192.168.99.103 --generic-ssh-user=docker --generic-ssh-key=vagrant.pem default
docker-machine ls

und Sie erhalten einen Docker-Host mit benutzerdefinierter IP, CPU, Speicher usw., der über Vagrant konfiguriert ist und gleichzeitig über die Docker-Maschine zugänglich ist.

Sie finden den Arbeitsdateisatz für Windows unter https://github.com/joelhandwell/dockerhost

@jcwilson Hallo Josh et al, vielen Dank.. Ich habe Ihr Skript gegabelt, um das gleiche Problem zu beheben (siehe https://github.com/minishift/minishift/issues/343 , https://github.com/minishift /minishift/issues/598) in Kombination mit Minishift:

https://github.com/ahilbig/docker-machine-ipconfig

Irgendwelche Neuigkeiten?

Derzeit experimentiere ich damit für Minishift: https://github.com/minishift/minishift/issues/1293
Ein anderer Ansatz wäre jedoch, so etwas wie cloud-init zu verwenden (was für diesen Ansatz vielleicht zu schwer ist, oder einen DHCP-Server in die Go-basierte Binärdatei einzubetten und damit eine zugewiesene IP-Adresse zu erzwingen).

+1.
Derzeit ist es schrecklich, mehr als eine Maschine zu haben. Wenn Sie zusätzliche Zertifikate verwenden (z. B. für ein benutzerdefiniertes Docker-Repository) und die Reihenfolge der Startmaschinen ändern, müssen Sie Folgendes tun:

Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376"
: x509: certificate is valid for 192.168.99.101, not 192.168.99.100

Dies zwingt Sie dazu, Zertifikate neu zu generieren oder alle Maschinen zu deaktivieren und die Ausführungsreihenfolge wiederherzustellen (was manchmal auch schmerzhaft sein kann).

Darüber hinaus wäre die Verwendung von Chef zum Konfigurieren eines Docker-basierten Projekts auch viel besser, wenn Sie davon ausgehen könnten, dass die erstellte Maschine immer dieselbe IP hat (z. B. wenn Sie sie zur Hosts-Datei hinzufügen und Sie IPs vergessen könnten).

+1

+1

+1
thx jcwilson, das Skript docker-machine-ipconfig ist sehr gut! Ich musste im Skript eth1 in eth0 ändern, danach funktionierte das Skript perfekt für mich. Ich verwende VMware vsphere.

Tschüss.

+1

Im Rahmen von Minishift haben wir https://github.com/minishift/minishift/issues/1316 implementiert und das hat bisher gut funktioniert. Wir suchen jetzt nach Alternativen, um im Laufe der Zeit dasselbe für die anderen Hypervisoren zu tun, aber zuerst werden wir die Adresse mit https://github.com/minishift/minishift/issues/1457 korrigieren (um zu verhindern, dass eine neue Adresse zugewiesen wird). . Wir konnten noch keine Zeit reservieren, wir werden dies auch in Minikube landen.

+1

Die einfachste Problemumgehung, die ich gefunden habe, besteht darin, sich auf die Reihenfolge des Startens virtueller Maschinen durch die Doker-Maschine zu verlassen.

VirtualBox verfügt über einen DHCP-Server, der ab 192.168.99.100 IP-Adressen zuweist.

  1. Alle VMs stoppen
    docker-machine stop ${docker-machine ls -q}
    Dieser Schritt gibt alle zugewiesenen Adressen an VirtualBox DHCP frei

  2. VMs der Reihe nach starten
    docker-machine start vbox1 && docker-machine start vbox2 && docker-machine start vbox3
    Diese Schritte weisen die IP wie folgt zu:
    192.168.99.100 : vbox1
    192.168.99.101 : vbox2
    192.168.99.102 : vbox3

Beachten Sie, dass docker-machine start vbox1 vbox2 vbox3 nicht funktioniert, aber ich verstehe nicht, warum.

+1

Wenn ich docker-machine.exe start ausführe, dauert es mehr als 15 Sekunden für DHCP waiting for an IP (wenn das Internet kaputt ist, dauert es mehr als 2 Minuten), ich denke, wenn man eine statische IP setzen kann, kann es schnell booten .

Diese Funktion wurde vor einiger Zeit zu Minishift hinzugefügt, aber es
benötigt eine Änderung der ISO, um zu funktionieren.
Bei Hyper-V sind Probleme aufgetreten, die das boot2docker-Image nicht hat
gut gespielt ... also funktionierte es nur auf CentOS- und Fedora-basierten Images.
Dies funktioniert auch nicht mit dem aktuellen KVM-Treiber, da dieser auf DHCP angewiesen ist.

Das bräuchte eine leichte Überarbeitung...

Am Sonntag, 3. Februar 2019 um 23:08 Uhr schrieb fcying [email protected] :
>

Wenn ich docker-machine.exe start ausführe, dauert es mehr als 15 Sekunden, bis DHCP auf eine IP wartet (wenn das Internet kaputt ist, dauert es mehr als 2 Minuten), ich denke, wenn eine statische IP eingestellt werden kann, kann es schnell booten.


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub an oder schalten Sie den Thread stumm.

--

Gerard Braad | http://gbraad.nl
[ Open-Source-Angelegenheiten erledigen ]

Die einfachste Problemumgehung, die ich gefunden habe, besteht darin, sich auf die Reihenfolge des Startens virtueller Maschinen durch die Doker-Maschine zu verlassen.

VirtualBox verfügt über einen DHCP-Server, der ab 192.168.99.100 IP-Adressen zuweist.

  1. Alle VMs stoppen
    docker-machine stop ${docker-machine ls -q}
    Dieser Schritt gibt alle zugewiesenen Adressen an VirtualBox DHCP frei
  2. VMs der Reihe nach starten
    docker-machine start vbox1 && docker-machine start vbox2 && docker-machine start vbox3
    Diese Schritte weisen die IP wie folgt zu:
    192.168.99.100 : vbox1
    192.168.99.101 : vbox2
    192.168.99.102 : vbox3

Beachten Sie, dass docker-machine start vbox1 vbox2 vbox3 nicht funktioniert, aber ich verstehe nicht, warum.

Manchmal musste ich den VBoxNetDHCP.exe-Prozess unter Windows beenden, damit die vbox IPs ab 192.168.99.100 zuweist
Andernfalls würde vbox keine IPs freigeben, die von früheren Computern verwendet wurden (nicht sicher warum)

👍

Es würde mein Leben wirklich einfacher machen.

Die einfachste Problemumgehung, die ich gefunden habe, besteht darin, sich auf die Reihenfolge des Startens virtueller Maschinen durch die Doker-Maschine zu verlassen.

VirtualBox verfügt über einen DHCP-Server, der ab 192.168.99.100 IP-Adressen zuweist.

  1. Alle VMs stoppen
    docker-machine stop ${docker-machine ls -q}
    Dieser Schritt gibt alle zugewiesenen Adressen an VirtualBox DHCP frei
  2. VMs der Reihe nach starten
    docker-machine start vbox1 && docker-machine start vbox2 && docker-machine start vbox3
    Diese Schritte weisen die IP wie folgt zu:
    192.168.99.100 : vbox1
    192.168.99.101 : vbox2
    192.168.99.102 : vbox3

Beachten Sie, dass docker-machine start vbox1 vbox2 vbox3 nicht funktioniert, aber ich verstehe nicht, warum.

Es ist sehr nützlich.

Um meiner Docker-Maschine (Standard) auf VirtualBox einen static ip address 192.168.99.50 zuzuweisen, habe ich verwendet:

$ echo -e "kill \`cat /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 default sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null

$ docker-machine restart default
Restarting "default"...
(default) Check network to re-create if needed...
(default) Waiting for an IP...
Waiting for SSH to be available...
Detecting the provisioner...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

$ docker-machine env
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.50:2376": x509: certificate is valid for 192.168.99.103, not 192.168.99.50
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which might stop running containers.

$ docker-machine regenerate-certs default
Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
Detecting the provisioner...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...

$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.50:2376"
export DOCKER_CERT_PATH="/Users/mandrake/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env)

Meine Umgebung ist OSX, VirtualBox (boot2docker.iso)

In der Hoffnung, dass dies nützlich sein kann 🙂
Übrigens: +1 für die neue Feature-Anfrage 😉
Beifall.

Ja, es gibt eine Option zum Erstellen mit einer bestimmten IP. Alles, was Sie tun müssen, ist IP/IP-Bereich mit anzugeben
--virtualbox-hostonly-cidr Option.

Beispielsweise:

  • Wenn Sie eine bestimmte IP zuweisen möchten, sagen wir, Sie möchten 10.15.1.24 zuweisen, dann wird die entsprechende Konfiguration sein (das Wichtigste ist die Maske, die wir hier verwenden. Für eine bestimmte IP müssen Sie die Subnetzmaske auf 32 setzen):
    docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.15.1.24/32" dev

  • Wenn Sie eine IP aus einem bestimmten IP-Bereich auswählen möchten, müssen Sie die entsprechende Subnetzmaske verwenden.

Wenn Sie das Problem haben, dass Sie Ihre Hostdatei ständig aktualisieren müssen, können Sie Avahi einfach auf Ihrem Container installieren und mDSN verwenden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen