Skip to content
Snippets Groups Projects
user avatar
timbastin authored
4e5c6510
History
Name Last commit Last update
..
miniserver
README.md

Praktikum 2

Aufgabe 1

a)

Client: Docker Engine - Community
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:48:02 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:45:53 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

b)

docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Aufgabe 2 - Primitiver Webserver

b)

Das Golang Programm kann mit go run main.go ausgeführt werden.

c)

# Basis Image von Dockerhub
FROM golang:1.18

# Wechsel in das Directory /usr/app
# Wird der Container mittels docker-compose exec ... betreten,
# befindet sich der Nutzer standardmäßig im /usr/app Ordner
WORKDIR /usr/app

# Copiere alle Dateien aus dem DIESEM (relativ) Ordner in /usr/app
COPY . .
# Bauen des Programms
RUN go build -o miniserver

# Festlegen, welches Kommando beim Starten des Servers ausgeführt werden soll.
# docker run ....
CMD ["./miniserver"]

d)

docker build -t miniserver.v1 .

e)

docker run -p 20221:3000 miniserver.v1

Aufgabe 3

c)

# Basis Image von Dockerhub
FROM golang:1.18

# Wechsel in das Directory /usr/app
# Wird der Container mittels docker-compose exec ... betreten,
# befindet sich der Nutzer standardmäßig im /usr/app Ordner
WORKDIR /usr/app

# Copiere alle Dateien aus dem DIESEM (relativ) Ordner in /usr/app
COPY . .
# Bauen des Programms
RUN go build -o miniwhoami

# Festlegen, welches Kommando beim Starten des Servers ausgeführt werden soll.
# docker run ....
CMD ["./miniwhoami"]

docker build -t miniwhoami.v1 .

d)

docker run --name miniwhoami_1 -p 20231:3000 miniwhoami.v1 & docker run --name miniwhoami_2 -p 20232:3000 miniwhoami.v1

Aufgabe 4

a)

docker exec -i --tty <CONTAINER ID> bash

Ausgeführt werden konnte nur das curl Kommando.

b)

docker run -it --net container:miniwhoami_1 nicolaka/netshoot

Es konnten alle Kommandos ausgeführt werden. Der netshoot container teilt sich nun ein Netzwerkinterface mit dem miniwhoami_1 Container.

c)

Es konnte über die lokale IP-Adresse auf den miniwhoami_2 Container zugegriffen werden. Beide Container befinden sich im selben Netzwerk.

d)

Beide Container befinden sich im selben Docker-Netzwerk.

e)

Ja, es konnte auf heise.de zugegriffen werden. Der Container hat Zugriff auf das Internet.

f)

default via 172.17.0.1 dev eth0 # eth0 ist das Netzwerkinterface des Containers. Die 172.17.0.1 Adresse, ist die Adresse des Gateways.
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.3