In meiner docker-compose.yml
Datei habe ich Folgendes. Der Container nimmt jedoch den Hostnamenwert nicht auf. Irgendwelche Ideen?
dns:
image: phensley/docker-dns
hostname: affy
domainname: affy.com
volumes:
- /var/run/docker.sock:/docker.sock
Wenn ich den Hostnamen im Container überprüfe, wird er nicht erfasst affy
.
docker
docker-compose
David Medinets
quelle
quelle
Antworten:
Ab Docker-Compose Version 3 können Sie einfach ein
hostname
Feld verwenden:quelle
Dies scheint richtig zu funktionieren. Wenn ich Ihre Konfiguration in eine Datei lege:
Und dann bringen Sie die Dinge zur Sprache:
Und dann überprüfen Sie den Hostnamen im Container, alles scheint in Ordnung zu sein:
quelle
hostname
unddomainname
gültigedocker-compose.yml
Optionen. Update: gerade getestet, scheint immer noch gut zu funktionieren (Docker-Compose-Version 1.4.2, Docker-Version 1.8.2).Ich habe festgestellt, dass der Hostname bei der Verwendung für andere Container nicht sichtbar war
docker run
. Dies stellt sich als bekanntes Problem heraus (möglicherweise eher als bekanntes Merkmal), wobei ein Teil der Diskussion Folgendes ist:Die richtige Art, einen Hostnamen zuzuweisen - in Bezug auf das Containernetzwerk - besteht darin , einen Alias wie folgt zu definieren :
Leider funktioniert das immer noch nicht
docker run
. Die Problemumgehung besteht darin, dem Container einen Namen zuzuweisen:Und
alias1
kann dann aus den anderen Containern gepingt werden.quelle
--use-aliases
mit verwendendocker-compose run
. Dadurch wird vermieden , die alias hartzucodieren auf demrun
BefehlBasierend auf der Docker-Dokumentation: https://docs.docker.com/compose/compose-file/#/command
Ich habe einfach
hostname: <string>
meine Docker-Compose-Datei eingefügt.Z.B:
und Container lb01 wird
at-lb01
als Hostname übernommen.quelle
Der einfachste Weg, den ich gefunden habe, besteht darin, einfach den Containernamen in der Dokumentation
docker-compose.yml
Siehe Containername festzulegen. Es gilt für Docker-Compose v1 +. Es funktioniert von Container zu Container, nicht von Host-Computer zu Container.Jetzt sollten Sie
affy
über den Containernamen von anderen Containern aus zugreifen können . Ich musste dies für mehrere Redis-Server in einer Entwicklungsumgebung tun.HINWEIS Die Lösung funktioniert so lange, wie Sie nicht skalieren müssen. Wie konsistente individuelle Entwicklerumgebungen.
quelle
Compose 3.7
dem einzigen Weg , habe ich den Datenbankdienst Hostnamen aus einem anderen Service - Containern aus dem gleichen Stapel zu sehen war , den Dienst als Hostname zu nennen. Die Verwendung derhostname:
Eigenschaft ist fehlgeschlagen. Die Verwendung der Umgebung HOSTNAME = Konstrukt ist ebenfalls fehlgeschlagen.aliases
in derfoz
Lösung beschriebene Eigenschaft zu verwenden .container_name
undhostname
auf den gleichen Wert , was zu erreichen Ich braucheIch musste den Freeipa-Container drehen , um einen funktionierenden KDC zu haben, und musste ihm einen Hostnamen geben, sonst würde er nicht ausgeführt. Was letztendlich für mich funktioniert hat, ist das Setzen der
HOSTNAME
env-Variablen in compose:Jetzt geht es:
quelle