2016-05-23 5 views
1

Ich schaue derzeit auf Docker, um zu sehen, was es für mich tun kann. Der Anwendungsfall, den ich habe, ist ein Test/Dev-Server, der zum Beispiel Tomcat & My-SQL ausführen wird. Was ich nicht verstehe, ist der beste Weg, dies einzurichten?Docker-Architektur für einen Test-Server

Erstelle ich ein Bild für TomCat und ein anderes für MySQl? Oder stelle ich beide in das gleiche Bild?

Wenn es separate Bilder sind, sollten sie separate Container sein?

Antwort

1

Es wird empfohlen, die Datenbank und den Webserver auf ihre eigenen Co zu isolieren oder simulieren Sie, wie Ihre Architektur in prod aussehen wird, die wahrscheinlich separate Container für das Web und die db wären.

Kernpunkte der Forschung/lernen, wenn Sie separate Behälter wählen:

  1. Verwendung vordefinierter Bilder als andere
  2. Link, um die Behälter mit dem traditionellen LINK in Docker vorgeschlagen haben, oder sie unter dem gleichen Netz gestellt (aussehen Container-Vernetzung)
  3. Verwenden Sie Docker Compose, um die Container-Koordination zu vereinfachen, sodass Sie Container nicht manuell manuell starten müssen, da dies umständlich sein kann, je mehr Container Sie haben.

Ich hoffe, das hilft. Haben Sie einen guten Tag.

1

Ja, verwenden Sie für jede Anwendung bereits vorhandene Bilder. Sie können "offizielle" von Docker Hub bekommen.

Wenn Sie die Möglichkeit haben, installieren Sie einfach eine virtuelle Maschine mit dem Linux-Geschmack Ihrer Wahl. Wählen Sie das entsprechende Docker-Paket für diesen Geschmack.

Dann durchsuchen Sie Docker Hub für Bilder, die Sie nützlich finden können, folgen Sie ihren Anweisungen, um loszulegen und du bist dran!

Tauchen Sie in die Dokumente - vielleicht gehen Sie und holen Sie sich ein paar (e) Bücher.

Unweigerlich werden Sie mit so etwas wie

docker pull <image> 
docker run <options> <image> 

<image> sind das Docker Bild, das Sie vom Hub erhalten beginnen - mySQL und Tomcat in Ihrem Fall. <options> sind vielfältig und hängt davon ab, was Sie tun möchten, und Sie werden experimentieren.

Ein konkretes Beispiel für Ihren Fall:

docker pull mysql 
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 
docker pull tomcat:8.0 
docker run -it --name tomcat --link some-mysql:mysql -p 8888:8080 tomcat:8.0 

Dies wird bis mySQL und dann Tomcat starten, während zusammen diese beiden Behälter verbindet. Nur um Ihnen zu zeigen, was getan werden kann.

Hinweis: Wenn Sie ein neues Image vom Hub herunterladen, müssen Sie nicht zuerst docker pull ausführen. Im Allgemeinen habe ich mehr Kontrolle über das Image-Tag/die Image-Version.

1

Der bevorzugte Weg besteht darin, offizielle Bilder von Docker Hub zu verwenden. MySQL https://hub.docker.com//mysql/ Tomcat https://hub.docker.com//tomcat/

Dann, wenn Sie für längere Zeit Daten in MySQL wollen bestehen bleiben, würden Sie einen anderen „Datencontainer“ benötigen MySQL-Daten zu speichern. Andernfalls verlieren Sie jedes Mal, wenn Sie den MySQL-Container neu erstellen, alle Datenbanken.

können Sie starten MySQL Container so einfach wie

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=[put your password] mysql 

und Tomcat-Container so einfach wie

docker run -d -p 8888:8080 --link mysql:mysql tomcat:8.0 

Dann sind Sie zu Ihrem MySQL-Server aus tomcat Anwendung einfach als mysql beziehen (Dieser Hostname wird in die richtige IP-Adresse aufgelöst.

Verwandte Themen