Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:docker:installdocker

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
thoschwiki:docker:installdocker [10.10.2020 19:46]
thosch ↷ Seite von docker:installdocker nach thoschwiki:docker:installdocker verschoben
thoschwiki:docker:installdocker [05.02.2023 17:43] (aktuell)
thosch [Quellen] Link auf 'Install Docker Engine on Debian' ergänzt
Zeile 1: Zeile 1:
 ====== Docker installieren ====== ====== Docker installieren ======
  
-<note>Das ist ein Stub.</note>+Für die Verwendung unter **//macOS//** oder **//Windows//** gibt es den sogenannten **//[[https://docs.docker.com/engine/install/#desktop|Docker Desktop]]//**, der jeweils alle Komponenten enthält. Unter **//Linux//** erfolgt die Installation über den jeweiligen **Paketmanager**.
  
-Die Repositories der meisten Linux-Distributionen dürften //Docker//-Pakete enthalten, nur sind die nicht mehr ganz taufrisch. Daher sollte man das Repository auf download.docker.com einbinden und das jeweils neueste Paket ''docker-ce'' aus diesem Repository installieren.+ 
 +===== Installation unter Linux ===== 
 + 
 +Die Repositories der meisten Linux-Distributionen dürften //Docker//-Pakete enthalten, nur sind diese <del>nicht mehr ganz taufrisch</del> hoffnungslos veraltet. Daher sollte man das Repository auf //download.docker.com// einbinden und das jeweils neueste Paket ''docker-ce'' aus diesem Repository installieren. 
 + 
 +Hierfür gibt es zwei Wege: 
 +  - manuelle Installation 
 +  - automatisierte Installation mit dem //Covenience-Script// 
 + 
 +<note important> 
 +Laut [[https://docs.docker.com/engine/install/debian/|Docker-Dokumentation]] ist unter **//Raspbian//** die Installation nur mit dem //Convinience-Script// möglich.((Eine Aussage zu //Raspberry OS// findet sich leider nicht. Ich würde davon ausgehen, dass hier das Gleiche gilt.)) 
 +</note> 
 +==== Manuelle Installation ==== 
 + 
 +Die manuelle Installation umfasst die üblichen Schritte, die für eine Installation aus Fremdquellen notwendig sind: 
 +  - ggf. vorhandene Version aus den Distributionsquelle deinstallieren (meist nicht nötig((ggf. einfach mal ''docker'' aufrufen))) 
 +  - Pakete installieren, die für die Nutzung von ''apt'' mit //https// notwendig sind (meist bereits erfüllt) 
 +  - GPG-Key von //Docker// einbinden 
 +  - Repository einbinden 
 +  - Installieren 
 + 
 +Das folgende Beispiel stellt die Installation unter **//Ubuntu//** dar. Für andere Distributionen sind bestimmte Parameter anzupassen. Für die einzelnen Distributionen gibt es Beschreibungen in der [[https://docs.docker.com/engine/install#server|Docker Dokumentation]]. 
 + 
 +Ggf. vorhandene Version aus den Distributionsquelle deinstallieren: 
 + 
 +<code> 
 +sudo apt remove docker docker-engine docker.io containerd runc 
 +</code> 
 + 
 +Ggf. fehlende Pakete installieren, die für die Nutzung von ''apt'' mit //https// notwendig sind: 
 + 
 +<code> 
 +sudo apt update 
 +</code> 
 + 
 +<code> 
 +sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release 
 +</code> 
 + 
 +GPG-Key von //Docker// einbinden: 
 + 
 +<code> 
 +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 
 +</code> 
 + 
 +Repository einbinden: 
 + 
 +<code> 
 +echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 
 +</code> 
 + 
 +//Docker// installieren: 
 + 
 +<code> 
 +sudo apt update 
 +</code> 
 + 
 +<code> 
 +sudo apt install docker-ce docker-ce-cli containerd.io 
 +</code> 
 + 
 +Nun sollte //Docker-CE// installiert sein. 
 + 
 +==== Installation mit Convinience-Script ==== 
 + 
 +Neben der Möglickeit die einzelnen Schritte von Hand vorzunehmen, kann man auch das sogenannte //[[https://docs.docker.com/engine/install/centos/|Convenience Script]]// benutzen, das abhängig von der verwendeten Distribution sämtliche Schritte automatisiert durchführt. 
 + 
 +<note warning> 
 +Mit der Verwendung des //Convinience Scripts// gibt man die Kontrolle über den Installationsprozess ab. Das Script wird zwar zunächst nicht mit ''root''-Rechten gestartet, jedoch benutzt es ''sudo''
 + 
 + 
 +Sofern es einer interessierten Seite gelingt, das Script auf der Webserver mit einer Version, die böstrigen Code enthält, zu ersetzen, kann die Sicherheit des Systems gefährdet sein. 
 + 
 +Die Empfehlung, das Script vorab zu untersuchen, ist aus meiner Sicht aufgrund der Komplexität des Scriptes unrealistisch. 
 + 
 +Der sicherste Weg der Installation bleibt somit der hier noch nicht beschriebene manuelle Weg. Der in der Folge dargestellte Ablauf der scriptgesteuerten Installation kann Anhaltpunkte für das manuelle Vorgehen geben. 
 +</note> 
 + 
 +Die aktuelle Version des //Convinience Scripts// herunterladen:
  
 <code> <code>
 curl -fsSL get.docker.com -o get-docker.sh curl -fsSL get.docker.com -o get-docker.sh
 </code> </code>
 +
 +Das Script ausführen (mit Ausgabe des Scriptes):
  
 <code> <code>
Zeile 62: Zeile 142:
          for more information.          for more information.
 </code> </code>
 +
 +===== weitere Anpassungen unter Linux =====
 +
 +
 +==== Anpassen der Rechte (optional) ====
 +
 +Der Befehl ''docker'' kann nur von Mitgliedern der Gruppe ''docker'' oder mit Administratorrechten (z.B. per ''sudo'') aufgerufen werden. Um auf die Verwendung von ''sudo'' verzichten zu können, kann man den jeweiligen Benutzer in die Gruppe ''docker'' aufnehmen:
  
 <code> <code>
-sudo usermod -aG docker me+sudo usermod -aG docker $USER
 </code> </code>
  
-===== docker-compose installieren =====+<note warning> 
 +Da Docker-Container mit ''root''-Rechten auf dem Docker-Host laufen, kann dieses Vorgehen neue Angriffsmöglichkeiten eröffnen (vgl. //[[https://docs.docker.com/engine/security/|Docker daemon attack surface]]//).
  
-Auch bei der Installation von ''docker-compose'' muss man sich entscheiden, über welchen Weg man die Installation vornimmt. In den Repositories findet sich zumeist ein entsprechendes Paket, das jedoch nicht mehr ganz taufrisch ist. Über ''pip3'' kann man eine aktuellere Version installieren. Bei diesem Installationsweg muss bei Updates daran denken, dass man mit ''pip3 Install --upgrade docker-compose'' das Aktualisieren manuell anstoßen muss.+Aus meiner Sicht muss man hier im Einzelfall Pro und Kontra abwägen. Weiterhin würde ich nur Benutzer in die Gruppe ''docker'' aufnehmen, denen man in soweit vertraut, dass die zu den //Sudoers// gehören. 
 +</note>
  
-^ Raspbian Buster (25.09.2020) ^^ +==== Docker Compose installieren ====
-^ Installationsweg ^ verfügbare Version ^ +
-| Repository | 1.21.0-3 | +
-| ''pip3 Install --upgrade docker-compose'' | 1.27.4 |+
  
 +Seit April 2022 ist //Docker Compose// in //Docker// integriert((Ankündigung //[[https://www.docker.com/blog/announcing-compose-v2-general-availability/|Announcing Compose V2 General Availability]]//)). Damit löst auf der Commandline ''docker compose'' (jetzt ohne Bindestrich) als Subcommand von ''docker'' das bisherige ''docker-compose'' (mit Bindestrich) ab.
  
 +Sofern ''docker compose'' nicht zusammen mit //Docker// installiert wurde, kann es mit dem Paket //docker-compose-plugin// (und dessen Abhängigkeiten) installiert werden.
  
 +<code>
 +sudo apt install docker-compose-plugin
 +</code>
  
 +Sofern zuvor ''docker-compose'' als Python-Paket installiert wurde, kann es wie folgt entfernt werden:
  
-Zunächst sind die notwendigen Pakete zu installieren:+<code> 
 +sudo pip3 uninstall docker-compose 
 +</code> 
 + 
 +===== Test der Installation ===== 
 + 
 +Nachdem //Docker CE// oder der //Docker desktop// installiert ist, ist der Zeitpunkt für einen ersten Test gekommen. 
 + 
 +Zunächst ein Blick, ob ''docker'' "funktioniert":
  
 <code> <code>
-sudo apt-get install -y libffi-dev libssl-dev +sudo docker version
-sudo apt-get install -y python3 python3-pip +
-sudo apt-get remove python-configparser+
 </code> </code>
  
-Das Entfernen von ''python-configparser'' ging bei mir ins Leere, weil dieses Paket nicht installiert war.+Es sollte eine Aufstellung mit Versionsinformationen erfolgen.
  
-Danach wird ''docker-compose'' mit ''pip3'' installiert:+Wenn der Aufruf ''docker version'' erfolgreich verlaufen ist, kann man den //hello-world//-Container starten:
  
 <code> <code>
-sudo pip3 -v install docker-compose+sudo docker run hello-world
 </code> </code>
  
 +Zunächst sollte der //Docker// selbständig das entsprechende Image laden und dann der Container starten, der den folgenden Ausgibt.
 +
 +<code>
 +Hello from Docker!
 +This message shows that your installation appears to be working correctly.
 +
 +To generate this message, Docker took the following steps:
 + 1. The Docker client contacted the Docker daemon.
 + 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 +    (amd64)
 + 3. The Docker daemon created a new container from that image which runs the
 +    executable that produces the output you are currently reading.
 + 4. The Docker daemon streamed that output to the Docker client, which sent it
 +    to your terminal.
 +
 +To try something more ambitious, you can run an Ubuntu container with:
 + $ docker run -it ubuntu bash
 +
 +Share images, automate workflows, and more with a free Docker ID:
 + https://hub.docker.com/
 +
 +For more examples and ideas, visit:
 + https://docs.docker.com/get-started/Hello from Docker!
 +</code>
  
 +<note>Die unter 2. ausgegebene Prozessorarchitektur (hier ''amd64'') hängt von der eigenen Hardware ab.</note>
  
 +<note tip>Sofern man wie oben beschrieben [[thoschwiki:docker:installdocker#anpassen_der_rechte_optional|die Rechte des eigenen Nutzer angepasst hat]], sollte man die obigen Behle (zusätzlich) ohne ''sudo'' testen.</note>
  
 +===== Quellen =====
  
  
 Quelle: Quelle:
-  * [[https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl|Installing Docker and Docker Compose on the Raspberry Pi in 5 Simple Steps]] +  * [[https://docs.docker.com/engine/install/|docker docs: Install Docker Engine]] 
 +  * [[https://docs.docker.com/engine/install/debian/|Install Docker Engine on Debian]] 
 +  * [[https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl|Installing Docker and Docker Compose on the Raspberry Pi in 5 Simple Steps]] 
 +  * [[https://docs.docker.com/engine/security/|Docker security]]
  
  
thoschwiki/docker/installdocker.1602352002.txt.gz · Zuletzt geändert: 10.10.2020 19:46 von thosch