У меня есть следующий сценарий: 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