Перенаправление портов

Программы, запущенные в контейнере, изолированы от других программ, работающих на тех же вычислительных ресурсах и не имеют прямого доступа к сетевым портам основной ОС. Однако сами программы об этом, разумеется, не знают и в общем случае ждут подключения на том или ином порту. То есть программа слушает порт контейнера, в котором работает. И чтобы к этому порту была возможность подключиться из вне, необходимо перенаправить порт основной ОС на порт контейнера при его запуске:

docker container run -p 9999:8888 mycontapp

Где слева – порт хоста (9999), справа – порт контейнера (8888). Теперь, если постучаться на 9999 порт хоста, то запрос будет перенаправлен на 8888 порт контейнера, который слушает приложение внутри этого контейнера.