2016-09-21 6 views
0

Ich möchte einen Datenvolumen-Container einrichten, um mit einem anderen LAMP-Container zusammenzuarbeiten, aber ich fange an, mit Docker zu arbeiten, also habe ich ein paar Zweifel.Wie wird ein Datenvolumencontainer richtig eingerichtet?

Also werde ich zwei Container ausgeführt wird, machen wir es als (nur als Beispiel) genannt:

  • Lampe-Container
  • Daten-Container

ich die einzige Art und Weise kennen zu laufen mehrere Container gleichzeitig verwendet Docker Compose, aber ich weiß nicht, wie Sie die compose.yml Datei einrichten.

Lassen Sie sich, sagte die lamp-container folgende Verzeichnisse hat, wo es speichert Daten:

/data/www # meant to contain web content 
/data/www/default # root directory for the default vhost 
/data/logs/ # Nginx, PHP logs 
/data/tmp/php/ # PHP temp directories 

ich unter /home/<username>/container_files alle von ihnen getrennt in einem lokalen Verzeichnis auf dem Host zugeordnet werden soll (dies ein lokales Verzeichnis auf dem Host wo Docker läuft). Zum Beispiel:

/data/www => /home/<username>/container_files/data/www 
/data/www/default => /home/<username>/container_files/data/www/default 
/data/logs/ => /home/<username>/container_files/data/logs 
/data/tmp/php/ => /home/<username>/container_files/data/php 

Kann ich jeder Punkt auf der richtigen Richtung mit einem compose.yml Beispiel-Datei? Ich habe docs gelesen, ist aber verwirrend für mich, da ich in der Regel VM verwendet werde und in vielerlei Hinsicht vom Container verschieden sind.

Hinweis: Ich sollte hinzufügen, dass dies für einen Benutzer in einem Host denken, ist nicht für mehrere Benutzer in einem Host. Also sollte jede Person, die dieses Setup verwenden möchte, ein eigenes Setup unter ihrem Host haben.

+0

konnten Sie nicht eine 'compose.yml' für jeden Benutzer in ihrem jeweiligen Verzeichnis erstellen und einen Link darauf aufbauen? :: Ich habe das nicht getan, nur gefragt. – Pogrindis

+0

@Pogrindis Entschuldigung, ich folge dir nicht – ReynierPM

+0

So wird jeder Container als ein anderer Benutzer laufen, die 'compose.yml' Route zu ändern, um'/home/$ USER/compose.yml' zu sein und einfach die relative Verzeichnisstruktur in die Yaml mögen './data/logs /' etc? Nur ein Gedanke! – Pogrindis

Antwort

2

Datencontainervolumes sind mit der Einführung von benannten Volumes veraltet. Die benannten Volumes haben alle die gleichen Vorteile wie ein Datencontainer, werden jedoch separat verwaltet und ermöglichen es Ihnen, die Volumes einfacher als Daten und nicht als Pseudocontainer zu verwalten.

Hier ist ein Beispiel eines Docker-compose.yml beiden genannten Volumina und ein anderes Netz zu montieren, werden Sie wahrscheinlich die meisten Linien entfernen, die für Ihr eigenes Szenario nicht gelten:

version: '2' 

volumes: 
    vol-name-1: 
    driver: local 
    vol-name-2: 
    driver: local 

networks: 
    internal1: 
    driver: bridge 

services: 
    service-1: 
    build: . 
    image: my-service:latest 
    volumes: 
     - ./auth:/my-app/auth:ro 
     - ./host-conf:/my-app/conf 
     - vol-name-1:/my-app/data-1 
     - vol-name-2:/my-app/data-2 
    networks: 
     - default 
     - internal1 
    ports: 
     - "8080:80" 
    entrypoint: "my-start.sh" 

In Im obigen Beispiel hat es auch zwei Host-Volumes (Bind-Mounts) gemountet und zeigt, wie ein schreibgeschütztes Volume mit dem :ro auf dem Auth-Volume gemountet wird.

Verwandte Themen