温馨提示×

centos docker如何挂载盘

小樊
49
2026-10-23 08:44:10
栏目: 智能运维

在 CentOS 上使用 Docker 挂载磁盘(或目录),通常有以下几种常见场景。我先说明概念,再给具体示例。


一、Docker 挂载的两种方式

1️⃣ Bind Mount(绑定挂载,最常用)

把 宿主机目录/磁盘 直接挂到容器里

docker run -d \
  -v /data:/data \
  nginx

说明:

  • /data:宿主机目录(可以是挂载的磁盘)
  • /data:容器内的目录

✅ 适合:数据盘、配置文件、日志


2️⃣ Volume(Docker 管理的卷)

由 Docker 自己管理,不依赖宿主机路径

docker volume create mydata
docker run -d -v mydata:/data nginx

✅ 适合:数据库等需要持久化的数据


二、CentOS 挂载磁盘后再给 Docker 用(常见场景)

步骤 1:查看磁盘

lsblk
fdisk -l

例如看到:

/dev/sdb   100G

步骤 2:格式化磁盘(只做一次)

mkfs.ext4 /dev/sdb

步骤 3:创建挂载目录

mkdir -p /data

步骤 4:挂载磁盘

mount /dev/sdb /data

步骤 5:开机自动挂载(重要)

编辑:

vi /etc/fstab

添加:

/dev/sdb  /data  ext4  defaults  0  0

验证:

mount -a

步骤 6:Docker 使用 /data

docker run -d \
  -v /data:/data \
  --name mynginx nginx

三、Docker Compose 示例

version: "3"
services:
  nginx:
    image: nginx
    volumes:
      - /data:/usr/share/nginx/html

四、常见坑(CentOS 特有)

⚠️ SELinux 导致权限问题

CentOS 默认开启 SELinux

解决方式:

docker run -d -v /data:/data:z nginx

或临时关闭:

setenforce 0

⚠️ 磁盘没挂载就 docker run

后果:

  • 数据写到了系统盘
  • 重启后数据丢失

✅ 一定先 df -h 确认


五、查看挂载情况

df -h
docker inspect 容器名 | grep Mounts -A 10

如果你愿意,可以告诉我:

  • 是 系统盘 / 数据盘
  • 给 MySQL / Nginx / 自建服务
  • 用 docker run 还是 compose

我可以直接给你可复制的命令。

0 踩