#docker #docker-compose
#docker #docker-compose
Вопрос:
Итак, у меня запущен контейнер docker, я попытался перенаправить его сервисный порт на хост:
Вот мой файл docker-compose:
version: '3'
services:
ai-recommender-server:
build: .
ports:
- "3518:3518"
Когда контейнер запущен, я могу проверить его через «docker ps -a»
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ff940601a02f recommender_ai-recommender-server "python server.py" About an hour ago Up About an hour 0.0.0.0:3518->3518/tcp recommender_ai-recommender-server_1
Когда я попытался получить доступ изнутри контейнера:
$ docker exec -it ff94 sh
/service # curl http://localhost:3518
{
"message": "AI recommendation system"
}
Но когда я попытался сделать это на хосте, я получил сообщение об ошибке «curl: (56) Сбой Recv: сброс соединения одноранговым узлом»
$ curl http://localhost:3518
curl: (56) Recv failure: Connection reset by peer
Кто-нибудь может узнать, в чем моя проблема?
Ответ №1:
Поскольку это python, я думаю, что привязка к 0.0.0.0
может отсутствовать в вашем коде python
Что-то вроде этого внутри вашего python server.py
app.run(debug='False',host='0.0.0.0',port=3518)
Комментарии:
1. итак, у меня есть это в моем коде python: app.run (host = ‘localhost’, port = 3518, debug = True), есть ли какие-либо проблемы?
2. ДА. Это не будет работать внутри контейнера docker при использовании
localhost
. Проверьте эту ссылку3. Спасибо @Wander3r, это работает! ваша ссылка очень информативна
4. @KenTsoi, пожалуйста, отметьте этот ответ как решение вашей проблемы
5. Извините, забыл это сделать