Entonces 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
acceder a mi navegador , 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 estancado.
¿Me estoy perdiendo de algo?
Gracias, Mark
EDITAR:
El uso 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
Corro ese comando en cmd para encontrar mi IPv4: cmd /k ipconfig /all
. Pon el resultado con el puerto y devuelve lo mismo:https://fd677edg12
fuente
docker-machine default ip -> 192.168.99.100
Así que puse esto en la dirección:192.168.99.100:80
todavía obtengo el mismo resultado.Respuestas:
Docker Toolbox no tiene tantas comodidades como Docker para Windows, pero tiene razón al usarlo ya que está en la edición Home.
En Toolbox, nada será
localhost
y será192.168.99.100
por defecto, ya que está ejecutando una VM Linux en VirtualBox.Entonces si corres
docker run -p 80:80 nginx
(note que tuve que publicar un puerto para
192.168.99.100
escuchar en ese puerto)Entonces ir a
http://192.168.99.100
debería funcionar.fuente
docker run -p 80:80 -d nginx
. Voy a la dirección y me redirige ahttps://dev/
, nuevamente dice que no se puede acceder al sitio. También quería verificar si tenía algo en elhosts
archivo (aunque sé que no es localhost). Lo comenté todo allí.docker-machine
cli. Puede usardocker-machine --help
para ver lo que puede hacer para administrar VirtualBox VM (o crear más).Inicialmente tuve algunos problemas para acceder a mis aplicaciones en localhost: 8080 mientras usaba DockerToolBox y OracleVM VirtualBox.
En VirtualBox:
8080
y puerto de invitado8080
; asegúrese de dejar la IP del host y la IP del invitado vacíasEjecute el comando:
fuente
C:\Windows\System32\drivers\etc\hosts
); tenía que controlar ambos antes de que funcionara para mí ;-)Estaba siguiendo 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 probaba nginx en el navegador web . Parece que me enfrenté a un problema similar ya que también uso Windows Home y no tengo Hyper-V. Mi solución es bastante simple:
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 en 80 como este
Vuelva a intentarlo con su navegador y ejecute http: // localhost o http://127.0.0.1 (también puede agregar el puerto 80). Debería funcionar.
La cuestión es que la IP de nginx está destinada a ser accesible dentro de la máquina virtual de la ventana acoplable, por lo que necesitamos esa configuración de reenvío de puerto para acceder directamente en el navegador de la máquina host.
fuente
HOST:CONTAINER
puertos son diferentes, por ejemplodocker run --detach --publish 8081:80 --name webserver nginx
. Descubrí que en este caso solo tenía que reenviar elHOST
puerto, es decir, en la configuración de VirtualBoxHost IP=127.0.0.1
;Host Port=8081
;Guest IP=192.168.99.100
;Guest Port=8081
, no80
como suponía antes. Se ve como en mi máquina de Windows 7 con la caja de herramientas acoplable acoplable hacia delante desde el puerto de contenedores80
de192.168.99:8081
y hacia adelante desde192.168.99:8081
quelocalhost:8081
ya192.168.99:8081
no muestra nada en el navegador web.Puede usar en
localhost
lugar de '192.168.99.100' siguiendo las instrucciones:Paso # 01:
Verás la IP predeterminada
Paso # 02:
Paso # 03:
VirtualBox Manager
)i.e, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80
Paso # 04: Ahora está listo para iniciar su máquina Docker ejecutando lo siguiente:
Luego, simplemente inicie su contenedor Docker y podrá acceder a él a través de localhost.
Eche un vistazo aquí para obtener más detalles.
fuente
Para mapear los puertos esperados en
localhost
lugar de acceder directamente a la IP de la máquina acoplable, puede usar la CLI de VirtualBox.Si la VM de la máquina acoplable (aquí llamada
default
) se está ejecutando, agregue y elimine reglas como esta:Si la máquina virtual no se está ejecutando o desea detenerla antes de modificarla:
Donde está el formato de la regla de reenvío de puertos
[<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>
.Tenga en cuenta que en VirtualBox, desea asignar el puerto host del mapa de Docker, no el puerto del contenedor interno. Está mapeando host -> VM, luego Docker mapea VM -> contenedor.
Consulte los documentos de VirtualBox .
fuente
Esta es otra forma sencilla de evitar escribir la ip 192.168.99.100. Vaya ay
C:\Windows\System32\drivers\etc\hosts
agregue al final del archivo:192.168.99.100 docker.awesome
o cualquier nombre de tu agrado.Guarde el archivo (debe tener derechos de administrador, así que asegúrese de hacer clic con el botón derecho en el archivo y ejecutarlo como administrador para poder guardarlo cuando lo edite).
Vaya a su nombre de dominio elegido, docker.awesome: 8080 en este caso y ahí lo tiene.
fuente
Después de muchas pruebas, pude conseguir este tablero de anuncios.
El comando docker run que utilicé - docker run -p 4680: 8080 --name bb bulletinboard: 1.0 Aquí, 4680 es el número de puerto localhost. 8080 es el número de puerto del contenedor, el puerto en el que escuchará el contenedor. Este número de puerto se menciona en el comando EXPOSE en Dockerfile.
Luego, vaya al navegador web y escriba 192.168.99.100:4680
Aquí, 192.168.99.100 es la dirección IP de la máquina acoplable (use el comando -> ip de la máquina acoplable)
Espero que esto les ayude a todos !!
fuente