Mam kilka usług działających w kontenerach doków i jeden serwer nginx przed nimi, wszystkie kontenery w tej samej sieci dokerów. Przed dokowaniem 1.10 stworzyłem kontener dnsmasq i wewnątrz niego ustawiono przelicznik, aby moje usługi mogły zostać odkryte z nginx.Nginx nie otrzymuje hosta z wbudowanego DNS w docker 1.10.1
Po uaktualnieniu do okna dokowanego 1.10.1 obraz dnsmasq nie działa. Po pewnych badaniach próbowałem użyć nowego "osadzonego dns" zamiast adresu 127.0.0.11 (co moim zdaniem powinno być właściwym sposobem użycia w sieci dokerów). Chociaż mogę pingować do kontenera usługowego z kontenera nginx, ale nginx nadal wysyła odpowiedź could not be resolved (3: Host not found)
.
A potem próbował użyć komendy hosta, mam wynik bardzo mylący: (pierwszy adres IP, a następnie nie Znaleziono hosta - ten sam kod co mam z nginx)
# host service-ui
service-ui has address 172.18.0.7
Host service-ui not found: 3(NXDOMAIN)
Host service-ui not found: 3(NXDOMAIN)
Ping działa
/# ping service-ui
PING service-ui (172.18.0.7): 56 data bytes
64 bytes from 172.18.0.7: icmp_seq=0 ttl=64 time=1.123 ms
64 bytes from 172.18.0.7: icmp_seq=1 ttl=64 time=0.131 ms
64 bytes from 172.18.0.7: icmp_seq=2 ttl=64 time=0.178 ms
Po to uproszczona wersja moich konfiguracjach:
doker-compose.yml
version: '2'
services:
nginx:
build: .
ports:
- 80:80
service-ui:
image: service-ui
networks:
default:
external:
name: ssx
nginx.conf wewnątrz pojemnika
location ~ /([a-z]*)/ {
resolver 127.0.0.11;
proxy_pass http://$1-ui:9000$uri$is_args$args;
}
Tutaj też gadatliwy wynik z hostem:
# host -v service-ui
Trying "service-ui"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55237
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;service-ui. IN A
;; ANSWER SECTION:
service-ui. 1800 IN A 172.18.0.7
Received 52 bytes from 127.0.0.11#53 in 1 ms
Trying "service-ui"
Host service-ui not found: 3(NXDOMAIN)
Received 102 bytes from 127.0.0.11#53 in 1 ms
Received 102 bytes from 127.0.0.11#53 in 1 ms
Trying "service-ui"
Host service-ui not found: 3(NXDOMAIN)
Received 102 bytes from 127.0.0.11#53 in 1 ms
Received 102 bytes from 127.0.0.11#53 in 1 ms
moja wersja doker
Client:
Version: 1.10.1
API version: 1.22
Go version: go1.5.3
Git commit: 9e83765
Built: Thu Feb 11 19:27:08 2016
OS/Arch: linux/amd64
Server:
Version: 1.10.1
API version: 1.22
Go version: go1.5.3
Git commit: 9e83765
Built: Thu Feb 11 19:27:08 2016
OS/Arch: linux/amd64
Czy ktoś może mi pomóc dowiedzieć się, co poszło nie tak ? Lub jak zagłębić się w ten problem?
Dziękuję @phobologic, pracował jako urok – waterscar
OMG! Utknąłem na tym problemie już od wielu godzin, pomyślałem, że to moja konfiguracja nginx (jestem całkiem nowa dla nginx), ale w rzeczywistości rozwiązałeś ją @phobologic. Dzięki za pomoc! – nschoe
Wersja 1.11 silnika zawiera teraz obsługę protokołu IPv6. Zobacz ogłoszenie na blogu: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ – Subfuzion