Size: a a a

Docker — русскоговорящее сообщество

2020 September 28

ДК

Дмитрий Кожанов... in Docker — русскоговорящее сообщество
Мне кажется ты что то делаешь не так
источник

AM

Aleksei Morozov in Docker — русскоговорящее сообщество
я думал, что при запуске контейнера с -p 1000:1000 просто прокинет порты контейнера и хоста, из контейнера я делаю get запрос 0.0.0.0:1000. Он же должен уйти на 1000 порт хоста? Как тогда правильно?
источник

AM

Aleksei Morozov in Docker — русскоговорящее сообщество
сам контейнер работает на 8080 порту
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
Aleksei Morozov
я думал, что при запуске контейнера с -p 1000:1000 просто прокинет порты контейнера и хоста, из контейнера я делаю get запрос 0.0.0.0:1000. Он же должен уйти на 1000 порт хоста? Как тогда правильно?
если что, прокинуть порт - это про замапить соответствие между портом на докер-хосте и портом в контейнере, но не в обратную сторону, если ты хочешь сделать запрос на докер-хост, то и обращайся по адресу докер-хоста
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
т.е. не будет такого, что ты запустил контейнер так: docker run -p -d 1000:1000 image' и из контейнера запросом `curl localhost:1000 обратился на 1000 порт докер-хоста
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
но запрос curl <ip-of-docker-host>:1000 должен отработать без проблем внутри контейнера
источник

AM

Aleksei Morozov in Docker — русскоговорящее сообщество
я не обращаюсь к контейнеру, я хочу обратиться из контейнера и этот запрос отловить. внутри контейнера выполняется get запрос по адресу 0.0.0.0:1000 с аргументами, я этот запрос хочу принять. сам по себе вопрос внутри контейнера выполняется, контейнер работает, но принять этот запрос я не могу. как-то так.
Сначала я просто создал контейнер, создал на flask эхосервер. но эхосервер ничего не принимал. мне сказали, чт опорты внутри контейнера никак не связаны с портами, которые ты пытаешься слушать. поэтому при запуске контейнера я добавил ещё один порт. ну и спустя несколько дней гугления написал сюда
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
Aleksei Morozov
я не обращаюсь к контейнеру, я хочу обратиться из контейнера и этот запрос отловить. внутри контейнера выполняется get запрос по адресу 0.0.0.0:1000 с аргументами, я этот запрос хочу принять. сам по себе вопрос внутри контейнера выполняется, контейнер работает, но принять этот запрос я не могу. как-то так.
Сначала я просто создал контейнер, создал на flask эхосервер. но эхосервер ничего не принимал. мне сказали, чт опорты внутри контейнера никак не связаны с портами, которые ты пытаешься слушать. поэтому при запуске контейнера я добавил ещё один порт. ну и спустя несколько дней гугления написал сюда
давай разбираться, куда ты из контейнера хочешь обратиться? где запущен эхо-сервер и как?
источник

AM

Aleksei Morozov in Docker — русскоговорящее сообщество
эхосервер локально, просто несколько строчек на питоне
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/echo', methods=['POST', 'GET'])
def echo():
   for i in list(request.args):
       print(f'{i}: {request.args[i]}')
   # return jsonify(request.args)

if __name__ == '__main__':
   app.run(host='0.0.0.0', port=1000)
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
эхо сервер на хосте запущен или в контейнере?
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
локально не ответ)
источник

AM

Aleksei Morozov in Docker — русскоговорящее сообщество
на хосте
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
ты хочешь из контейнера сделать запрос к эхосерверу?
источник

AM

Aleksei Morozov in Docker — русскоговорящее сообщество
да
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
Александр Фадеев
но запрос curl <ip-of-docker-host>:1000 должен отработать без проблем внутри контейнера
тогда вот это твой выбор, запрос внутри контейнера ничем не отличается от запроса на хосте
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
дополнительно порты пробрасывать не надо из контейнера
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
Александр Фадеев
дополнительно порты пробрасывать не надо из контейнера
правда такое не уместно говорить, потому что порты пробрасываются с хост-системы в контейнер и не иначе
источник

AM

Aleksei Morozov in Docker — русскоговорящее сообщество
просто делать запрос не на 0000, использовать айпи докерхоста?
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
ага
источник

АФ

Александр Фадеев... in Docker — русскоговорящее сообщество
ну и приложение твое не запускается, потому что ты биндишь 1000 порт докером
источник