So erstellen Sie eine MySQL-Instanz mit Docker Compose

Warum Docker Compose?

Mit Docker Compose erhalten wir alle Vorteile von Docker und mehr. Docker erstellt eine virtuelle Umgebung (oder einen Container), in der der Code ausgeführt werden kann. Was Docker Compose hinzufügt, ist die Orchestrierung und Organisation mehrerer Container. Während dieses Lernprogramm nur einen Container für unsere MySQL-Instanz erstellt, können Sie mit Docker Compose auch alle Ihre verschiedenen Dienste gleichzeitig ausführen, wenn Ihr Projekt zu wachsen beginnt.

Holen wir uns Docker

Mac & Windows Installation

Befolgen Sie einfach die Installationsanleitung für Docker für Mac oder Windows hier.

Linux-Installation

Laden Sie zunächst das Docker-Repository herunter. Führen Sie Folgendes aus:

sudo apt-get update

Gefolgt von:

sudo apt-get install \
    apt-transport-https \
    ca-Zertifikate \
    locken \
    Software-Eigenschaften-Common

Nächster Lauf:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Um zu überprüfen, ob Sie das Repository haben, führen Sie Folgendes aus:

sudo apt-key fingerprint 0EBFCD88

Und Sie sollten so etwas bekommen:

pub 4096R / 0EBFCD88 2017-02-22
      Schlüsselfingerabdruck = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) 
sub 4096R / F273FCD8 2017-02-22

Um Docker zu installieren, müssen Sie nur Folgendes tun:

sudo apt-get update && sudo apt-get docker-ce installieren

So führen Sie Docker Compose aus:

sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s) - $ (uname -m)" -o / usr / local / bin / docker-compose && sudo chmod + x / usr / local / bin / docker-compose

Um zu testen, ob Ihre Installation korrekt eingerichtet wurde, führen Sie Folgendes aus:

docker-compose --version

Und Sie sollten etwas Ähnliches bekommen:

Docker-Compose Version 1.22.0, Build 1719ceb

Einrichten

Führen Sie Docker nach der Installation aus und erstellen Sie die Datei calleddocker-compose.yml. Diese Datei ist im Wesentlichen eine Anleitung für Docker.

Fügen Sie Folgendes ein:

version: '3.3'
Dienstleistungen:
  db:
    image: mysql: 5.7
    Neustart: immer
    Umgebung:
      MYSQL_DATABASE: 'db'
      # Sie müssen also nicht root verwenden, können es aber, wenn Sie möchten
      MYSQL_USER: 'Benutzer'
      # Sie können ein beliebiges Passwort verwenden
      MYSQL_PASSWORD: 'Passwort'
      # Passwort für den Root-Zugriff
      MYSQL_ROOT_PASSWORD: 'Passwort'
    Häfen:
      # : 
      - '3306: 3306'
    entlarven:
      # Öffnet Port 3306 am Container
      - '3306'
      # Wo unsere Daten gespeichert werden
    Bände:
      - my-db: / var / lib / mysql
# Nennt unser Volumen
Bände:
  meine-db:

Toll, jetzt können wir unseren Container starten. Wechseln Sie in Ihrer Befehlszeile oder Ihrem Terminal in das Verzeichnis, in dem Sie die Datei docker-compose.yml erstellt haben, und führen Sie docker-compose up aus (dies kann beim ersten Ausführen eine Weile dauern, da Docker die Container ziehen muss). Wir sollten jetzt eine MySQL-Instanz auf localhost haben: 3306.

Ihre Ausgabe sollte ungefähr so ​​aussehen:

Und das ist es! Wenn Sie Datenbanken von MySQL auf etwas anderes ändern möchten, müssen Sie lediglich die Datei docker-compose.yml ändern und Docker Compose neu starten.

Hier ist ein einfaches Postgres-DB-Beispiel:

version: '3.3'
Dienstleistungen:
  db:
    Bild: Postgres
    Neustart: immer
    Umgebung:
      POSTGRES_PASSWORD: Passwort

Wie Sie sehen können, bietet Docker Compose uns eine Menge Flexibilität und Konfigurationen. Wir können die Datenbank in ca. 30 Sekunden wechseln, wenn wir wollten!

Spielen wir jetzt mit unserer neuen Datenbank!

Verbindung mit MySQL Workbench herstellen

MySQL Workbench herunterladen

Beginnen Sie hier mit dem Herunterladen von MySQL Workbench.

Herstellen einer Verbindung zu Ihrer MySQL-Instanz

Als nächstes stellen Sie eine neue Verbindung wie folgt her:

Klicken Sie auf "OK" und klicken Sie auf Ihre Verbindung.

Jetzt können wir mit unserer Datenbank nach Belieben spielen.

Herunterfahren und Aufräumen

Wir möchten nicht, dass unser Image rund um die Uhr läuft, aber das Herunterfahren kann etwas schwierig sein.

Drücken Sie in Ihrem Terminal die Tastenkombination Strg + C, um den Container ordnungsgemäß zu beenden. Führen Sie anschließend docker-compose aus, und Ihr Container sollte heruntergefahren werden. Jetzt müssen Sie nur noch einmal docker-compose ausführen, und Sie werden genau dort sein, wo Sie aufgehört haben.

Wenn Sie für alles einen Neustart wünschen, führen Sie docker system prune -a und docker volume prune aus. Der erste Befehl entfernt alle nicht verwendeten Container und der zweite alle nicht verwendeten Volumes. Ich empfehle dies ziemlich oft zu tun, da Docker gerne alles verstaut, wodurch sich die Gigabyte summieren.

Fazit

Mit Docker Compose können wir eine containerisierte Datenbank in einer sicheren, isolierten Umgebung ausführen und gleichzeitig den Datenbanktyp sofort ändern. Darüber hinaus können wir in einem großen Projekt Docker Compose voll ausnutzen und alle unsere verschiedenen Services gleichzeitig orchestrieren. Wie Sie gesehen haben, mussten wir nur eine YAML-Datei kopieren / einfügen und docker-compose ausführen, um eine voll funktionsfähige Entwicklungsdatenbank zu haben.

Vielen Dank fürs Lesen und ich hoffe, dass Sie Docker bei Ihrem nächsten Projekt ausprobieren!