Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:docker_volumes_by_examples

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:docker:docker_volumes_by_examples [2026/05/08 11:34]
peter_rossbach2 angelegt
admin_grundlagen:docker:docker_volumes_by_examples [2026/05/08 11:56] (aktuell)
peter_rossbach2 [NFS]
Zeile 1: Zeile 1:
 ===== Docker volumes by examples ===== ===== Docker volumes by examples =====
 +
 +==== Start mysql with docker volumes ====
 +
 +<code bash>
 +# hostpath bind mount
 +docker run --name mysql-db \
 +  -v $(pwd)/​datadir:/​var/​lib/​mysql
 +  -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.4.9
 +
 +docker stop mysql.db
 +docker rm mysql-db
 +
 +# or docker managed volume /​var/​lib/​docker/​volumes
 +docker volume create mysql-data
 +docker run --name mysql-db \
 +  -v mysql-data:/​var/​lib/​mysql
 +  -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.4.9
 +
 +</​code>​
  
 ==== NFS ==== ==== NFS ====
 +
 +  - https://​oneuptime.com/​blog/​post/​2026-01-30-docker-nfs-volumes/​view
 +  - https://​docs.docker.com/​engine/​storage/​volumes/​
  
 Install NFS kernel server Install NFS kernel server
Zeile 30: Zeile 52:
 sudo exportfs -v sudo exportfs -v
 </​code>​ </​code>​
 +
 +
 +Create docker volume with a NFS Share:
 +
 +<code bash>
 +docker volume create \
 +  --driver local \
 +  --opt type=nfs \
 +  --opt o=addr=192.168.1.100,​rw,​nfsvers=4.1 \
 +  --opt device=:/​exports/​shared \
 +  shared-data
 +</​code>​
 +
 +
 +Use volume inside docker-compose service:
 +
 +<code bash>
 +mkdir -p web
 +cd web
 +cat >​docker-compose.yml <<EOF
 +services:
 +  app:
 +    image: nginx:​alphine
 +    volumes:
 +      - shared-data:/​usr/​share/​nginx/​html
 +    deploy:
 +      replicas: 3
 +
 +  processor:
 +    image: python:​3.11-slim
 +    volumes:
 +      - shared-data:/​data
 +    command: python -c "while True: pass"
 +
 +volumes:
 +  shared-data:​
 +    driver: local
 +    driver_opts:​
 +      type: nfs
 +      o: addr=192.168.1.100,​rw,​nfsvers=4.1,​soft,​timeo=300
 +      device: ":/​exports/​shared"​
 +EOF
 +docker compose uo -d
 +# access service with curlimages/​curl many times
 +docker run --rm --network default-web curlimages/​curl curl -s app
 +...
 +# check logs
 +
 +# down
 +docker compose down
 +</​code>​
 +
 +
 +Use nfs share with docker --mount directly:
 +
 +<code bash>
 +docker run -d \
 +  --name web \
 +  --mount type=volume,​volume-driver=local,​\
 +volume-opt=type=nfs,​\
 +volume-opt=o=addr=192.168.1.100,​\
 +volume-opt=device=:/​exports/​shared,​\
 +dst=/​usr/​share/​nginx/​html \
 +  nginx:​alpine
 +</​code>​
 +
admin_grundlagen/docker/docker_volumes_by_examples.1778240091.txt.gz · Zuletzt geändert: 2026/05/08 11:34 von peter_rossbach2