Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:docker_volumes_by_examples

Docker volumes by examples

Start nginx with local path

Create Website content:

mkdir -p htdocs
cat >htdocs/index.html <<EOF
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Docker Local Path Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container of `hostname`</h2>
</body>
</html>
EOF
docker run -d --name nginx-local \
-v $(pwd)/htdocs:/usr/share/nginx/html nginx
 
IPADDRESS=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx-local)
# Alternative with jq
# docker inspect nginx-local| jq -r '.[0].NetworkSettings.Networks.bridge.IPAddress'
curl $IPADDRESS

Start nginx with docker volumes

Prepare docker managed volume:

docker volume create htdocs-volume
 
docker container run \
    -v $(pwd)/htdocs:/htdocs \
    -v htdocs-volume:/htdocs1  \
    -ti --rm alpine /bin/sh
cp htdocs/index.html htdocs1
exit

Use docker managed volume:

docker run -d --name web-server \
-v htdocs-volume:/usr/share/nginx/html nginx
 
# check content
docker exec web-server ls /usr/share/nginx/html
docker run --rm -ti --volumes-from web-server alpine /bin/sh
ls /usr/share/nginx/html
exit

Inspect volumes:

docker volume ls
docker volume inspect htdocs-volume
 
#docker volume rm htdocs-volume

Start with mount options and publish nginx

docker run \
  --mount type=bind,src=$(pwd)/htdocs,dst=/usr/share/nginx/html,readonly \
  -p 8080:80 \
  nginx-public

Start local mysql

# 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
 
# Access DB
 
# Stop db
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

NFS

admin_grundlagen/docker/docker_volumes_by_examples.txt · Zuletzt geändert: 2026/05/29 14:01 von peter_rossbach2