Вы можете выбрать способ, который лучше соответствует вашим потребностям.
Вариант 1. Использовать сетевое подключение хоста.В этом случае Docker не создает отдельную сеть для контейнера, и вы подключаетесь к сервисам контейнера, как если бы они работали на вашем хосте:
docker run --network=host <image_name>
Недостаток этого подхода - низкая изоляция и, следовательно, безопасность.Вам не нужно выставлять какие-либо порты здесь - если служба прослушивает 8080
, просто откройте localhost:8080
и наслаждайтесь.
Второй подход более правильный - вы выставляете (как-то вперед) внутренние порты в контейнере и отображаете ихна порты хоста.
docker run -p 8080:80 <image_name>
Это отобразит порт 80
из контейнера в порт 8080
на хосте.Как и в предыдущем примере, вы все еще подключаетесь, используя localhost
, например localhost:8080
.