Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

327
Vistas
Cómo ejecutar el servidor Python en el contenedor de Docker

Quiero ejecutar el servidor Python HTTP en el contenedor docker.

Mi DockerFile se ve así:

 FROM continuumio/anaconda3:latest RUN apt-get -y update RUN apt-get -y install linux-headers-amd64 build-essential libc-dev gcc RUN conda install --yes gcc RUN conda install --yes numpy RUN conda install --yes scipy RUN conda install --yes gensim RUN pip install annoy RUN conda config --add channels conda-forge RUN conda install --yes spacy RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ADD my-app.tar /usr/src/app WORKDIR /usr/src/app/source

Construyo la imagen con:

 docker build -t my-app-poc .

Inicie el contenedor e ingrese el comando:

 docker run -i -t -p 9998:9998

En el bash de la imagen de Docker, ejecuto el script:

 python Service.py

Que comienza correctamente:

 Wed Apr 5 13:09:51 2017 Server Starts - :9998

Pero cuando ingreso la dirección en mi host:

 http://localhost:9998

No pasa nada. También intenté poner EXPOSE 9998 al final de mi DockerFile pero no fue de ayuda.

Si ingreso la dirección de la docker-machine en mi host:

 http://192.168.99.100:9989/

funciona. Pero quiero ejecutar esa imagen en un servidor normal, no en mi máquina local, por lo que todo debería estar expuesto a localhost.

Lo probé en Windows 7.

¿Tienes alguna idea de cómo ejecutar esto?

¡Estaré muy contento por tu ayuda!

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Esto puede o no estar relacionado, pero no puedo agregar un comentario, ¡así que obtienes una respuesta independiente!

En el contenedor Docker, es posible que deba vincular su aplicación al host 0.0.0.0 . Ver este enlace.

Me parece (aunque tendría que saber más sobre la aplicación para estar seguro) que está buscando una conexión en la interfaz de bucle invertido. Esto expone al oyente solo a la máquina local. Por el contrario, 0.0.0.0 sirve para exponer al oyente a todas las interfaces de red de la máquina. Concretamente en este caso, el adaptador de red docker. Para una explicación más detallada, vea este post.

about 4 years ago · Santiago Trujillo Denunciar

0

Lo que describiste es un comportamiento normal. Las imágenes de Docker se ejecutan en un entorno virtualizado, por lo que no pueden compartir la dirección de bucle invertido. Lo que debe hacer es redirigir el tráfico de su servidor a su imagen acoplable.

Esta página de documentación debe tener todas las respuestas que necesita.

¡Buena suerte!

about 4 years ago · Santiago Trujillo Denunciar

0

Desde https://docs.docker.com/engine/reference/run/#expose-incoming-ports

La opción de exposición -p también puede tomar una dirección IP. Si desea enlazar también a 127.0.0.1, vaya allí.

intente algo como: -p 127.0.0.1:9998:9998

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda