Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:docker [2022/07/31 13:42] – [MACVLAN] adilinux:docker [2023/12/20 10:43] (aktuell) – [Installation] adi
Zeile 3: Zeile 3:
  
 ===== Installation ===== ===== Installation =====
-Quelle: [[https://docs.docker.com/install/linux/docker-ce/ubuntu/]]+Quelle: [[https://docs.docker.com/engine/install/ubuntu/]]
  
-Üblicherweise installiert man Docker unter Ubuntu über RepositoriesUm Verbindungen zu https Repositories aufbauen zu können, benötigt man noch folgendes Paket +Man holt sich den Key des Repos, installiert diesen und fügt das Repo hinzu
-<code bash>apt-get install apt-transport-https</code>+<code bash>sudo apt-get update 
 +sudo apt-get install ca-certificates curl gnupg 
 +sudo install -m 0755 -d /etc/apt/keyrings 
 +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 
 +sudo chmod a+r /etc/apt/keyrings/docker.gpg
  
-Nun holt man sich den Key des Repos, installiert diesen und fügt das Repo hinzu. +# Add the repository to Apt sources
-<code bash>curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +echo \ 
-add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</code>+  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
 +  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ 
 +  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 
 +sudo apt-get update</code>
  
 Danach wird Docker installiert. Danach wird Docker installiert.
-<code bash>apt-get install docker-ce</code>+<code bash>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code>
  
 Um die Installation und den Docker-Daemon zu testen, holt man sich den ersten Container und startet diesen. Um die Installation und den Docker-Daemon zu testen, holt man sich den ersten Container und startet diesen.
Zeile 111: Zeile 118:
 Beispiel <code>[RUN|ENTRYPOINT|CMD] <BEFEHL> <PARAMETER1> <PARAMETER2></code> Beispiel <code>[RUN|ENTRYPOINT|CMD] <BEFEHL> <PARAMETER1> <PARAMETER2></code>
   * Im Shell Format wird der Befehl mit Shell (''/bin/sh -c <BEFEHL>'') ausgeführt.   * Im Shell Format wird der Befehl mit Shell (''/bin/sh -c <BEFEHL>'') ausgeführt.
-  * kann verwendet werden um mehrere gleiche Befehlszeilen zu minimieren \\ Beispiel: <code>apt-get update && apt-get install -y \+  * kann verwendet werden um mehrere gleiche Befehlszeilen zu minimieren \\ Beispiel: <code>apt update && apt install -y \
 nginx \ nginx \
 mysql</code> mysql</code>
Zeile 168: Zeile 175:
 Container können mit dem Parameter ''ip_address'' (docker-compose) eine eigene feste IP-Adresse besitzen. Container können mit dem Parameter ''ip_address'' (docker-compose) eine eigene feste IP-Adresse besitzen.
 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. 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_address'' (docker-compose) angepasst werden und eine eindeutige MAC-Adresse vergeben werden.+Dies kann mit dem Parameter ''mac_address'' (docker-compose: **IST IN VERSION 3 DEPRECATED**) angepasst werden und eine eindeutige MAC-Adresse vergeben werden.
  
 MAC-Adressen werden vom Docker-Daemon generiert. Hier ein Auszug aus der [[https://docs.docker.com/engine/reference/run/#network-settings|Docker Reference]]: <code>By default, the MAC address is generated using the IP address allocated to the container. MAC-Adressen werden vom Docker-Daemon generiert. Hier ein Auszug aus der [[https://docs.docker.com/engine/reference/run/#network-settings|Docker Reference]]: <code>By default, the MAC address is generated using the IP address allocated to the container.
Zeile 187: Zeile 194:
 Hat man einen DCHP-Server, kann man bei diesem eine IP-Adresse für einen Container reservieren. Hat man einen DCHP-Server, kann man bei diesem eine IP-Adresse für einen Container reservieren.
 Danach rechnet man diese in Hexadezimal um und erhält somit die eindeutige MAC-Adresse. 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/-Netzwerk erstellt werden.
 +Hier ein Beispiel (Quelle: [[https://www.networkshinobi.com/docker-host-cant-access-containers-running-on-macvlan/]]):
 +<code>ip link add <NAME_CUSTOM_BRIDGE_DEVICE> link <PHYSICAL_LINKED_DEVICE_TO_NETWORK> type macvlan mode bridge
 +ip addr add <IP_ADDRESS_FROM_MACVLAN> dev <NAME_CUSTOM_BRIDGE_DEVICE>
 +ip link set <NAME_CUSTOM_BRIDGE_DEVICE> up
 +ip route add <IP_ADDRESS_FROM_CONTAINER_IN_MACVLAN>/32 dev <NAME_CUSTOM_BRIDGE_DEVICE></code>
 ===== Images und Container ===== ===== Images und Container =====
  
Zeile 242: Zeile 258:
 # Install any needed packages specified in requirements.txt # Install any needed packages specified in requirements.txt
 RUN \ RUN \
-    apt-get update && \ +    apt update && \ 
-    apt-get upgrade -y && \ +    apt upgrade -y && \ 
-    apt-get install -y apt-utils && \ +    apt install -y apt-utils && \ 
-    cat /tmp/package.list | xargs apt-get install -y+    cat /tmp/package.list | xargs apt install -y
  
 # set Timezone # set Timezone
Navigation
Drucken/exportieren
QR-Code
QR-Code Docker (erstellt für aktuelle Seite)