W moich docker-compose.yml
aktach mam następujące informacje. Jednak kontener nie pobiera wartości nazwy hosta. Jakieś pomysły?
dns:
image: phensley/docker-dns
hostname: affy
domainname: affy.com
volumes:
- /var/run/docker.sock:/docker.sock
Kiedy sprawdzam nazwę hosta w kontenerze, nie odbiera affy
.
docker
docker-compose
David Medinets
źródło
źródło
Odpowiedzi:
Od wersji 3 docker-compose możesz po prostu użyć
hostname
pola:źródło
To wydaje się działać poprawnie. Jeśli umieszczę twoją konfigurację w pliku:
A potem przywołaj:
A potem sprawdź nazwę hosta w kontenerze, wszystko wydaje się być w porządku:
źródło
hostname
idomainname
są poprawnymidocker-compose.yml
opcjami. Aktualizacja: właśnie przetestowana, nadal wydaje się działać dobrze (wersja docker-compose 1.4.2, wersja docker 1.8.2).Okazało się, że nazwa hosta nie była widoczna dla innych kontenerów podczas używania
docker run
. Okazuje się, że jest to znany problem (być może bardziej znany element), a część dyskusji dotyczy:Prawidłowym sposobem przypisania nazwy hosta - w kontekście sieci kontenerów - jest zdefiniowanie takiego aliasu :
Niestety to nadal nie działa
docker run
. Sposób obejścia problemu polega na przypisaniu kontenerowi nazwy:I
alias1
może być następnie ping od innych pojemników.AKTUALIZACJA: Jak wskazuje @grilix, należy użyć,
docker-compose run --use-aliases
aby udostępnić zdefiniowane aliasy.źródło
--use-aliases
zdocker-compose run
. Pozwoli to uniknąć zakodowania aliasu wrun
poleceniuNa podstawie dokumentacji Dockera: https://docs.docker.com/compose/compose-file/#/command
Po prostu
hostname: <string>
wstawiłem mój plik docker-compose.Na przykład:
a kontener lb01 odbiera
at-lb01
jako nazwę hosta.źródło
Najprostszym sposobem, jaki znalazłem, jest ustawienie nazwy kontenera w dokumentacji
docker-compose.yml
Zobacz nazwę kontenera . Ma zastosowanie do docker-compose v1 +. Działa dla kontenera do kontenera, a nie z maszyny hosta do kontenera.Teraz powinieneś mieć dostęp
affy
z innych kontenerów przy użyciu nazwy kontenera. Musiałem to zrobić dla wielu serwerów redis w środowisku programistycznym.UWAGA Rozwiązanie działa tak długo, jak długo nie ma potrzeby skalowania. Takich jak spójne indywidualne środowiska programistów.
źródło
Compose 3.7
jedynym sposobem mam hosta usługi bazy danych należy rozpatrywać od wewnątrz innego pojemnika usług tego samego stosu było nazwać usługę jako nazwę hosta. Korzystanie zhostname:
właściwości nie powiodło się. Użycie konstrukcji środowiska HOSTNAME = również nie powiodło się.aliases
nieruchomości zgodnie z opisem wfoz
rozwiązaniu.container_name
ihostname
do tej samej wartości, aby osiągnąć to, czego potrzebujęMusiałem uruchomić kontener freeipa, aby mieć działające kdc i nadać mu nazwę hosta, w przeciwnym razie nie będzie działać. To, co ostatecznie zadziałało, to ustawienie
HOSTNAME
zmiennej env w komponowaniu:Teraz działa:
źródło