Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

443
Views
docker-proxy obteniendo accept4: descriptor de archivo incorrecto

Estoy tratando de agregar un reenvío de puerto al contenedor docker usando docker-proxy pero tengo este error a continuación,

Aquí están los detalles,

  • Ya se está ejecutando un contenedor con IP 172.17.0.2 con --net=none. Proporcionamos nuestra propia red y no usamos la red docker0.

  • Ahora queremos exponer algunos puertos del contenedor al host, así que pensé en probar docker-proxy.

  • ejecutamos el siguiente comando,

     $ docker-proxy -container-ip 172.17.0.2 -container-port 8000 -host-ip 0.0.0.0 -host-port 8000 -proto tcp and we are getting, 2017/03/16 10:02:30 Stopping proxy on tcp/[::]:8001 for tcp/172.17.0.2:8001 (accept tcp [::]:8001: accept4: bad file descriptor)

Versión de Docker: Docker versión 17.03.0-ce, compilación 60ccb22

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No creo que haya otra forma de hacer esto, excepto detener el contenedor, eliminarlo y luego ejecutarlo nuevamente a partir de un Dockerfile o simplemente con la ejecución de la ventana acoplable agregando -p 8000: 8000. Docker no parece permitirle jugar con docker-proxy directamente, debe usar los comandos estándar.

También puede exponer manualmente el puerto al acceso externo cambiando directamente las iptables, es decir, la cadena DOCKER en la tabla NAT y la cadena DOCKER en el filtro. Por ejemplo:

 iptables -t nat -A DOCKER ! -i your_bridge0 -p tcp -m tcp --dport 8000 -j DNAT --to-destination 172.17.0.2:8000

Y:

 iptables -A DOCKER ! -i your_bridge0 -o your_bridge0 -d 172.17.0.2 -p tcp --m tcp --dport 80 -j ACCEPT

Por supuesto, entonces tendrías que asegurarte de que las reglas se mantendrán, lo cual es un problema completamente diferente. A Docker no parece importarle mucho quién administra iptables (ufw, firewalld, etc.).

Esto funcionará, incluso si el proxy docker no se está ejecutando en absoluto. docker-proxy se une a los puertos del host, lo que significa que usted controla el tráfico en la cadena INPUT en la tabla de filtros (es decir, el propio host). Todavía no he descubierto por qué Docker se creó de esta manera, pero de forma predeterminada, si expone un contenedor (usando -p) y luego elimina la regla DNAT, seguirá funcionando, porque la solicitud llegará a INPUT cadena directamente. Lo cual es alucinante, pero no importa.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!