mirror of
https://github.com/erkules/container-bauen.git
synced 2025-11-10 14:24:01 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d3852d219b | ||
|
|
dfd1b40e38 | ||
|
|
c7c2f32003 | ||
|
|
de4f6d6237 | ||
|
|
1cf3559e2d |
38
README.md
38
README.md
@ -2,8 +2,8 @@
|
||||
|
||||
* Erkan Yanar
|
||||
* erkan@linsenraum.de
|
||||
* xing/linkedin
|
||||
* http://linsenraum.de
|
||||
* xing/[linkedin](https://www.linkedin.com/in/erkanyanar/)
|
||||
* https://linsenraum.de
|
||||
|
||||
Und ja: Freiberufler
|
||||
|
||||
@ -12,11 +12,11 @@ Und ja: Freiberufler
|
||||
|
||||
* Docker/LXC/systemd-nspawn/Rkt
|
||||
* Alles nur Linux
|
||||
* Jeder gute Admin sollte eh alles kennen was jetzt kommt.
|
||||
* Jeder gute Admin sollte eh alles kennen was jetzt kommt
|
||||
|
||||
# Container vs. VM
|
||||
|
||||
* VMs eumulieren Hardware
|
||||
* VMs emulieren Hardware
|
||||
* Ein Container ist nur ein Prozess auf dem Host
|
||||
* Was immer das auch heißt
|
||||
|
||||
@ -67,14 +67,22 @@ Aber am Ende:
|
||||
Imho noch ein `pstree` mitlaufen lassen:
|
||||
|
||||
~~~
|
||||
unshare -p -f -m -u -n -i
|
||||
readlink /proc/self/ns/*
|
||||
unshare -p -f -m -u -n -i
|
||||
readlink /proc/self/ns/*
|
||||
chroot /tmp/container sh
|
||||
ps ax .. und ein Hups
|
||||
~~~
|
||||
|
||||
Genau das machen was da steht. (`mount -t proc proc /proc`)
|
||||
Genau das machen was da steht. Auch wenn nicht (leere Ausgabe!):
|
||||
|
||||
Und schauen ob andere Prozess was in /tmp/container/proc sehen :)
|
||||
~~~
|
||||
mount -t proc proc /proc
|
||||
~~~
|
||||
|
||||
Und schauen ob andere(host) Prozesse was in /tmp/container/proc sehen :)
|
||||
|
||||
Wie "verlassen/terminieren" unseren Container.
|
||||
|
||||
# Mount
|
||||
|
||||
@ -90,8 +98,8 @@ docker container run --volume /var/tmp:/srv --rm -ti ubuntu
|
||||
|
||||
~~~
|
||||
mkdir /tmp/container/haha
|
||||
mount --bind /var/tmp /tmp/container/haha
|
||||
unshare -p -f -m -u -n -i
|
||||
mount --bind /var/tmp /tmp/container/haha
|
||||
chroot /tmp/container sh
|
||||
ls /haha
|
||||
~~~
|
||||
@ -108,7 +116,7 @@ Achso: wieder ein `pstree` mitlaufen lassen :)
|
||||
|
||||
## Cgroups v1
|
||||
|
||||
Sollte nicht mehr funzeen
|
||||
Sollte nicht (im Sinne von wtf. nutzt Du?) mehr funzen
|
||||
|
||||
~~~
|
||||
mkdir /sys/fs/cgroup/pids/lala
|
||||
@ -129,6 +137,8 @@ echo 5 >/sys/fs/cgroup/container/pids.max
|
||||
|
||||
Ruhig ein paar Prozesse im Container starten. Klappt schnell nicht 😎
|
||||
|
||||
Wieder Container beenden
|
||||
|
||||
# Artefakt
|
||||
|
||||
Aber jeder Container schreibt doch ein einen eigenen Layer
|
||||
@ -150,7 +160,7 @@ mkdir /tmp/upper2 /tmp/work2 /tmp/runningcontainer2
|
||||
mount -t overlay overlay -o lowerdir=/tmp/container,upperdir=/tmp/upper2,workdir=/tmp/work2 /tmp/runningcontainer2
|
||||
~~~
|
||||
|
||||
|
||||
Und jetze je nach /tmp/runningcontainer1 und /tmp/runningcontainer2 "reincontainern" (s.o)
|
||||
|
||||
# Netzwerk?
|
||||
|
||||
@ -188,7 +198,7 @@ Haben wir noch Zeit?
|
||||
|
||||
Und wenn schon!
|
||||
|
||||
* Container ohne Network starten. Mit nsenter Paketer installieren
|
||||
* Container ohne Network starten. Mit nsenter Pakete installieren
|
||||
* Netzwerk in einem Container mit Host-Tools debuggen
|
||||
|
||||
|
||||
@ -198,6 +208,12 @@ Und wenn schon!
|
||||
* Von wegen VM :)
|
||||
* I.e. Security ist 0815 Linux-Admin-Knowhow
|
||||
|
||||
# Btw:
|
||||
|
||||
* Capabilities missing
|
||||
* Syscalls missing
|
||||
* SELinux/Apparmor/Landlock missing
|
||||
|
||||
# Links
|
||||
|
||||
[bocker](https://github.com/p8952/bocker)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user