在 Debian 上使用 Docker 挂载目录,通常有两种常见方式:绑定挂载(bind mount) 和 卷(volume)。下面用最实用、最常见的说明给你讲清楚。
把宿主机的一个目录直接挂到容器里。
docker run -d \
-v /宿主机路径:/容器路径 \
--name mycontainer \
镜像名
docker run -d \
-v /home/debian/data:/app/data \
--name myapp \
nginx
意思:
/home/debian/data/app/data-v /home/debian/data:/app/data:ro
适合数据持久化,由 Docker 管理。
docker volume create mydata
docker run -d \
-v mydata:/app/data \
--name myapp \
nginx
查看 volume:
docker volume ls
docker volume inspect mydata
docker-compose.ymlversion: "3"
services:
app:
image: nginx
volumes:
- /home/debian/data:/app/data
# 或
# - mydata:/app/data
volumes:
mydata:
启动:
docker compose up -d
容器里可能是 root 或指定用户,宿主机目录注意权限:
chmod -R 777 /home/debian/data
(测试用,生产不建议 777)
Debian 默认没有 SELinux,不用加 :Z 或 :z
mkdir -p /home/debian/data
docker inspect myapp | grep -A 10 Mounts
如果你愿意,可以告诉我:
我可以直接给你一份可直接用的配置。