РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPyApPt 4 of 22 menu
◀ ▶

Порт приложения в Docker

Порт приложения публикует 8000 контейнера на 8080 компьютера, и страница открывается в браузере. Слева в паре - порт на хосте, справа - порт внутри копии, где слушает Python. Строка EXPOSE в Dockerfile лишь помечает порт образа и сама по себе не открывает его на компьютере.

Скрипт должен слушать 0.0.0.0, иначе запрос снаружи контейнера не дойдёт до процесса. Файл app.py с учётом этого такой:

from http.server import BaseHTTPRequestHandler, HTTPServer class Handler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() self.wfile.write(b'hello') if __name__ == '__main__': HTTPServer(('0.0.0.0', 8000), Handler).serve_forever()

К паре портов добавим фоновый режим, чтобы терминал освободился. На хосте откроем порт 8080, внутри копии останется 8000. Команда запуска такая:

docker run --rm -d -p 8080:8000 -i python:3.14 python - <<'PY' from http.server import BaseHTTPRequestHandler, HTTPServer class Handler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() self.wfile.write(b'hello') if __name__ == '__main__': HTTPServer(('0.0.0.0', 8000), Handler).serve_forever() PY

После подъёма адрес localhost:8080 покажет в браузере слово hello без разметки. Страница открывается именно по опубликованному порту на компьютере.

Опишите сервис note с ответом ready и парой портов 8081 на хосте и 8000 в контейнере на python:3.14.

Откройте localhost:8081 и зафиксируйте текст на странице.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить