Я создал свой первый контейнер докеров, он запускает сервер с помощью Go, но я не могу получить к нему доступ извне хост-компьютера. Я только начал с докера, поэтому я немного потерялся здесь.
Таким образом, у меня очень простой код Go, который запускает сервер, я создал образ докеры, который устанавливает Go и создает код в базовом изображении Linux. Я запускаю сервер на порту 8080, поэтому я предоставляю этот порт хосту, запускающему контейнер следующим образом:
docker run -p 8080:8080 dockertest
Это работает, и я получаю доступ к серверу через IP-адрес устройства док- станции (тот, который появляется на терминале быстрого запуска Docker при запуске), проблема в том, что я не могу получить доступ к веб-сайту, на котором я размещаю сервер за пределами хоста, поэтому, если я попробую чтобы открыть тот же IP-адрес на моем телефоне, он просто дает мне ошибку: эта веб-страница недоступна (ERR_CONNECTION_TIMED_OUT).
Я также попытался указать IP следующим образом:
docker run -p 192.168.0.157:8080:8080 dockertest
Но когда я это делаю, я могу получить доступ к веб-сайту, не используя ни IP-адрес докера, ни указанный IP-адрес в командной строке выше. Я также не уверен, какой IP-адрес я должен написать в этой команде, я использовал свой компьютер IP, я также пробовал 127.0.0.1 (localhost), но это дало мне тот же результат: не удалось получить доступ к веб-сайту через любой IP вообще.
Я искал эту проблему и нашел много вопросов StackOverflow, но не помог мне решить мою проблему, большинство из них были ориентированы на Linux или Mac, поэтому решение не применимо к моей ситуации.
Кроме того, я могу запустить код Go на своем компьютере и получить доступ к веб-сайту с другого устройства в той же сети через свой IP-адрес компьютера. Я не понимаю, почему я не могу получить к нему доступ, когда я запускаю его в машине докеров, мне пришло в голову, что это может иметь какое-то отношение к переадресации IP-адреса или что-то еще, но я полный noob в сети, я "В основном это веб-разработчик и практически не имеет опыта работы на родном.