Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
linux:docker [2021/05/05 09:03] – [Docker umziehen] adi | linux:docker [2022/08/09 15:00] – [MACVLAN] adi | ||
---|---|---|---|
Zeile 119: | Zeile 119: | ||
| Entrypoint | * wird verwendet um Befehle nach dem Start des Containers auszuführen \\ * wird auch ausgeführt wenn der '' | | Entrypoint | * wird verwendet um Befehle nach dem Start des Containers auszuführen \\ * wird auch ausgeführt wenn der '' | ||
| CMD | * wird verwendet um eine Standard Befehl nach dem start des Containers abzusetzen \\ * Wenn beim '' | | CMD | * wird verwendet um eine Standard Befehl nach dem start des Containers abzusetzen \\ * Wenn beim '' | ||
+ | ===== Konfigurationsparameter ===== | ||
+ | Mögliche Parameter für Konfigurationen können in den Reference-Docs unter docker.com eingesehen werden [[https:// | ||
+ | |||
===== Nützliche Befehle ===== | ===== Nützliche Befehle ===== | ||
dem Befehl '' | dem Befehl '' | ||
Zeile 145: | Zeile 148: | ||
| attach < | | attach < | ||
| exec -it < | | exec -it < | ||
+ | |||
+ | ===== Netzwerk ===== | ||
+ | Docker verfügt über folgende Treiber für die Netzwerkanbindung eines Containers: | ||
+ | |||
+ | ^ Treiber ^ Beschreibung ^ | ||
+ | | bridge | Das ist der Standard, wenn ein Container erstellt wird; befindet sich im NET-Netz hinter der Host Adresse | | ||
+ | | host | Nutzt die Netzwerkschnittstelle des Hosts und ist direkt an dessen IP-Adresse gebunden | | ||
+ | | overlay | Wird verwendet wenn mehrere Docker Hosts sich ein Container-Netzwerk teilen sollen | | ||
+ | | macvlan | Layer 3 Netzwerk; kann verwendet werden um Container direkt an das Netzwerk mit einer eigenen IP-Adresse anzubinden (z.B. mehrere VLANs ) \\ Es können für die Container Netzwerschnittstelle IP-Adressen oder MAC-Adressen definiert werden | | ||
+ | | iplan | ähnlich wie macvlan der nur Layer 2 | | ||
+ | |||
+ | Möchte man die IP-Adressen eines Containers ausgeben lassen, dann macht man das mit '' | ||
+ | Sollen alle IP-Adressen aller Container ausgegeben werden, so kann man diesen Befehl verwenden. | ||
+ | Hierbei muss beachtet werden, wie der Container angebunden ist, so ist der Befehl ggf. anzupassen. | ||
+ | <code bash> | ||
+ | |||
+ | ==== MACVLAN ==== | ||
+ | Bei einem macvlan Netzwerk, werden die Container direkt im Netzwerk behandelt wie jeder normale Host. Sie sind quasi mit einer eigenen Netzwerkschnittstelle im Netzwerk präsent. | ||
+ | Container können mit dem Parameter '' | ||
+ | Soll ein DHCP-Server die IP-Adressen verwalten, so muss man bedenken, dass sich die MAC-Adresse eines Containers ändert, wenn dieser oder der Docker-Daemon neugestartet wird. | ||
+ | Dies kann mit dem Parameter '' | ||
+ | |||
+ | MAC-Adressen werden vom Docker-Daemon generiert. Hier ein Auszug aus der [[https:// | ||
+ | You can set the container’s MAC address explicitly by providing a MAC address via the --mac-address parameter (format: | ||
+ | Be aware that Docker does not check if manually specified MAC addresses are unique.</ | ||
+ | |||
+ | Eine einzigartige MAC-Adresse kann sich man aber relativ leicht zusammenstellen. | ||
+ | Wie immer geben die ersten 3 Stellen der MAC-Adresse den Hersteller (also die OUI => Organizationally Unique Identifier, „organisatorisch eindeutige Kennung“) an, bei Docker ist dies aber nicht der Fall. | ||
+ | Ein Docker-Daemon hat in diesem Fall die ersten 2 Stellen generiert, es geht also nur um die letzten 4 Stellen. | ||
+ | |||
+ | Dazu nimmt man einen Dezimal / Hexadezimal Rechner und wandelt die letzten 4 Oktette der IP-Adresse des Containers um. | ||
+ | |||
+ | Beispiel: | ||
+ | generierte MAC-Adresse: | ||
+ | Hier sind die Stellen '' | ||
+ | Dies ist die IP-Adresse des Containers. | ||
+ | |||
+ | Hat man einen DCHP-Server, | ||
+ | Danach rechnet man diese in Hexadezimal um und erhält somit die eindeutige MAC-Adresse. | ||
+ | |||
+ | === Route von/zu Docker-Host === | ||
+ | Generell sind Docker Container, welche sich in einem macvlan befinden, vom Docker Host isoliert (obwohl beide vielleicht im selben Subnetz sind. | ||
+ | Damit man die Verbindung wiederherstellen kann, muss eine Netzworkbridge mit einer entspr. Route zum Container/ | ||
+ | Hier ein Beispiel (Quelle: [[https:// | ||
+ | < | ||
+ | ip addr add < | ||
+ | ip link set < | ||
+ | ip route add < | ||
===== Images und Container ===== | ===== Images und Container ===== | ||