在 CentOS 上使用 Docker 挂载目录,通常是指把 宿主机(CentOS)上的目录 挂载到 容器内部,实现数据共享和持久化。下面按常见场景说明。
-v(volume 挂载)docker run -d \
-v /data:/data \
--name mycontainer \
nginx
说明:
/data(宿主机路径)/data(容器路径)/data 的修改会同步到宿主机⚠️ 注意:
docker run -d -v /data:/data:ro nginx
ro:只读(容器不能写)rw(默认):读写--mount(推荐,更清晰)docker run -d \
--mount type=bind,source=/data,target=/data \
--name mycontainer \
nginx
可选参数:
--mount type=bind,source=/data,target=/data,readonly
✅ 优点:
CentOS 默认开启 SELinux,可能出现:
z 或 Z)docker run -d -v /data:/data:z nginx
说明:
z:共享 SELinux 标签(常用)Z:私有标签(不推荐多容器)setenforce 0
⚠️ 仅用于测试,不建议生产环境
确保目录权限正确:
chmod 755 /data
chown 1000:1000 /data # 视容器用户而定
version: "3"
services:
nginx:
image: nginx
volumes:
- /data:/data
或:
volumes:
- type: bind
source: /data
target: /data
docker inspect mycontainer | grep -A 10 Mounts
❌ 使用相对路径
❌ 宿主机目录不存在
❌ SELinux 未处理
❌ 容器用户无权限
如果你愿意,可以告诉我:
我可以给你针对性示例。