Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

584
Visualizações
¿No puede acceder al puerto del contenedor Docker expuesto públicamente desde una máquina externa, solo desde localhost?

Tengo un contenedor Docker ejecutándose en mi máquina Ubuntu Linux 14.04 que expone un puerto públicamente:

 docker run --name spacyapi -d -p 127.0.0.1:7091:7091 jgontrum/spacyapi:en

Puedo conectarme y ejecutar comandos contra el servidor en el contenedor sin problema desde la máquina local. Por ejemplo:

 curl http://localhost:7091/api --header 'content-type: application/json' --data '{"text": "This is a test."}' -X POST

El comando se ejecuta fielmente. Sin embargo, si pruebo el mismo comando CURL desde una máquina externa, obtengo un error de "conexión rechazada":

 curl http://192.5.169.50:5000/api --header 'content-type: application/json' --data '{"text": "This is a test."}' -X POST curl: (7) Failed to connect to 192.5.169.50 port 7091: Connection refused

Donde 192.5.169.50 es la dirección IP del cuadro que ejecuta el contenedor Docker.

No creo que necesite ninguna regla de iptables porque no necesito configurar ninguna para el servidor Node.JS que se ejecuta en la misma caja. Todas las demás computadoras en mi red local pueden acceder al servidor Node.JS sin problemas. Pero no el contenedor Docker que actúa como servidor.

¿Cómo puedo arreglar esto?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

No publicaste públicamente tu puerto con esta bandera:

 -p 127.0.0.1:7091:7091

Ese indicador dice publicar en la interfaz del host 127.0.0.1 (localhost), puerto 7091 al puerto de contenedores 7091. La única forma de llegar a ese puerto es estar en el host y conectarse a la interfaz de bucle invertido.

Para publicar públicamente el puerto, elimine la IP de esa bandera:

 -p 7091:7091

o publicar explícitamente en todas las interfaces con:

 -p 0.0.0.0:7091:7091

El último formato es idéntico al primero, siempre y cuando no haya anulado la configuración del demonio docker con dockerd --ip xxxx o establecido el valor de ip en su archivo /etc/docker/daemon.json.

about 4 years ago · Santiago Trujillo Relatório

0

No creo que la IP del contenedor sea 192.5.169.50. Intente hacer docker inspect <container-uid> | grep IPAddress para verificar cuál es la IP del contenedor. Creo que debería ser algo así como 172.17.0.X.

También podría hacer docker run -d --network=host <image> que apila el contenedor encima de la red host.

Los contenedores son simplemente algo encima del host, el host es el que realmente se comunica con el exterior.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda