2017-12-23 4 views
1

Ich versuche, herauszufinden, ob ich einen separaten Docker Behälter für MySQL mit den folgenden Bedingungen können:Separate MySQL Docker Container

  1. Verwendung für den Build Docker-komponieren
  2. Verwenden Host-OS
  3. verwenden Host-MySQL-Ordner zum Speichern von Daten

I Nummern # 1 und # 2 getan habe erfolgreich ein nur eine Docker Datei aber nicht mit Docker-compose und ich versuche, die Lernkurve zu verkürzen durch ein Studium Arbeiten Beispiel. In Bezug auf # 3 bin ich nicht wirklich sicher, ob es möglich ist. Ich denke an eine symbolische Verbindung, aber nicht wirklich sicher.

Vielen Dank.

+0

Sind Sie mit [Docker volumes] (https://docs.docker.com/engine/admin/volumes/volumes/)? – jwodder

+0

Ja. Ich verstehe dich, aber kannst du es weiter erklären? –

+0

Hängen Sie den mysql-Ordner des Hosts als Volume ein, indem Sie das '-v' -Argument zu' docker run' (oder der entsprechenden Konfiguration in 'docker-compose') verwenden. – larsks

Antwort

0

Sie können und sollten MySQL in einem separaten Container ausführen. Sie können dies als separates Docker-Image erstellen oder die zwei separaten Container aus demselben Docker-Image ausführen. Die Container können entweder von docker-compose oder bash gestartet werden.

In früheren Versionen von Docker (v1.0) war meine Erfahrung mit Andockvolumes nicht positiv. Noch heute mounte ich das Host-Betriebssystem für dauerhafte Datenspeicherung mit -v, und das hat gut für mich gearbeitet. Die Option -v ermöglicht die Verwendung des Datenordners des Host-Betriebssystems.

1

Wie bereits mit # 1 und # 2 und in Bezug auf # 3 Punkt, ja können Sie das Host-Volume auf Container-Volume mounten und es kann durch den Docker-Compose ausgeführt werden.

docker komponieren ist ein Werkzeug, das zum Ausführen mehrerer Container und zum Konfigurieren der diese Container verwendet.Docker komponieren verwendet .yml-Datei für die Konfiguration.

Sie müssen zuerst von Docker Bild erstellen dockerfile dann

https://docs.docker.com/compose/install/#install-compose

Dann .yml Datei erstellen und die MySQL-Konfiguration wie unten beispielsweise installieren Docker-komponieren definieren.

mysqldb: 
     image: mysql 
     container_name: ${MYSQL_HOST} 
     restart: always 
     environment: 
      - MYSQL_DATABASE=${MYSQL_DATABASE} 
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} 
      - MYSQL_USER=${MYSQL_USER} 
      - MYSQL_PASSWORD=${MYSQL_PASSWORD} 
     ports: 
      - "3306:3306" 
     volumes: 
- "./data/db/mysql:/var/lib/mysql" 

https://docs.docker.com/compose/overview/

Verwandte Themen