扩展Docker默认数据目录
#### 关机 添加硬盘
#--- 以虚拟机为例
fdisk命令详解
fdisk 对 MBR 分区表的支持较好,但对于较大硬盘和 GPT 分区表,推荐使用 parted 或 gdisk
Linux 系统中用于管理磁盘分区的命令行工具。
它允许用户查看、创建、删除、修改磁盘分区表,
可以用于处理 MBR (Master Boot Record) 和 GPT (GUID Partition Table) 分区表。
fdisk [选项] <设备文件>
常用选项:
-l:列出系统中所有磁盘及其分区信息。
-u:显示分区表时使用扇区单位,而不是传统的柱面/磁头/扇区 (CHS) 单位。
-s <分区>:显示指定分区的大小(单位为块)。
-n:创建新分区。
-d:删除分区。
## 常见的使用场景
1.查看磁盘分区信息:列出系统中所有磁盘及其分区信息,包括磁盘大小、分区大小、分区类型等
fdisk -l
2.查看特定磁盘的分区信息:显示 /dev/sda 这个设备的分区详细信息。
fdisk -l /dev/sda
## 重要
3.进入交互模式管理分区:
输入命令会进入交互式操作环境,用户可以根据提示进行分区操作,如创建、删除、修改分区等。
fdisk /dev/sda
m:显示帮助信息。
p:打印当前分区表。
n:创建新分区。
d:删除分区。
t:更改分区类型(如将分区设为 Linux 文件系统、交换分区等)。
w:将更改写入磁盘并退出。
q:退出而不保存更改。
v:验证分区表是否有错误。
实战添加硬盘
拓展 扇区的意思
## PS: 扇区的解释
扇区(Sector)是磁盘存储中的最小物理存储单位。每个磁盘被划分为多个扇区,计算机在读写磁盘数据时以扇区为单位进行操作。通常,一个扇区的大小为 **512 字节**,不过在现代硬盘中,扇区的大小也可能是 **4096 字节**,特别是在高容量的硬盘上。
### 扇区的作用和结构
- **作用**:扇区是磁盘存储的基础单元,数据被存储在磁盘的扇区中,当操作系统需要读取或写入数据时,它会指定某个扇区及其相应的偏移量。
- **结构**:磁盘由多个物理盘片组成,每张盘片分为多个**磁道**(Tracks),磁道被进一步划分为多个扇区。因此,每个扇区代表磁道上的一个小片段。
### 扇区在分区中的作用
在硬盘分区时,工具如 `fdisk` 会要求用户指定**起始扇区**和**结束扇区**,这些扇区定义了分区在磁盘上的范围。
- **起始扇区**:分区的开始位置。
- **结束扇区**:分区的结束位置。
- **扇区编号**:硬盘上的扇区是按照顺序编号的,例如 2048、4096 等,每个扇区都有唯一的编号,操作系统通过这些编号来定位数据。
### 为什么起始扇区通常是 2048?
在现代硬盘分区中,起始扇区常从 **2048** 开始,这是为了确保数据对齐,提高性能,
尤其是对于支持 4KB 扇区大小的硬盘(也称为 **Advanced Format** 硬盘)。
早期的硬盘常以 **63 扇区** 为默认起始扇区,但为了与新硬盘格式兼容,2048 扇区成为更通用的选择。
### 总结:
- **扇区** 是磁盘上的最小存储单位,通常为 512 字节或 4096 字节。
- 分区工具如 `fdisk` 会要求指定分区的起始和结束扇区,这些扇区定义了分区在磁盘上的物理位置。
- 起始扇区通常从 2048 开始,以确保数据对齐并提高硬盘性能。
增加磁盘
#### 查看一下当前环境硬盘
[root@docker01 ~]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009a513
。。。。
### 进入交互模式管理分区 /dev/sdb
[root@docker01 ~]# fdisk /dev/sdb
Command (m for help): n ### 选项 n 进行分区管理
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p ### p 进行分区 e 拓展分区
Partition number (1-4, default 1): 1 ### 选择分区号 默认1
First sector (2048-41943039, default 2048): 2048 ### 系统提示你选择分区的起始扇区。起始扇区默认为 2048
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): #### 设置结束扇区或分区大小 默认的结束扇区是 41943039,这使分区大小为 20 GiB,你也接受了默认值
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set
Command (m for help): w ### 选择w保存更改 并退出
The partition table has been altered!
### 查询磁盘
root@docker01 ~]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x127d0221
Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux ### 新磁盘
Disk /dev/sda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009a513
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 20971519 9972736 8e Linux LVM
### 进行格式化
分区创建之后,你需要格式化它才能使用。假设新分区是 /dev/sdb,你可以使用以下命令将它格式化为 xfs 文件系统
mkfs.xfs /dev/sdb1
### 进行挂载
创建挂载目录
mkdir /docekr_file
1 --- 临时挂载
mount /dev/sdb1 /docekr_file
2 --- 永久挂载
查看分区的UUID
[root@docker01 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="b448b2a8-4f30-4f82-8e6f-f55292cb4da5" TYPE="xfs"
写入挂载文件
UUID=b448b2a8-4f30-4f82-8e6f-f55292cb4da5 /docker_file xfs defaults 0 0
或者
mount -a
### 查看
[root@docker01 /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 979M 0 979M 0% /dev
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root 8.5G 4.8G 3.8G 56% /
/dev/sda1 497M 131M 367M 27% /boot
/dev/sdb1 20G 33M 20G 1% /docker_file
更换docker的存储目录
提示:
更改数据目录前要提前备份不然以前的文件不存在 !!!!
### docker info 查看默认的存储目录
[root@docker01 ~]# docker info | grep 'Docker Root Dir:'
Docker Root Dir: /var/lib/docker
[root@docker01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest 0965faacfaf0 7 weeks ago 686MB
mysql 5.7.44 5107333e08a8 9 months ago 501MB
172.16.1.103:5000/centos 7 eeb6ee3f44bd 2 years ago 204MB
centos 7 eeb6ee3f44bd 2 years ago 204MB
### 修改docker默认数据目录
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.1panel.live", "https://hub.rat.dev/", "https://docker.chenby.cn", "https://docker.m.daocloud.io"],
"insecure-registries": ["http://10.0.0.105","http://172.16.1.103:5000"],
"data-root": "/docker_data"
}
### 重启
[root@docker01 ~]# systemctl daemon-reload
[root@docker01 ~]# systemctl restart docker
### 查看
[root@docker01 ~]# docker info | grep 'Docker Root Dir:'
Docker Root Dir: /docker_data
[root@docker01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE