Am scenariul de mai jos - 3x VM-uri Vagrant sunt rotite din fișierul Vagrant de mai jos, în funcțiune (vizibil în Oracle VirtualBox).
Sunt conectat pe docker1, tipul de rețea este „NAT”, se utilizează redirecționarea porturilor (Guest:8080, Host:8080).
Pot accesa pagina de la localhost:8080 & 127.0.0.1:8080 & 127.0.1.1:8080. Cu toate acestea, nu am acces prin IP (192.168.99.101:8080 este „Dar prea mult timp pentru a răspunde” și nu pot fi contactat).
Vagrant.configure("2") face |config|
config.vm.define „docker1” face |docker1|
docker1.vm.box="xxx/centos-stream-8"
docker1.vm.hostname = „docker1.do1.lab”
docker1.vm.network „private_network”, ip: „192.168.99.101”
docker1.vm.provision „shell”, calea: „docker-setup.sh”
docker1.vm.provision „shell”, calea: „other-steps.sh”
docker1.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1536"]
Sfârşit
Sfârşit
config.vm.define „docker2” face |docker2|
docker2.vm.box="xxx/centos-stream-8"
docker2.vm.hostname = „docker2.do1.lab”
docker2.vm.network „private_network”, ip: „192.168.99.102”
docker2.vm.provision „shell”, calea: „docker-setup.sh”
docker2.vm.provision „shell”, calea: „other-steps.sh”
docker2.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1536"]
Sfârşit
Sfârşit
config.vm.define „docker3” face |docker3|
docker3.vm.box="xxx/centos-stream-8"
docker3.vm.hostname = „docker3.do1.lab”
docker3.vm.network „private_network”, ip: „192.168.99.103”
docker3.vm.provision „shell”, calea: „docker-setup.sh”
docker3.vm.provision „shell”, calea: „other-steps.sh”
docker3.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1536"]
Sfârşit
Sfârşit
Sfârşit
fișierul docker-setup.sh este mai jos:
#!/bin/bash
echo „* Adăugați depozitul Docker...”
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
echo „* Instalați Docker...”
dnf install -y docker-ce docker-ce-cli containerd.io
echo „* Activați și porniți Docker...”
systemctl enable docker
systemctl start docker
echo „* Adăugați un utilizator vagabond la grupul docker...”
usermod -aG docker vagabond
fișierul other-steps.sh este mai jos:
#!/bin/bash
echo „* Adăugați gazde...”
echo „192.168.99.101 docker1.do1.lab docker1” >> /etc/hosts
echo „192.168.99.102 docker2.do1.lab docker2” >> /etc/hosts
echo „192.168.99.103 docker3.do1.lab docker3” >> /etc/hosts
echo „* Instalează pachete suplimentare...”
dnf install -y jq tree git nano
echo "* Firewall - roi - porturi deschise ..."
firewall-cmd --add-port=2377/tcp --permanent
firewall-cmd --add-port=4789/udp --permanent
firewall-cmd --add-port=7946/tcp --permanent
firewall-cmd --add-port=7946/udp --permanent
echo "* Firewall - aplicație - deschideți portul 8080 ..."
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reîncărcare
Rețelele sunt mai jos:
[vagrant@docker1 etc]$ docker network ls
ID REȚEA NUMELE ȘOFER DOMENIUL DE APLICARE
f2351cd29061 pod pod local
f91a21d83931 docker_gwbridge pod local
c5fc9aedf330 gazdă gazdă locală
oc2i4c2czira ingress overlay roi
50fe2b72573c nici unul nul local
Conținutul etc/hosts este aici:
[vagrant@docker1 etc]$ gazde pisici
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.1.1 docker1.do1.lab docker1
192.168.99.101 docker1.do1.lab docker1
192.168.99.102 docker2.do1.lab docker2
192.168.99.103 docker3.do1.lab docker3
Comanda folosită pentru a porni un container este cea de mai jos:
rulați containerul docker -d --name web -p 8080:80 -e APP_MODE='test' swarm-app
Am cercetat o mulțime de articole cu aceeași problemă, dar tot nu găsesc o soluție. Presupun că acest lucru ar putea avea ceva de-a face cu rezoluția DNS a adresei IP în cauză?
Actualizare: Deschid în CMD prin curl adresele de mai jos (Port Forwarding Host:8080, Guest:80), dacă există informații de furnizat, vă rugăm să-mi spuneți:
`[vagrant@docker1 ~]$ curl http:/localhost:8080 -> nu se deschide în browser
Bună, Docker Swarm!
Servit de: be93b0268b1d[vagrant@docker1 ~]$ curl http://172.17.0.2:80 -> acesta este IP-ul containerului - nu se deschide prin browser
Bună, Docker Swarm!
Servit de: be93b0268b1d[vagrant@docker1 ~]$ curl http://192.168.99.101:8080 -> acesta este IP-ul gazdei Docker care ar trebui să se deschidă prin browser - și fără succes
Bună, Docker Swarm!
Servit de: be93b0268b1d