# Dữ liệu biến mất khi xóa container
docker run --rm -it ubuntu bash -c "echo 'Hello' > /data.txt && exit"
docker run --rm -it ubuntu cat /data.txt
# cat: /data.txt: No such file or directory-v host_path:container_path. Thay đổi ở host hoặc container đều đồng bộ ngay. Thêm :ro để container chỉ đọc.Bind mount: thư mục host và container chia sẻ dữ liệu
# Bind mount: map thư mục code vào nginx
docker run -d --name web -v $(pwd)/html:/usr/share/nginx/html -p 8080:80 nginx
# Sửa file trên host là thấy ngay trong container
echo "<h1>Hello from host!</h1>" > ./html/index.html
# → localhost:8080 thay đổi tức thì!-v /path/host:/path/container — bạn chỉ định đường dẫn host. Tiện cho code.-v my-volume:/path/container — Docker quản lý ở /var/lib/docker/volumes/. An toàn, di động, dùng cho database.# Named volume — dùng cho database
docker volume create pg-data
docker run -d --name db -v pg-data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=secret postgres:16
# Volume tồn tại độc lập với container
docker rm db
docker run -d --name db-new -v pg-data:/var/lib/postgresql/data postgres:16 # Dữ liệu vẫn còn!
docker volume ls
docker volume prune # Xóa volume không dùngmy-site và file index.htmldocker run -d --name site -v $(pwd)/my-site:/usr/share/nginx/html:ro -p 8080:80 nginx:alpinehttp://localhost:8080 — thấy trang HTMLdocker volume create demo-voldocker run --rm -v demo-vol:/data alpine touch /data/test.txtdocker run --rm -v demo-vol:/data alpine ls /data — test.txt còn1. Bind mount khác gì so với named volume?
2. Tại sao database nên dùng volume?