2017-07-08 1 views
1

Docker hat eine recht bequeme Möglichkeit, den Hauptbehälter mit einem db-Container mit einem Befehl wie zum Verlinken: bereitsWie verwendet man Dockerfile, um den Hauptcontainer mit einem DB-Container zu verknüpfen?

docker run --link db:db user/main 

Dies ist sehr praktisch. Aber ich glaube, es ist immer noch ungeschickt ist im Vergleich zu einem Befehl wie:

docker run user/ultra 

wo ultra ein Behälter ist, der bereits den Hauptbehälter mit dem db Behälter verbindet.

Ist das möglich, dass ich dies erreichen kann, indem ich eine gute Dockerfile schreibe.

Ich glaube, ich kann die Dockerfile mit

FROM user/main 

beginnen, aber wie bekomme ich der zweite Behälter beteiligt und verknüpfen sie mit Dockerfile?

Danke.

+0

Ich denke, die Verwendung von 'Docker-Compose' wäre in diesem Fall eine bessere Option. – Ayushya

Antwort

0
FROM user/main 

, die ein Bild erzeugen würden (build time) basierend auf user/main, die als Verknüpfung zur Laufzeit zwei Behälter zusammen haupt nicht das gleiche ist.

Plus --link ist nun obsolet: siehe "Legacy container links"

Warnung: Das --link Flag ist eine veraltete Legacy-Funktion von Docker. Es kann schließlich entfernt werden.
Sofern Sie unbedingt weiterhin verwenden müssen, empfehlen wir, dass Sie benutzerdefinierte Netzwerke, um die Kommunikation zwischen zwei Behältern anstelle von --link

verwenden, anstatt die links directive in einer docker-compose.yml-Datei verwenden.

Container für den verknüpften Dienst werden auf einem Host-Namen identisch mit dem Alias ​​oder dem Dienstnamen erreichbar sein, wenn keine Alias ​​

angegeben wurden Sie können die Behälter stellen Sie sicher, mit in der richtigen Reihenfolge gestartet werden die depends_on directive.

Dann startet ein einfaches docker-compose up die Container und verbindet sie im selben Netzwerk.

Verwandte Themen