Docker 安装记录
docker 部署环境记录
版本环境说明
1 | 系统内核,系统版本,应用版本 |
修改docker存储
目前docker支持的存储驱动类型,有aufs,Device mapper,btrfs,overlayfs和zfs,所有驱动都用到写时复制(CoW)的技术。而出现警告的原因,就是在centos系统上(默认不支持aufs),docker daemon启动时,找到的后端存储驱动只有device mapper类型,就会通过loopback的方式,创造100G的sparse文件,并将其作为device mapper的存储池,而所有容器都从该存储池中分配默认10G的存储空间使用(可以理解为通过dd命令创造一个稀疏文件,再把这个稀疏的文件当做块设备通过loopback挂载出来)。而loopback的方式,性能和稳定性都不是很好,所以才出现上述警告。因此解决的办法,也在使用device mapper存储时,避免使用loopback即可。
1 | 存储修改参考链接: |
1 | 重点看一下存储信息及警告信息。centos时默认使用device mapper loop的方式存储,不推荐生产使用,我们需要修改一下为device mapper-lvm |
- 手动配置修改direct-lvm模式
使用块设备,/dev/sda
分出2个T给docker用,也可以将整块设备直接分给docker1
2
3
4
5
6
7
8
9
10
11# fdisk -l /dev/sda
磁盘 /dev/sda:7696.6 GB, 7696581394432 字节,15032385536 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00000000
设备 Boot Start End Blocks Id System
/dev/sda1 2048 4294967294 2147482623+ 8e Linux LVM安装以下软件包
RHEL / CentOS的:==device-mapper-persistent-data,lvm2,和所有的依赖==
3.创建物理卷1
2
3
4# pvcreate /dev/sdb1
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created
4.创建卷组1
2# vgcreate docker /dev/sdb1
Volume group "docker" successfully created
5.创建两个命名的逻辑卷thinpool并thinpoolmeta使用该 lvcreate命令。最后一个参数指定可用空间的大小,以便在空间不足时自动扩展数据或元数据,作为临时停止间隔。这些是推荐值。1
2
3
4# lvcreate --wipesignatures y -n thinpool docker -l 95%VG
Logical volume "thinpool" created.
# sudo lvcreate --wipesignatures y -n thinpoolmeta docker -l 1%VG
Logical volume "thinpoolmeta" created.
6.使用lvconvert命令将卷转换为精简池和精简池元数据的存储位置1
2
3
4
5
6
7
8
9# sudo lvconvert -y \
--zero n \
-c 512K \
--thinpool docker/thinpool \
--poolmetadata docker/thinpoolmeta
WARNING: Maximum supported pool metadata size is 16.00 GiB.
WARNING: Converting logical volume docker/thinpool and docker/thinpoolmeta to pool's data and metadata volumes.
THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
Converted docker/thinpool to thin pool.
7.通过lvm配置文件配置精简池的自动扩展。1
2
3
4
5
6
7
8
9
10指定thin_pool_autoextend_threshold和thin_pool_autoextend_percent 值。
thin_pool_autoextend_threshold是lvm 尝试自动扩展可用空间之前所用空间的百分比(100 =禁用,不推荐)。
thin_pool_autoextend_percent 是自动扩展时添加到设备的空间量(0 =禁用)。
当磁盘使用率达到80%时,下面的示例将增加20%的容量。
# vi /etc/lvm/profile/docker-thinpool.profile
activation {
thin_pool_autoextend_threshold=80
thin_pool_autoextend_percent=20
}
8.应用LVM配置文件1
2# sudo lvchange --metadataprofile docker-thinpool docker/thinpool
Logical volume "thinpool" changed.
9.启用对主机上逻辑卷的监视。如果没有这一步,即使在LVM配置文件中也不会自动扩展。1
2
3
4
5
6# lvs -o+seg_monitor
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Monitor
root centos -wi-ao---- 195.00g
root centos -wi-ao---- 195.00g
swap centos -wi-ao---- 4.00g
thinpool docker twi-a-t--- 1.90t 0.00 0.01 monitored
10.增加配置文件1
2
3
4
5
6
7
8
9# vim /etc/docker/daemon.json
{
"storage-driver": "devicemapper",
"storage-opts": [
"dm.thinpooldev=/dev/mapper/docker-thinpool",
"dm.use_deferred_removal=true",
"dm.use_deferred_deletion=true"
]
}
11.删除原来的原数据1
2// 官网推荐将/var/lib/docker整个目录 清空,我测试只清空以下目录即可
# mv /var/lib/docker/devicemapper/ ~/
12.启动docker1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31# systemctl daemon-reload
# systemctl start docker
# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.12.6
Storage Driver: devicemapper
Pool Name: docker-thinpool
Pool Blocksize: 524.3 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 19.92 MB
Data Space Total: 2.089 TB
Data Space Available: 2.089 TB
Metadata Space Used: 2.085 MB
Metadata Space Total: 16.98 GB
Metadata Space Available: 16.98 GB
Thin Pool Minimum Free Space: 208.9 GB
Udev Sync Supported: true
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.107-RHEL7 (2015-10-14)
Logging Driver: journald
Cgroup Driver: systemd
// 原来的警告已经没有了,并且data space 最大为2TB说明已经成功
本文作者 : WGY
原文链接 : http://geeklive.cn/2021/03/19/docker_install/undefined/docker_install/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!