Bereitstellen von Wordpress mit Shipyard unter Ubuntu 14.04

Einführung

Shipyard ist ein Verwaltungstool für Docker-Server. Docker ist eine innovative Software für die Containerisierung. Mit Shipyard können Sie sehen, welche Container auf jedem Ihrer Server ausgeführt werden, um vorhandene Container zu starten oder zu stoppen oder neue Container zu erstellen.

Sobald Sie Shipyard auf Ihrem Server eingerichtet haben, können Sie über eine Grafikschnittstelle, eine Befehlszeilenschnittstelle oder eine API darauf zugreifen. Der Werft fehlen einige der erweiterten Funktionen anderer Docker-Tools, die Sie kostenlos einrichten können verwenden, und Sie können es selbst verwalten und hosten.

In diesem Tutorial erfahren Sie, wie Sie Shipyard installieren, mit Ihren Docker-Servern verbinden und neue Container erstellen und starten. Am Ende sollte Shipyard auf Ihrem Server ausgeführt werden, um Ihre Docker-Hosts zu verwalten.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Ubuntu 14.04 Droplet mit dem Docker 1.5.0 Image.

Sie finden die Docker 1.5.0-Image-Option auf der Droplet-Erstellungsseite auf der Registerkarte * Programme * unter * Image auswählen *. Sie können Docker auch auf einem vorhandenen Droplet installieren, indem Sie https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-getting-started-the-tutorial] folgen.

  • Hinweis *: Das Paket + docker.io + aus dem Standard-Repository für Ubuntu 14.04 ist sehr alt (Version 0.9.1). Um Shipyard nutzen zu können, müssen Sie die neueste Version von Docker mit einer der oben aufgeführten Methoden installieren.

Schritt 1 - Werft installieren

In diesem Schritt installieren wir die Werft. Für die Befehle in diesem Lernprogramm sind alle Root-Berechtigungen erforderlich. Daher ist es am einfachsten, sich als Root-Benutzer bei Droplet anzumelden. Wenn Sie als Nicht-Root-Benutzer angemeldet sind, können Sie + sudo su ausführen, um zum Root-Benutzer zu wechseln.

Sobald Docker ausgeführt wird, ist es recht einfach, Shipyard zu installieren, da es als Docker-Images ausgeliefert wird. Sie müssen lediglich die Bilder aus der Docker-Registrierung abrufen und die erforderlichen Container ausführen. Zunächst erstellen wir einen data volume container für die Datenbankdaten der Werft. Dieser Container tut nichts für sich. Es ist eine praktische Bezeichnung für die Position aller Daten der Werft.

docker create --name shipyard-rethinkdb-data shipyard/rethinkdb

Nachdem der Datenvolumencontainer erstellt wurde, können wir den Datenbankserver für Shipyard starten und diese miteinander verknüpfen.

docker run -it -d --name shipyard-rethinkdb --restart=always --volumes-from shipyard-rethinkdb-data -p 127.0.0.1:49153:8080 -p 127.0.0.1:49154:28015 -p 127.0.0.1:29015:29015 shipyard/rethinkdb

Dadurch wird ein Container gestartet, in dem RethinkDB, eine verteilte Datenbank, ausgeführt wird. und stellt sicher, dass nur lokal auf dem Server selbst darauf zugegriffen werden kann. Wenn Sie versuchen, "+ http: //: 49153 +" in Ihrem Browser aufzurufen, sollten Sie nichts sehen.

Jetzt, da die Datenbank der Werft aktiv ist, können wir die Werft selbst ausführen, indem wir einen anderen Container starten und ihn mit der Datenbank verknüpfen.

docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard

Wir können jetzt über den Port "+ 8080 +" auf unsere laufende Shipyard-Instanz zugreifen.

Schritt 2 - Zugang zur Werft

Jetzt, wo die Werft läuft, müssen wir darauf zugreifen. Auf die Werft kann über die GUI, die Befehlszeilenschnittstelle (CLI) oder die API zugegriffen werden. Wir beginnen mit dem Zugriff auf die CLI.

Zugriff auf die Werft über die CLI

Wir können auf die Werft-CLI zugreifen, indem wir einen anderen Container ausführen.

docker run -ti --rm shipyard/shipyard-cli

Das Flag "+ -ti " stellt sicher, dass der Container interaktiv ist, und das Flag " - rm +" macht diesen Container zum Einwegbehälter. Dies bedeutet, dass er automatisch entfernt wird, sobald wir damit fertig sind.

Sie sollten nun die Eingabeaufforderung Shipyard CLI sehen, die so aussieht: + shipyard cli> +. Um eine Liste der verfügbaren Befehle zu erhalten, können Sie + Werfthilfe + eingeben.

Diese Eingabeaufforderung ist noch nicht mit der in Schritt 1 eingerichteten Shipyard-Instanz verbunden. Stellen Sie also zunächst eine Verbindung her:

shipyard login

Sie werden zur Eingabe einer URL aufgefordert. Geben Sie "+ http: //: 8080 " ein. Als Nächstes werden Sie aufgefordert, einen Benutzernamen und ein Kennwort einzugeben. Der Benutzername und das Kennwort sind standardmäßig festgelegt. Geben Sie " admin " als Benutzernamen und " shipyard +" als Passwort ein. Anschließend kehren Sie zur Werftaufforderung zurück.

Jetzt sind Sie als * admin * bei Ihrer Werftinstanz angemeldet. Das Belassen des Standardkennworts ist ein großes Sicherheitsrisiko. Ändern Sie es also.

shipyard change-password

Sie müssen Ihr neues Passwort auswählen und bestätigen. Stellen Sie sicher, dass Ihr neues Passwort sicher ist und Sie es sich merken können. Sie können jetzt * STRG + D * drücken, um die Werft-CLI zu verlassen.

Da die Shipyard-Befehlszeile jedes Mal mit Ihrer Shipyard-Instanz verbunden werden muss, können Sie die Shipyard-Befehlszeile auf jedem System ausführen, das Docker-Container ausführen kann, und sie mit der Shipyard-Instanz verbinden, die auf Ihrem Server ausgeführt wird.

Zugriff auf die Werft über die GUI

Als nächstes werfen wir einen Blick auf die grafische Benutzeroberfläche der Werft. Um darauf zuzugreifen, öffnen Sie "+ http: //: 8080 " in Ihrem Browser. Dies sollte Ihnen den Anmeldebildschirm zeigen. Verwenden Sie den Benutzernamen " admin +" und das von Ihnen gewählte neue Passwort.

Sobald Sie angemeldet sind, zeigt Shipyard die Registerkarte "Motoren" an und warnt Sie, dass sich noch keine Motoren in Ihrem Werftcluster befinden. Eine engine ist ein Docker-Host, der Container ausführen kann. Hier fügen wir jeden Docker-Server hinzu, den Sie mit Shipyard verwalten möchten.

Schritt 3 - Hinzufügen einer Engine

Das Droplet, auf dem wir gerade Shipyard bereitgestellt haben, ist auch ein Docker-Host, sodass wir es mit Shipyard verwalten können. Bevor wir das tun können; Wir müssen jedoch den Server als Engine zu Shipyard hinzufügen.

Standardmäßig ist Docker so konfiguriert, dass es den Unix-Socket "+ / var / run / docker.sock " überwacht. Auf diesen Socket kann jedoch nicht von unserer Shipyard-Instanz aus zugegriffen werden. Wir müssen Docker so konfigurieren, dass auch Anforderungen an einem Port abgehört werden. Bearbeiten Sie dazu die Docker-Konfigurationsdatei mit Ihrem bevorzugten Texteditor. (Hier verwenden wir ` nano +`.)

nano /etc/default/docker

Fügen Sie am Ende diese Zeile hinzu:

DOCKER_OPTS="-H tcp://:4243 -H unix:///var/run/docker.sock"

Dadurch wird sichergestellt, dass Docker Verbindungen über den Port "+ 4243 +" akzeptiert, jedoch nur von Ihrem Server. Starten Sie Docker jetzt neu, um die neue Konfiguration zu laden:

service docker restart

Dadurch werden auch Ihre Shipyard-Container neu gestartet. Da wir die Container mit "+ - restart = always +" ausgeführt haben, sollten sie automatisch wieder hochkommen. Sie können dies überprüfen, indem Sie Folgendes ausführen:

docker ps

Wenn die Shipyard-Container aus irgendeinem Grund nicht gestartet wurden, können Sie sie manuell neu starten, indem Sie + docker start shipyard-rethinkdb shipyard ausführen.

Nachdem Ihr Docker-Host ordnungsgemäß konfiguriert wurde, können wir ihn als Engine zu Shipyard hinzufügen. Greifen Sie auf Ihre Werft-GUI zu und wechseln Sie zur Registerkarte * Engines *. Klicken Sie auf die Schaltfläche * + Hinzufügen *. Es wird so aussehen:

image: https: //assets.digitalocean.com/articles/wordpress_shipyard/1.png [Der Bildschirm 'Add Engine' enthält Eingabefelder wie 'Name' und 'Labels']

Fügen Sie die folgenden Felder hinzu.

  • * Name *: Verwenden Sie einen Namen, mit dem Sie die Engine als Ihr aktuelles Droplet erkennen können, z. B. den Hostnamen Ihres Droplets.

  • * Labels *: Mit den Labels, die Sie Ihrer Engine hinzufügen, können Sie steuern, welche Container darauf ausgeführt werden dürfen. Je nachdem, wofür Sie dieses Droplet verwenden möchten, können Sie Labels wie Production oder Test verwenden.

  • * Adresse *: Verwenden Sie den Docker-Port, den wir gerade geöffnet haben: + http: //: 4243 +

Klicken Sie nun unten auf die Schaltfläche * Hinzufügen *. Die Werft stellt nun eine Verbindung zu Ihrem Docker-Host her, überprüft die Verbindung und fügt sie als Engine hinzu. Sobald dies erledigt ist, werden Sie zurück zur Registerkarte * Engines * geleitet. Die Engine wird zunächst als offline aufgelistet. Warten Sie ein oder zwei Sekunden, und aktualisieren Sie die Seite. Nun sollten Sie in der Lage sein, die Details Ihres Docker-Hosts anzuzeigen.

Schritt 4 - Container mithilfe der Werft bereitstellen

Nachdem wir Shipyard um unseren Docker-Host als Engine erweitert haben, können wir Shipyard zum Starten, Stoppen und Bereitstellen von Containern verwenden.

Greifen Sie auf die Werft-GUI zu und sehen Sie sich die Registerkarte * Container * an. Hier werden alle Container aufgelistet, die auf jedem Docker-Host ausgeführt werden, den Sie zur Werft hinzugefügt haben. Wenn Sie nichts anderes getan haben, sollten auf dieser Registerkarte mindestens drei Container angezeigt werden, von denen zwei ausgeführt werden:

image: https: //assets.digitalocean.com/articles/wordpress_shipyard/2.png [Auf der Registerkarte "Container" sollten "Shipyard", "Shipyard-Rethinkdb" und "Shipyard-Rethinkdb-Data" aufgeführt sein.]

Versuchen wir, ein neues Wordpress-Blog bereitzustellen. Mit den offiziellen Docker-Repo-Images müssen wir einen MySQL- und einen Wordpress-Container bereitstellen.

Klicken Sie auf die Schaltfläche * + Bereitstellen *. Auf dem nächsten Bildschirm können wir den Container für die Bereitstellung konfigurieren. Geben Sie die Informationen in die unten angegebenen Felder ein.

  • * Bild *: Geben Sie "+ Mariadb +" ein. (MariaDB ist eine Open-Source-Abspaltung von MySQL.)

  • * Containername *: Sie können verwenden, was Sie möchten, z. + mysql-test.

  • * Umgebung *: Die Bildbeschreibung zeigt Ihnen, welche Umgebungsvariablen Sie verwenden können. In diesem Fall verwenden Sie + MYSQL_ROOT_PASSWORD = 6f23b328e7 +.

image: https://assets.digitalocean.com/articles/wordpress_shipyard/4.png [Felder: Ports, Typ, Neustartrichtlinie, Labels]

  • * Typ *: Hiermit wird festgelegt, wie der Container auf mehreren Engines bereitgestellt werden soll. Verwenden Sie in diesem Fall "+ service +".

  • * Labels *: Hiermit werden Container den Motoren zugeordnet. Überprüfen Sie einfach eines der Labels, die Sie Ihrem Motor zugewiesen haben.

  • * Neustart-Richtlinie *: Hiermit wird festgelegt, ob der Container nach einem Fehler oder einem Docker-Neustart automatisch neu gestartet werden soll. In diesem Fall lassen Sie es auf "+ no +".

Klicken Sie nun auf * Deploy *. Es dauert eine Weile, bis der Container gestartet wird. Sie sollten zurück zur Containerliste geleitet werden, die nun einen Container mit dem Namen "+ mysql-test +" (oder den von Ihnen verwendeten Namen) enthält.

Sie haben gerade Ihren ersten Docker-Container mit Shipyard bereitgestellt!

Jetzt verwenden wir denselben Prozess, um einen WordPress-Container bereitzustellen, der mit unserem MySQL-Container verknüpft ist. Klicken Sie erneut auf die Schaltfläche * + Bereitstellen * und geben Sie Folgendes ein:

  • * Bild *: + WordPress

  • * Name *: + wordpress-test

  • * Links *: +: mysql

  • * Typ *: + service +

  • * Labels *: Markieren Sie die Labels, die Sie für Ihren Motor verwendet haben.

  • * Neustart-Richtlinie *: Belassen Sie diese Option auf "+ no +".

Es gibt noch etwas zu tun: Wir möchten in der Lage sein, den Webinhalt dieses WordPress-Containers von überall aus zu erreichen, also müssen wir seinen Port "+ 80 +" verfügbar machen. Klicken Sie dazu auf das Pluszeichen neben der Überschrift * Port *.

image: https://assets.digitalocean.com/articles/wordpress_shipyard/5.png [ordne TCP-Port 1234 dem Container-Port 80 zu]

Wählen Sie * TCP * unter * Protokoll *, lassen Sie * IP * leer und geben Sie * 1234 * als * Port * und * 80 * als * Container Port * ein.

Jetzt können Sie auf "Bereitstellen" klicken. Es wird noch eine Weile dauern, bis Sie wieder zur Containerliste zurückgeleitet werden. Die Liste sollte keinen Container mit dem Namen "+ wordpress-test" enthalten. Klicken Sie auf den Link daneben, um weitere Details anzuzeigen.

Bild: https://assets.digitalocean.com/articles/wordpress_shipyard/6.png [Container-Detailbildschirm in der Werft]

Unter "Ports" sehen Sie, dass der Port "+ 80 " des WordPress-Containers jetzt auf dem Port " 1234 +" Ihres Servers veröffentlicht wird. Die Werft ist hilfreich, um diese Auflistung direkt zu einem anklickbaren Link zu machen, über den Sie zur veröffentlichten Adresse gelangen können.

Klicken Sie auf diesen Link. Dadurch gelangen Sie zum WordPress-Installationsassistenten. Sobald Sie die Felder auf dieser Seite ausgefüllt haben, können Sie sich in Ihrem brandneuen WordPress-Blog anmelden und es auch als Website anzeigen.

Fazit

Sie haben Shipyard jetzt erfolgreich zum Bereitstellen einer tatsächlichen Anwendung auf Ihrem Docker-Host verwendet!

Sie haben Shipyard auf Ihrem Server gestartet. Sie sollten auch in der Lage sein, zusätzliche Server mit Docker zu konfigurieren und diese zur Verwaltung mit Ihrer Shipyard-Instanz zu verbinden. Sie haben auch gelernt, wie Sie über die CLI und die GUI eine Verbindung zu Ihrer Shipyard-Instanz herstellen und wie Sie über die GUI neue Container auf Ihrem Docker-Host bereitstellen.

Jetzt können Sie eine der Tausenden von Webanwendungen ausprobieren, die in der Docker Registry verfügbar sind. Beispielsweise können Sie einen Nginx-Container bereitstellen, um Ihr neues WordPress-Blog unter einer besser lesbaren URL zu hosten, wie unter https://www.digitalocean.com/community/tutorials/docker-explained-how-to-containerize-and-use beschrieben -nginx-als-Proxy [dieses Tutorial].