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