Рейтинг:0

Докер доступен через localhost:8080 и 127.0.0.1:8080, но не через IP

флаг cn

У меня есть следующий сценарий: 3x Vagrant VM вращаются из приведенного ниже Vagrantfile, работают и работают (видны в Oracle VirtualBox).

Я вошел в систему docker1, тип сети — «NAT», используется переадресация портов (гость: 8080, хост: 8080).

Я могу получить доступ к странице с локального хоста: 8080 и 127.0.0.1:8080 и 127.0.1.1:8080. Однако у меня нет доступа через IP (192.168.99.101:8080 «Слишком долго отвечает» и недоступен).

Vagrant.configure("2") сделать |config|

    config.vm.define "docker1" сделать |docker1|
        docker1.vm.box="xxx/centos-stream-8"
        docker1.vm.hostname = "docker1.do1.lab"
        docker1.vm.network "частная_сеть", ip: "192.168.99.101"
        docker1.vm.provision "оболочка", путь: "docker-setup.sh"
        docker1.vm.provision "оболочка", путь: "other-steps.sh"
        docker1.vm.provider :virtualbox do |vb|
            vb.customize ["modifyvm", :id, "--memory", "1536"]
        конец
    конец
    
    config.vm.define "docker2" сделать |docker2|
        docker2.vm.box="xxx/centos-stream-8"
        docker2.vm.hostname = "docker2.do1.lab"
        docker2.vm.network "частная_сеть", ip: "192.168.99.102"
        docker2.vm.provision "оболочка", путь: "docker-setup.sh"
        docker2.vm.provision "оболочка", путь: "other-steps.sh"
        docker2.vm.provider :virtualbox do |vb|
            vb.customize ["modifyvm", :id, "--memory", "1536"]
        конец
    конец
    
    config.vm.define "docker3" сделать |docker3|
        docker3.vm.box="xxx/centos-stream-8"
        docker3.vm.hostname = "docker3.do1.lab"
        docker3.vm.network "частная_сеть", ip: "192.168.99.103"
        docker3.vm.provision "оболочка", путь: "docker-setup.sh"
        docker3.vm.provision "оболочка", путь: "other-steps.sh"
        docker3.vm.provider :virtualbox do |vb|
            vb.customize ["modifyvm", :id, "--memory", "1536"]
        конец
    конец
конец

файл docker-setup.sh находится ниже:

#!/бин/баш

echo "* Добавить репозиторий Docker..."
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

echo "*Установить Docker..."
dnf install -y docker-ce docker-ce-cli containerd.io

echo "* Включить и запустить Docker..."
systemctl включить докер
systemctl запустить докер

echo "* Добавить бродячего пользователя в группу докеров..."
usermod -aG докер бродяга

файл other-steps.sh находится ниже:

#!/бин/баш

echo "* Добавить хосты..."
эхо "192.168.99.101 docker1.do1.lab docker1" >> /etc/hosts
echo "192.168.99.102 docker2.do1.lab docker2" >> /etc/hosts
эхо "192.168.99.103 docker3.do1.lab docker3" >> /etc/hosts

echo "* Установить дополнительные пакеты..."
dnf установить -y дерево jq git nano

echo "* Брандмауэр - рой - открытые порты..."
брандмауэр-cmd --add-port=2377/tcp --постоянный
брандмауэр-cmd --add-port=4789/udp --постоянный
брандмауэр-cmd --add-port=7946/tcp --постоянный
брандмауэр-cmd --add-port=7946/udp --постоянный

echo "* Брандмауэр - приложение - открыть порт 8080 ..."
брандмауэр-cmd --добавить-порт=8080/tcp --постоянный
брандмауэр-cmd --перезагрузить

Сети ниже:

[vagrant@docker1 и т. д.]$ сеть докеров ls
ИДЕНТИФИКАТОР СЕТИ НАЗВАНИЕ ДРАЙВЕР ОБЛАСТЬ ПРИМЕНЕНИЯ
f2351cd29061 мост мост местный
f91a21d83931 docker_gwbridge локальный мост
c5fc9aedf330 хост хост локальный
oc2i4c2czira входящий оверлейный рой
50fe2b72573c нет нулевой локальный

Контент etc/hosts находится здесь:

[vagrant@docker1 и т. д.]$ хосты кошек
127.0.0.1 локальный хост локальный хост.локальный домен локальный хост4 локальный хост4.локальный домен4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.1.1 докер1.до1.лаборатория докер1
192.168.99.101 докер1.до1.лаборатория докер1
192.168.99.102 докер2.до1.лаборатория докер2
192.168.99.103 докер3.до1.лаборатория докер3

Команда, используемая для запуска контейнера, приведена ниже:

docker container run -d --name web -p 8080:80 -e APP_MODE='test' рой-приложение

Я исследовал тонны статей с той же проблемой, но до сих пор не могу найти решение. Я полагаю, это может быть как-то связано с разрешением DNS рассматриваемого IP-адреса?

Обновление: я открываю в CMD через curl следующие адреса (хост переадресации портов: 8080, гость: 80), если есть какая-либо информация для предоставления, пожалуйста, дайте мне знать: `[vagrant@docker1 ~]$ curl http:/localhost:8080 -> не открывается в браузере

Привет, Докер Рой!



Обслуживается: be93b0268b1d

[vagrant@docker1 ~]$ завиток http://172.17.0.2:80 -> это IP контейнера - не открывается через браузер

Привет, Докер Рой!



Обслуживается: be93b0268b1d

[vagrant@docker1 ~]$ завиток http://192.168.99.101:8080 -> это IP-адрес хоста Docker, который должен открываться через браузер - также безуспешно

Привет, Докер Рой!



Обслуживается: be93b0268b1d
4snok avatar
флаг es
пожалуйста, прикрепите команду `docker run`, которую вы использовали для запуска контейнера.
query_question avatar
флаг cn
Только что добавлен. Спасибо!
djdomi avatar
флаг za
почему бы не использовать nginx в качестве обратного прокси?
djdomi avatar
флаг za
кажется, что он основан на апаче.но вся новая и необходимая информация должна быть вставлена ​​​​в ваш вопрос, даже отредактировав его, никогда не публикуйте его в качестве комментария.
query_question avatar
флаг cn
@djdomi, я обновил пост, указав результаты curl в CMD и то, что он не открывается в браузере. Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.