docker

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
docker [19/09/2022 - 17:59] – [Custom networks] thommie4docker [14/02/2024 - 14:42] – [Kubernetes] admin
Zeile 9: Zeile 9:
   * Docker UI: [[http://linoxide.com/linux-how-to/setup-dockerui-web-interface-docker/|http://linoxide.com/linux-how-to/setup-dockerui-web-interface-docker/]]   * Docker UI: [[http://linoxide.com/linux-how-to/setup-dockerui-web-interface-docker/|http://linoxide.com/linux-how-to/setup-dockerui-web-interface-docker/]]
  
-Docker Daten-Ablage verlagern+Docker Daten-Ablage auf btrfs Partition verlagern
  
 <code> <code>
Zeile 15: Zeile 15:
  
 { {
-  "graph":  "/mnt/data/docker"+   "storage-driver": "btrfs", 
 +   "data-root":  "/mnt/data/docker"
 } }
 </code> </code>
Zeile 138: Zeile 139:
 Achtung: wieder raus mit **CTRL-p CTRL-q. **Details siehe [[https://docs.docker.com/engine/reference/commandline/attach/|https://docs.docker.com/engine/reference/commandline/attach/]] Achtung: wieder raus mit **CTRL-p CTRL-q. **Details siehe [[https://docs.docker.com/engine/reference/commandline/attach/|https://docs.docker.com/engine/reference/commandline/attach/]]
  
-===== Docker Compose V2=====+===== Docker Compose =====
  
-Docker Compose erzeugt Docker Applikationen, die aus mehreren Containern bestehen. docker-compose up startet alles im Verbund.+Docker Compose erzeugt Docker Applikationen, die aus mehreren Containern bestehen. docker compose up startet alles im Verbund.
  
   - Das Dockerfile definiert die Laufzeit-Umgebung   - Das Dockerfile definiert die Laufzeit-Umgebung
Zeile 146: Zeile 147:
   - "docker compose up" erzeugt und startet die gesamte Applikation   - "docker compose up" erzeugt und startet die gesamte Applikation
  
-Achtung: Die python basierten Docker Versionen (V1) in den Distro-Repos sind meist veraltet. Es empfiehlt sich, die V2 aus https://github.com/docker/compose zu benutzen, die in GOLANG neu geschrieben wurde.+Achtung: Die python basierten Docker Versionen (V1) in manchen Distro-Repos sind veraltet. Es empfiehlt sich, die V2 aus https://github.com/docker/compose zu benutzen, die in GOLANG neu geschrieben wurde. Installation siehe https://github.com/docker/compose/ 
  
-Installation siehe https://github.com/docker/compose/+<badge>HinweisFür Raspis wird das Binary für ...-linux-armv7 benutzt (ARM Architektur)</badge>
  
 Um docker-compose files im Format V1 auszuführen, gibt es "compose switch": https://github.com/docker/compose-switch. Dafür muss das golang binary in /usr/local/lib/docker/cli-plugins/docker-compose vorhanden sein. composer switch bindet composer V2 so ein, dass man mit update-alternatives zwischen V1 (python) und V2 (golang) wechseln kann. Um docker-compose files im Format V1 auszuführen, gibt es "compose switch": https://github.com/docker/compose-switch. Dafür muss das golang binary in /usr/local/lib/docker/cli-plugins/docker-compose vorhanden sein. composer switch bindet composer V2 so ein, dass man mit update-alternatives zwischen V1 (python) und V2 (golang) wechseln kann.
Zeile 181: Zeile 182:
 </code> </code>
  
-Update per docker-compose+===== compose yaml validieren ===== 
 + 
 +<code> 
 +docker compose -f docker-compose-pro.yaml config 
 +</code> 
 + 
 + 
 +====== Update per docker compose ======
  
 Update der Images, die im compose file referenziert sind Update der Images, die im compose file referenziert sind
  
 <code> <code>
-docker-compose pull+docker compose -f docker-compose-pro.yaml pull 
 </code> </code>
  
Zeile 192: Zeile 201:
  
 <code> <code>
-docker-compose up --build+docker compose -f docker-compose-pro.yaml up --build 
 </code> </code>
 +<code>
 +docker compose -f docker-compose-pro.yaml up --force-recreate --build -d
 +
 +</code>
 +
 +Docker Compose startet die Container, aber nicht daemonisiert. Dazu -d hinzufügen:
  
 <code> <code>
-docker-compose up --force-recreate --build -d+docker compose up -d 
 </code> </code>
 +
 +Üblicherweise nimmt man dafür systemd.
 +
  
 ===== Docker Netzwerke ===== ===== Docker Netzwerke =====
Zeile 220: Zeile 240:
  
 sieht man den Zustand eines Docker networks sieht man den Zustand eines Docker networks
 +
 ==== Custom networks ==== ==== Custom networks ====
  
Zeile 245: Zeile 266:
  
 <code> <code>
-docker logs --follow+docker logs --follow [containerid] 
 </code> </code>
 +
  
 ===== Docker volumes ===== ===== Docker volumes =====
  
-[[https://docs.docker.com/engine/admin/volumes/volumes/|https://docs.docker.com/engine/admin/volumes/volumes/]]+Volumes sind Verzeichnisse/Dtane, die vom lokalen Docker Host in den Container gemappt werden. 
 +Volumes werden vom Docker Dämon gemanagt, die Daten liegen innerhalb des vom Docker Dämon verwalteten Speicherbereichs.
  
 +Doku: https://docs.docker.com/engine/admin/volumes/
  
-===== Kubernetes =====+In compose: 
 +<code> 
 +services: 
 +  frontend: 
 +    image: node:lts 
 +    volumes: 
 +      - myapp:/home/node/app 
 +volumes: 
 +  myapp: 
 +    external: true 
 +</code> 
 + 
 +Syntax: **[lokales volume Verzeichnis Host]:[Verzeichnis im Container]** 
 + 
 +Immer relativ zum compose file gesehen! 
 +===== Docker build ===== 
 + 
 +<code> 
 +thommie@odysseus3:~/git/gitea/dockerbuilds/myradius> docker build -f myradius.docker . 
 +Sending build context to Docker daemon  5.632kB 
 +Step 1/3 : FROM freeradius/freeradius-server:latest 
 + ---> 0a093ead10b6 
 +Step 2/3 : COPY raddb/ /etc/raddb/ 
 + ---> 096f00c66db0 
 +Step 3/3 : EXPOSE 1812-1813/udp 
 + ---> Running in 6d5f572b0a8b 
 +Removing intermediate container 6d5f572b0a8b 
 + ---> c6c0d41f944a 
 +Successfully built c6c0d41f944a 
 +</code>
  
-  * Auf Ubuntu: [[http://thedevopsblog.com/containers/kubernetes-1-4-setup-in-ubuntu-16-04/|http://thedevopsblog.com/containers/kubernetes-1-4-setup-in-ubuntu-16-04/]] 
-  * Offizielle Tutorials: [[https://kubernetes.io/docs/tutorials/kubernetes-basics/|https://kubernetes.io/docs/tutorials/kubernetes-basics/]] 
-  * weitere: [[https://marc.wäckerlin.ch/computer/kubernetes-on-ubuntu-16-04#Cleanup_In_Case_of_Unsolvable_Problems|https://marc.wäckerlin.ch/computer/kubernetes-on-ubuntu-16-04]] 
  
 ==== Begrifflichkeiten ==== ==== Begrifflichkeiten ====
Zeile 266: Zeile 317:
   * Service: Funktion, die von einem oder mehreren Pods bereitgestellt wird   * Service: Funktion, die von einem oder mehreren Pods bereitgestellt wird
  
-==== Minikube - zum Üben ==== 
  
-Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day. +===== Portainer =====
- +
-[[https://github.com/kubernetes/minikube|https://github.com/kubernetes/minikube]] +
- +
-''curl -Lo minikube [[https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64|https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64]] chmod +x minikube mv minikube /usr/local/bin/ '' +
- +
-**Linux CI Installation Which Supports Running in a VM (example w/ kubectl installation)** +
- +
-''curl -Lo minikube [[https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64|https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64]] chmod +x minikube '' +
- +
-dann +
- +
-''curl -Lo kubectl [[https://storage.googleapis.com/kubernetes-release/release/|https://storage.googleapis.com/kubernetes-release/release/]] $( curl -s [[https://storage.googleapis.com/kubernetes-release/release/stable.txt|https://storage.googleapis.com/kubernetes-release/release/stable.txt]] ) /bin/linux/amd64/kubectl chmod +x kubectl '' +
- +
-und +
- +
-''export MINIKUBE_WANTUPDATENOTIFICATION=false export MINIKUBE_WANTREPORTERRORPROMPT=false export MINIKUBE_HOME$HOME export CHANGE_MINIKUBE_NONE_USER=true mkdir $HOME /.kube || true touch $HOME /.kube/config export KUBECONFIG$HOME /.kube/config sudo -E ./minikube start –vm-driver=none # this for loop waits until kubectl can access the api server that minikube has created for i in {1..150} # timeout for 5 minutes do ./kubectl get po &> /dev/null if [ $? -ne 1 ] ; then break fi sleep 2 done '' +
- +
-Minikube mit node.js hello world applikation: +
- +
-[[https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/|https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/]]+
  
 +<code>
 +docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
 +</code>
  • docker.txt
  • Zuletzt geändert: 05/03/2024 - 10:52
  • von 127.0.0.1