refused windows docker docker-toolbox

windows - refused - Docker Toolbox-Localhost no funciona



docker localhost refused to connect windows (5)

Docker Toolbox no tiene tantas comodidades como Docker para Windows, pero está en lo correcto al usarlo ya que está en la edición Home.

En Toolbox, nada será localhost y será 192.168.99.100 de forma predeterminada, ya que ejecuta una VM Linux en VirtualBox.

Entonces, si ejecuta docker run -p 80:80 nginx

(tenga en cuenta que tuve que publicar un puerto para 192.168.99.100 para escuchar en ese puerto)

Luego ir a http://192.168.99.100 debería funcionar.

Así que estoy usando Docker Toolbox porque no tengo Hyper-V en mi máquina, ya que no es Windows 10 pro. Todo parece funcionar bien, pero cuando intento 0.0.0.0:80 a mi navegador 0.0.0.0:80 siempre me devuelve: No se puede acceder a este sitio

Pero cuando ejecuto el comando: docker container ps obtengo lo siguiente: 0.0.0.0:80->80/tcp lo que significa que esta dirección debería funcionar. Busqué en problemas de stackoverflow y github. Ahora estoy atascado.

¿Me estoy perdiendo de algo?

Gracias Mark

EDITAR:

Usar docker-machine ip default me devuelve 192.168.99.100 . Lo ejecuto en el puerto 80. Todavía obtengo el mismo resultado, excepto que la dirección se convierte en la identificación del contenedor: https://fd677edg12

Ejecuto ese comando en cmd para encontrar mi ipv4: cmd /k ipconfig /all . Ponga el resultado con el puerto y devuelve lo mismo: https://fd677edg12


Inicialmente tuve algunos problemas con el acceso a mis aplicaciones en localhost: 8080 mientras usaba DockerToolBox y OracleVM VirtualBox.

En VirtualBox:

  1. Haga clic en la máquina adecuada (probablemente la etiquetada como "predeterminada")
  2. Configuraciones
  3. Red> Adaptador 1> Avanzado> Reenvío de puertos
  4. Haga clic en "+" para agregar una nueva regla
  5. Establecer el puerto host 8080 y el puerto invitado 8080 ; asegúrese de dejar la IP del host y la IP del invitado vacías

Ejecute el comando:

docker run -p 8080:8080 ${image_id}


Para asignar los puertos esperados al localhost lugar de golpear directamente la IP de la máquina acoplable, puede usar la CLI de VirtualBox.

Si la máquina virtual docker-machine (aquí llamada default ) se está ejecutando, agregue y elimine reglas como esta:

> VBoxManage.exe controlvm "default" natpf1 "nginx,tcp,,8888,,8888" > VBoxManage.exe controlvm "default" natpf1 delete nginx

Si la máquina virtual no se está ejecutando o desea detenerla antes de modificarla:

> docker-machine stop > VBoxManage.exe modifyvm "default" --natpf1 "nginx,tcp,,8888,,8888" > VBoxManage.exe modifyvm "default" --natpf1 delete "nginx" > docker-machine start

Donde el formato de la regla de reenvío de puerto es [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport> .

Tenga en cuenta que en VirtualBox, desea asignar al puerto host del mapa Docker, no al puerto contenedor interno. Está asignando host -> VM, luego Docker asigna VM -> contenedor.

Vea los documentos de VirtualBox .


Puede usar localhost lugar de ''192.168.99.100'' siguiendo las instrucciones:

Paso # 01:

docker-machine ip default

Verá la IP predeterminada

Paso # 02:

docker-machine stop default

Paso # 03:

  1. Abra VirtualBox Manager (desde los programas de inicio en Windows busque VirtualBox Manager )
  2. Seleccione su imagen de Docker Machine VirtualBox (por ejemplo: predeterminado)
  3. Abra Configuración -> Red -> Avanzado -> Reenvío de puertos
  4. Agregue el nombre de su aplicación, el puerto de host deseado y su puerto de invitado ie, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80

Paso # 04: Ahora estás listo para iniciar tu Docker Machine ejecutando lo siguiente:

docker-machine start default

Luego, simplemente inicie su contenedor Docker y podrá acceder a él a través de localhost.

Echa un vistazo aquí para más detalles.


Seguí el tutorial de Docker para Windows en https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell y me quedé atascado en el paso 6 cuando probé nginx en el navegador web . Parece que enfrenté un problema similar ya que también uso Windows Home y no tengo Hyper-V. Mi solución es bastante simple:

  1. verifique el valor predeterminado de su IP acoplable

$ docker-machine ip default

192.168.99.100

  1. Vaya a Oracle Virtual Machine para configurar el reenvío de puertos. Asegúrese de que la configuración de red sea NAT y agregue el reenvío de puertos. IP de host: 127.0.0.1, IP de invitado: 192.168.99.100, puerto configurado a 80 como este

  2. Intente nuevamente en su navegador y ejecute http: // localhost o http://127.0.0.1 (también puede agregar el puerto 80). Debería correr.

La cuestión es que la IP nginx está diseñada para ser accesible dentro de la máquina virtual docker, por lo que necesitamos esa configuración de puerto para vadeo para acceder directamente en el navegador de la máquina host