Невозможно использовать localhost с контейнером Docker - PullRequest
0 голосов
/ 27 января 2020

Я пробовал другие ответы на stackoverflow и github, но ни один из них не работает. Когда я запускаю контейнер , я получаю это как вывод (который является стандартным выводом flask run)

Это мой Dockerfile

FROM alpine:latest

RUN apk add --no-cache python3-dev && pip3 install --upgrade pip 

WORKDIR /app

COPY . /app

RUN pip3 install Flask && pip3 install requests && pip3 install simplejson

EXPOSE 5000
CMD [ "flask", "run" ]

I Я пробовал 0.0.0.0:5000 тоже, но это не работает.

Ответы [ 2 ]

0 голосов
/ 27 января 2020
  1. Вы можете открыть порт через ваш Dockerfile или использовать --expose, а затем опубликовать sh с флагом -P. Это свяжет открытый порт с вашим Docker хостом на произвольном порту (проверяется с помощью команды docker container ls).

  2. Вы можете открыть порт через ваш Dockerfile или использовать - -expose и затем опубликовать sh с флагом -p 80:80. Это свяжет открытый порт с вашим Docker хостом на порту 80, и он ожидает, что открытый порт тоже будет 80 (отрегулируйте по необходимости с помощью HOST: CONTAINER).

  3. Вы можете игнорировать выставить что-нибудь и просто использовать -p 80:80, в этом случае это удваивает как выставление, так и публикацию порта.

Попробуйте запустить,

docker run -d --name <your_ctr_name>-p 5000:5000 <your_image_name>:latest

Если вам нужно для привязки хоста,

docker run -d --name container_name -p 10.x.x.100:5000:5000 image_name:latest

Если вы хотите выставить docker с помощью сетевого хоста,

docker run -d  --network host --name container_name image_name:latest
0 голосов
/ 27 января 2020

Запустите эту команду, чтобы узнать IP-адрес хоста. boot2docker ip

Теперь используйте этот IP-адрес вместе с номером порта, сопоставленным с вашим хостом.

Когда вы порождаете контейнер, на котором выполняется процесс, такой как веб-сервер, вам нужно указать, что порты для публикации sh от контейнера к хосту, например

docker run -p 8888:8080 tomcat

, публикует порт 8080 от контейнера к порту хоста 8888

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...