Не удалось подключиться к порту localhost 5000: отказано в подключении с помощью Docker

Я создал свое маленькое приложение на Python (flask).Контейнер - это heredocker ps

CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS              PORTS                NAMES4146fd976547        identidock_identidock:latest   "/cmd.sh"           5 minutes ago       Up 5 minutes        9090/tcp, 9191/tcp   agitated_leakey

Если я попытаюсь

curl localhost:5000curl: (7) Failed to connect to localhost port 5000: Connection refused

Я проверил sudo netstat -an | grep -E "5000"unix 3 [ ] ПОТОК ПОДКЛЮЧЕН 25000

Он не отображается в строке 5000.yaml с портами

  ports:   - "5000:5000"

Если я использую свой контейнер

docker exec -it agitated_leakey /bin/bashuwsgi@4146fd976547:/app$ netstat -lnbash: netstat: command not found

Мой файл Dockerfile

RUN pip install Flask==0.10.1 uWSGI==2.0.8WORKDIR /appCOPY app /appCOPY cmd.sh /EXPOSE 9090 9191

Почему это происходит?

Альтернативная проблема может быть связана с режимом. В разделе публикации я должен был установить mode явно для хостинга, и все заработало:

docker service create --name registry --publish published=5000,target=5000,mode=host registry:2

Из вывода docker ps кажется, что ваш порт не был открыт.

$ docker run -d -p 5000:5000 flask-sample-one

Запустите свой контейнер, сопоставив порт, и, если вы все еще сталкиваетесь с той же проблемой, подключитесь к контейнеру по ssh и используйте следующую команду.

netstat -lntp | grep :5000

Похоже, netstat не установлен в контейнере. Вы можете запустить yum install netstat для установки и проверки.

Этот руководство поможет вам в этом убедиться. Проверять docker ps вывод в конце.

можете ли вы подключиться по ssh к контейнеру docker и netstat, чтобы проверить, прослушивается ли порт. Был ли открыт порт docker 5000?

@Dextro67 Взгляните на мою правку, пожалуйста.