Ich versuche immer noch, einige Dinge mit Docker zu verstehen, die mit Portainer geholfen haben, aber ich kann kein Tuto für Folgendes finden:
1 - Persistente Daten: Ich möchte einen MariaDB-Container mit persistenter Datenbank ausführen. Daher möchte ich ein Volume „db“ mit einem Einhängepunkt in meinem hinzufügen /home/user
. Leider ist der Einhängepunkt immer in /var/lib/docker/volumes
usw. Wie geht das?
2 - Verknüpfung: Vorausgesetzt, es gelingt mir, den MySQL-Container mit persistenter Datenbank auszuführen, würde ich den Nginx-Container (mit persistenten Daten /home/mountpoint:/data/www
) gerne mit meinem MySQL-Container über eine Umgebungsvariable verknüpfen (Beispiel mit Docker Compose:https://github.com/dadeg/docker-compose-nginx-php7-mysql/blob/master/docker-compose.yml). Mir ist die Netzwerkoption aufgefallen, aber ich glaube nicht, dass sie helfen könnte … Wie verknüpfe ich den Container und erstelle eine Vorlage mit mehr Umgebungsvariablen?
Docker-Compose könnte ein besserer Weg sein?
Vielen Dank im Voraus für jede Hilfe.
jB
Antwort1
Wenn Sie ein Volume über Docker oder Portainer erstellen, wird dieses Volume standardmäßig /var/lib/docker/volumes
auf dem Host gespeichert. Dies ist also das standardmäßige und korrekte Verhalten.
Wenn Sie ein über Portainer aufgerufenes Volume binden möchten db
, erstellen Sie zuerst ein Volume. Gehen Sie dann zu Container > Container hinzufügen > Geben Sie hier Ihren Namen/Ihr Image an > Auf der Registerkarte „Volume“ können Sie das gerade erstellte Volume an einen Pfad im Container binden.
Nun zu Ihrer Verbindung zwischen Ningx und Ihrer Datenbank. Ich empfehle Ihnen, hier das DNS von Docker-Netzwerken zu nutzen.
Erstellen Sie zunächst ein neues Netzwerk (nennen Sie es my-app
beispielsweise). Stellen Sie dann sowohl Ihre Datenbank als auch Ihren Nginx-Container in diesem Netzwerk bereit. Docker DNS ermöglicht Containern im selben Netzwerk automatisch, über ihren Containernamen zu kommunizieren. Wenn Sie also Ihren Datenbankcontainer db
und Ihren Nginx-Container benannt haben nginx
, können Sie db
von dort aus einen Ping ausführen nginx
und umgekehrt.