Tengo una ejecución ventana acoplable contenedor (de este de la imagen). El envase parece estar funcionando correctamente por lo que puedo ver (el registro de ficheros de buena apariencia y puede conectarse a través de SSH a un contenedor y el uso de SQLPlus en su interior). Sin embargo, soy incapaz de conectar con el contenedor de mi anfitrión.

Empecé el contenedor como este:

sudo docker run -d -p 49160:22 -p 49161:1521 -p 49162:8080 alexeiled/docker-oracle-xe-11g

Me inspeccionados en el puerto de unión por esto:

$ sudo docker port <container> 8080
0.0.0.0:49162

Y cuando hago un sudo docker inspect <container> puedo obtener entre otros este:

"NetworkSettings": {
    "IPAddress": "172.17.0.2",
    "IPPrefixLen": 16,
    "Gateway": "172.17.42.1",
    "Bridge": "docker0",
    "PortMapping": null,
    "Ports": {
        "1521/tcp": [
            {
                "HostIp": "0.0.0.0",
                "HostPort": "49161"
            }
        ],
        "22/tcp": [
            {
                "HostIp": "0.0.0.0",
                "HostPort": "49160"
            }
        ],
        "8080/tcp": [
            {
                "HostIp": "0.0.0.0",
                "HostPort": "49162"
            }
        ]
    }
},

Cuando trato de hacer ping en el contenedor, el contenedor responde:

$ ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_req=1 ttl=64 time=0.138 ms
64 bytes from 172.17.0.2: icmp_req=2 ttl=64 time=0.132 ms

Pero no puedo conectarme desde mi host (Windows) a la ventana acoplable contenedor. Estoy corriendo ventana acoplable dentro de un Ubuntu 12.04 de la máquina virtual (en VirtualBox en Windows). No estoy seguro de si es un problema con la ventana acoplable con mi Linux VM o con VirtualBox. He enviado un montón de puertos en VirtualBox:

Ventana acoplable contenedor se une a puerto, pero soy incapaz de ping

Este es el resultado de sudo netstat -tpla:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:sunrpc                *:*                     LISTEN      542/rpcbind
tcp        0      0 *:ssh                   *:*                     LISTEN      1661/sshd
tcp        0      0 *:51201                 *:*                     LISTEN      831/rpc.statd
tcp        0     80 docker:ssh              10.0.2.2:62220          ESTABLISHED 1902/sshd: vagrant
tcp6       0      0 [::]:49160              [::]:*                  LISTEN      2388/docker
tcp6       0      0 [::]:49161              [::]:*                  LISTEN      2388/docker
tcp6       0      0 [::]:56105              [::]:*                  LISTEN      831/rpc.statd
tcp6       0      0 [::]:49162              [::]:*                  LISTEN      2388/docker
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN      542/rpcbind
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1661/sshd

Alguna idea de por qué no puedo conectar desde Windows a mi (en ejecución) contenedor Docker?

InformationsquelleAutor Thomas Uhrig | 2014-03-21

2 Comentarios

  1. 12

    ACTUALIZACIÓN:

    Que la configuración parece bien a mí, pero creo que los puertos 49160-49162 debe enlazar a IPv4 de la interfaz de IPv6 no. Busqué en google esto y parece que se ha producido un error abierto en la ventana acoplable:

    Veo dos soluciones al problema:

    1. completamente deshabilitar IPv6 en Ubuntu VM
    2. o enlazar directamente a la dirección IPv4: -p 172.17.42.1:49162:8080

    Respuesta antes de editar:

    Usted no puede hacer ping a los puertos. Ping es usando el protocolo ICMP.

    En caso de que no se puede conectar al puerto publicado, usted puede comprobar si el servicio específico en la ventana acoplable contenedor no se une a una adecuada interfaz de red (f.e. 0.0.0.0) y no localhost. Usted puede comprobar todos los puertos de escucha en contenedor: netstat -tpla.

    • Ahh OK, veo 😀 Cuando hago un ping 172.17.0.2 a la dirección IP del contenedor, puedo obtener la respuesta esperada. Pero todavía soy incapaz de conectarse a él… puedo editar mi pregunta.
    • He actualizado la respuesta. Déjeme saber si se resuelve el problema.
    • Mmmm, no, por desgracia esto no soluciona el problema. Creo que debe ser algo diferente relacionado con mi configuración de red… me acabo de descargar una nueva imagen de Ubuntu (también Ubuntu 12.04) y se instala ventana acoplable y Oracle-XE imagen – y funciona. También se une a IPv6 (la salida de sudo netstat -tpla se ve exaclty el mismo), pero funciona de alguna manera. Puedo acceder al contenedor desde mi Linux VM, así como de mi host de Windows. Pero yo todavía no sé cuál es la verdadera fuente de mis problemas… sin Embargo, gracias por su ayuda! Ahora funciona 🙂
    • Usted puede ser que necesite para vincular la ventana acoplable instancias.
  2. 2

    Cuando se ejecuta ventana acoplable en windows la construcción es como este

    Windows machine [
      Docker Virtual Box VM [ 
        Container1,
        Container2,
        ...
      ]
    ]
    

    Así que cuando usted se exponga a un puerto en el contenedor y enlazar a todas las direcciones de la máquina host decir, usando la -p parámetro, el puerto está realmente expuesto en la ventana acoplable VM virtual box y no en la máquina windows.

    Digamos, por ejemplo, ejecutar

    docker run --name MyContainerWithPortExpose -d -p 127.0.0.1:43306:3306  SomeImage:V1
    

    Ejecutar un netstat comando desde el símbolo del sistema de windows. Extrañamente no verá la localhost:43306 puerto en LISTEN modo

    Ahora hacer un boot2docker ssh de su boot2docker de la consola para iniciar sesión en la ventana acoplable VM virtual box
    Ejecutar un netstat comando. Vola….. usted encontrará localhost:43306 aparece en la ventana acoplable virtual box VM

    Evitar:

    Una vez en la Caja Virtual VM, ejecutar un ipconfig comando y averiguar la dirección IP de la máquina virtual. Utilice esta dirección IP en la ejecución ventana acoplable de comandos, en lugar de 127.0.0.1
    El lado negativo de esta obra todo es, su servidor DHCP en algún momento pueden jugar el caos mediante la asignación de diferentes IPs cada vez que inicie el boot2docker virtual box VM.

Dejar respuesta

Please enter your comment!
Please enter your name here