Blog
So stellen Sie eine Docker-Anwendung in der Produktion auf Amazon AWS bereit

Docker hat vor ein paar Monaten den Produktionsstatus erreicht. Aber die Container-Technologie allein reicht nicht aus. Sie benötigen eine vollständige Plattforminfrastruktur, bevor Sie Ihre Docker-Anwendung in der Produktion einsetzen können. Amazon AWS bietet genau das: eine Plattform in Produktionsqualität, die Kapazitätsbereitstellung, Lastausgleich, Skalierung und Überwachung des Anwendungszustands für Docker-Anwendungen bietet. In diesem Blog erfahren Sie, wie Sie eine Docker-Anwendung in fünf einfachen Schritten für die Produktion bereitstellen.
Zu Demonstrationszwecken werden Sie die node.js-Anwendung verwenden, die für CloudFoundry erstellt und in einem früheren Beitrag zur Demonstration von Deis verwendet wurde. Eine wirklich nützliche Anwendung, deren Quellen auf github verfügbar sind.1. Erstellen Sie eine Dockerdatei
Als erstes müssen Sie eine Dockerdatei erstellen, um ein Image zu erzeugen. Das ist ganz einfach: Sie installieren die Pakete node.js und npm, kopieren die Quelldateien und installieren die Javascript-Module.# DOCKER-VERSION 1.0
FROM ubuntu:latest
#
# Install nodejs npm
#
RUN apt-get update
RUN apt-get install -y nodejs npm
#
# add application sources
#
COPY . /app
RUN cd /app; npm install
#
# Expose the default port
#
EXPOSE 5000
#
# Start command
#
CMD ["nodejs", "/app/web.js"]
2. Testen Sie Ihre Docker-Anwendung
Jetzt können Sie das Docker-Image erstellen und es testen. [code language="bash"] $ docker build -t sample-nodejs-cf . $ docker run -d -p 5000:5000 sample-nodejs-cf [/code] Richten Sie Ihren Browser auf xebia.com/blog:5000, klicken Sie auf die Schaltfläche "Start" und Presto!3. Zippen Sie die Quellen
Da Sie nun wissen, dass die Instanz funktioniert, zippen Sie die Quelldateien. Das Image wird auf Amazon AWS auf der Grundlage Ihrer Dockerdatei erstellt. [code language="bash"] $ zip -r /tmp/sample-nodejs-cf-srcs.zip . [/code]4. Docker-Anwendung auf Amazon AWS bereitstellen
Jetzt installieren und konfigurieren Sie die amazon AWS-Befehlszeilenschnittstelle (CLI) und stellen die Docker-Quelldateien auf Elastic Beanstalk bereit. Sie können dies alles manuell tun, aber hier verwenden Sie das Skript deploy-to-aws.sh, das ich erstellt habe. [code language="bash"] $ deploy-to-aws.sh sample-nodejs-cf /tmp/sample-nodejs-cf-srcs.zip demo-env [/code] Nach etwa 8-10 Minuten läuft Ihre Anwendung. Die Ausgabe sollte wie folgt aussehen.INFO: Anwendung sample-nodejs-cf erstellen INFO: Erstellen der Umgebung demo-env für sample-nodejs-cf INFO: Hochladen von sample-nodejs-cf-srcs.zip für sample-nodejs-cf, Version 1412948762. hochladen: ./sample-nodejs-cf-srcs.zip to s3://elasticbeanstalk-us-east-1-233211978703/1412948762-sample-nodejs-cf-srcs.zip INFO: Version 1412948762 der Anwendung sample-nodejs-cf erstellen INFO: demo-env im Status Launching, waiting to get to Ready. ... INFO: demo-env im Status Launching, waiting to get to Ready. INFO: Aktualisierung der Umgebung demo-env mit der Version 1412948762 von sample-nodejs-cf INFO: demo-env im Status Aktualisieren, warten auf Fertig. ... INFO: demo-env im Status Aktualisieren, warten auf Fertig. INFO: Version 1412948762 von sample-nodejs-cf in der Umgebung bereitgestellt INFO: Der aktuelle Status ist Bereit, gehen Sie zu https://demo-env-vm2tqi3qk4.elasticbeanstalk.com
5. Testen Sie Ihre Docker-Anwendung im Internet!
Ihre Anwendung ist jetzt im Internet verfügbar. Rufen Sie die angegebene URL auf und klicken Sie auf Start. Wenn Sie die Anzahl der Instanzen bei Amazon erhöhen, werden diese in der Anwendung angezeigt. Wenn Sie eine neue Version der Anwendung bereitstellen, können Sie beobachten, wie neue Versionen der Anwendung ohne Fehler in der Client-Anwendung erscheinen. Weitere Informationen finden Sie unter Amazon Elastic Beanstalk fügt Docker-Unterstützung hinzu. und Dockerizing a Node.js Web App.Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



