Итак, я пытался настроить некоторые веб-сайты и другие вещи на своем сервере Ubuntu 20.04.3 LTS.
Различные базовые приложения WebUI в разных докерах, доступ к которым осуществляется через nginx. Но я хочу иметь возможность подключаться к ЛЮБЫМ из моих докеров. После устранения неполадок кажется, что переадресация портов не работает ни на одном из моих докеров. Все началось с моего докера node-red, nginx тоже не работал, и теперь я настроил очень простой докер whoami с очень простым веб-сервером, работающим на порту 8000.
Я до сих пор не могу подключиться к нему.
Если я зайду в докер с помощью «docker exec -ti whoami sh», я смогу получить доступ к веб-серверу через wget, но не из-за пределов докера.
Я искал много и большинство проблем, где ложное использование флага -p или веб-сервер только прослушивает локальный хост и так далее. И то, и другое здесь не так.
Вот вывод моего тестового терминала, чтобы показать, что происходит
$~Â докер ps
ИДЕНТИФИКАТОР КОНТЕЙНЕРА ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАНА СТАТУС ИМЕНА ПОРТОВ
726da9705b7f jwilder/whoami "/app/http" Около минуты назад Наверх Около минуты 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp whoami
$~Â
$~Â wget -O - http://127.0.0.1:8000/
--2021-10-16 23:19:09-- http://127.0.0.1:8000/
Подключение к 127.0.0.1:8000... подключено.
HTTP-запрос отправлен, ожидается ответ...Ошибка чтения (сброс соединения узлом) в заголовках.
Повторная попытка.
--2021-10-16 23:21:21-- (попробуйте: 2) http://127.0.0.1:8000/
Подключение к 127.0.0.1:8000... подключено.
HTTP-запрос отправлен, ожидается ответ... ^C
$~Â
$~Â docker exec -ti whoami sh
/приложение # wget -O - http://127.0.0.1:8000/
Подключение к 127.0.0.1:8000 (127.0.0.1:8000)
я 726da9705b7f
- 100% |****************************************************** *******| 17 00:00:00 Расчетное время прибытия
/приложение # выход
$~Â
$~Â cat run.sh
docker run -d -p 8000:8000 --name whoami -t jwilder/whoami
$~Â
$~
Доказательство того, что сервер не привязан к локальному хосту:
$~Â
$~Â docker logs -f whoami
Слушаю: 8000
я 726da9705b7f
^ С
$~Â
$~Â docker exec -ti whoami sh
/приложение # ./http
Слушаю: 8000
2021/10/16 22:36:23 слушать tcp: 8000: bind: адрес уже используется
/приложение # выход
$~
$~Â
И, насколько я могу судить, служба докеров действительно использует порт:
$~
$~ судо lsof -i:8000
КОМАНДА PID ПОЛЬЗОВАТЕЛЬ ТИП FD УСТРОЙСТВО РАЗМЕР/ВЫКЛ НАЗВАНИЕ УЗЛА
docker-pr 24976 root 4u IPv4 112329 0t0 TCP *:8000 (СЛУШАТЬ)
docker-pr 24984 root 4u IPv6 114001 0t0 TCP *:8000 (СЛУШАТЬ)
$~
$~
Но он все еще не работает.
Кто-нибудь знает, что происходит не так, я очень невежественен.