29 Übung 2: Deploying a Real-World Application

29.1 Aufgabenbeschreibung

In dieser Übung werden Sie eine einfache, reale Anwendung in einem Docker-Container bereitstellen. Diese Übung umfasst die folgenden Schritte:

  1. Erstellen Sie ein Dockerfile für eine Beispielanwendung.
  2. Bauen Sie das Docker-Image aus dem Dockerfile.
  3. Starten Sie einen Container aus diesem Image.
  4. Überprüfen Sie den laufenden Container und die Anwendung.
  5. Stoppen und entfernen Sie den Container.

Schritt-für-Schritt-Anleitung:

  1. Erstellen Sie eine einfache Node.js-Anwendung, die “Hello World” ausgibt.
  2. Erstellen Sie ein Dockerfile, um diese Anwendung zu containerisieren.
  3. Bauen Sie das Docker-Image aus dem Dockerfile.
  4. Starten Sie einen Container aus dem erstellten Image.
  5. Überprüfen Sie, ob die Anwendung im Container läuft, indem Sie darauf zugreifen.
  6. Stoppen Sie den Container.
  7. Entfernen Sie den Container.

29.2 Hinweise

29.3 Musterlösung

1. Node.js-Anwendung erstellen:

Erstellen Sie eine Datei app.js mit folgendem Inhalt:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});

Erstellen Sie eine package.json-Datei mit folgendem Inhalt:

{
  "name": "hello-world",
  "version": "1.0.0",
  "description": "A simple Node.js app",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

2. Dockerfile erstellen:

Erstellen Sie eine Datei Dockerfile mit folgendem Inhalt:

# Use an official Node runtime as a parent image
FROM node:14

# Set the working directory in the container
WORKDIR /usr/src/app

# Copy package.json and package-lock.json
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the rest of the application code
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Define the command to run the app
CMD ["npm", "start"]

3. Docker-Image bauen:

Bauen Sie das Docker-Image mit folgendem Befehl:

docker build -t hello-world-app .

4. Container aus dem Image starten:

Starten Sie einen Container aus dem erstellten Image:

docker run -d --name hello-world-container -p 3000:3000 hello-world-app

5. Laufenden Container und Anwendung überprüfen:

Überprüfen Sie die laufenden Container:

docker container ls

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

CONTAINER ID   IMAGE            COMMAND                  CREATED         STATUS         PORTS                    NAMES
a1b2c3d4e5f6   hello-world-app  "docker-entrypoint.s…"   5 seconds ago   Up 3 seconds   0.0.0.0:3000->3000/tcp   hello-world-container

Öffnen Sie Ihren Webbrowser und geben Sie http://localhost:3000 ein. Sie sollten die Nachricht “Hello World!” sehen.

6. Container stoppen:

docker container stop hello-world-container

7. Container entfernen:

docker container rm hello-world-container

Damit haben Sie erfolgreich eine reale Anwendung in einem Docker-Container bereitgestellt, überprüft, gestoppt und entfernt. Diese Übung gibt Ihnen einen praxisnahen Einblick in die Bereitstellung und Verwaltung von Container-Anwendungen.