Size: a a a

2020 May 17

T

Tishka17 in Python Flask
Setplus Mac
ребят, подскажите, плиз:

есть два контейнера, на обоих развёрнуто flask-приложение  с gunicorn. Из одного хочу послать POST-запрос во второй контейнер (server_api).

При запуске docker run указываю линк для соединения контейнеров:

docker run ... --link server_api:server_api -e SERVER_API_IP=server_api ...

Сам запрос выглядит след. образом:

       addr = "http://{}:8001/say_hello".format(current_app.config['SERVER_API_IP'])
       res = requests.post(addr, json=for_send)

Однако, в логах пишется следующее:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='server_api', port=8001): Max retries exceeded with url: /say_hello (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0cf0d97e80>: Failed to establish a new connection: [Errno 111] Connection refused'))

на первом контейнере в /etc/hosts узел server_ip есть, с хоста server_ip также доступен. Не могу понять, что я не так делаю
SERVER_API_IP=server_api так и написано или ты что-то заменил?
источник

V

Vlad in Python Flask
Setplus Mac
из первого контейнера или хоста?
Откуда запрос отправляется.
источник

V

Vlad in Python Flask
И куда.
источник

SM

Setplus Mac in Python Flask
Tishka17
SERVER_API_IP=server_api так и написано или ты что-то заменил?
ну там -e стоит
источник

SM

Setplus Mac in Python Flask
Vlad
Откуда запрос отправляется.
отправляю из первого контейнера во второй. У первого IP: 172.17.0.4, у второго —172.17.0.3
источник

T

Tishka17 in Python Flask
не, вопрос что ты все таки IP указываешь или имена?
источник

SM

Setplus Mac in Python Flask
а, понял

ссылка выглядит в итоге так

http://server_api:8001/say_hello
источник

T

Tishka17 in Python Flask
А сервер апи как запущен?
источник

T

Tishka17 in Python Flask
А вообще, мы точно хотим link юзать?
источник

T

Tishka17 in Python Flask
Может ты просто в одной сети их запустишь и ладно?
источник

SM

Setplus Mac in Python Flask
Tishka17
А вообще, мы точно хотим link юзать?
я пока через линк хочу проверить работоспособность, а потом уже docker-compose файл обновить
источник

SM

Setplus Mac in Python Flask
Tishka17
А сервер апи как запущен?
docker run --name server_api -d -p 8001:5001 --rm -e <некоторые переменные окружения> server_api:latest
источник

T

Tishka17 in Python Flask
Setplus Mac
я пока через линк хочу проверить работоспособность, а потом уже docker-compose файл обновить
Эм. То есть будет потом композ?
источник

SM

Setplus Mac in Python Flask
да
источник

T

Tishka17 in Python Flask
Композ тупо в одной сети запускает всех, нафиг тебе эта возня с линками
источник

SM

Setplus Mac in Python Flask
сейчас хочу потестить работу двух контейнеров
источник

T

Tishka17 in Python Flask
Setplus Mac
docker run --name server_api -d -p 8001:5001 --rm -e <некоторые переменные окружения> server_api:latest
А может порт 5001 попробовать в адресе?
источник

SM

Setplus Mac in Python Flask
Tishka17
А может порт 5001 попробовать в адресе?
сейчас попробую
источник

SM

Setplus Mac in Python Flask
хм...работает
источник

V

Vlad in Python Flask
Setplus Mac
отправляю из первого контейнера во второй. У первого IP: 172.17.0.4, у второго —172.17.0.3
красиво, теперь зайди в любой контейнер и пингани другой
источник