docker --- 安装的简单介绍

1、主机的安装规划
1.1、硬件规划
CPUMemoryNetworkDisk1Disk2Disk3
4个8G1个40G(安装系统)50G(docker 使用)50G(docker 使用)
1.2、系统规划:

镜像文件:CentOS Linux release 7.2.1511 (Infrastructure Server + 中文语言支持)

内核版本:3.10.0-327.el7.x86_64

注:

应该使用最小化安装也是可以的,但这次未能测试

1.3、网络规划:

具体配置请参照实际情况进行,主机需具有访问公网的权限


2、主机初始化:

主机名

]# hostnamectl --static set-hostname LS-daocloud01-219-xx
]# hostnamectl status

DNS

]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
DNS1=223.5.5.5
DNS2=223.6.6.6

关闭 NetworkManager

]# systemctl disable NetworkManager

关闭防火墙:

]# systemctl disable firewalld.service 

关闭 SELinux

]# vim /etc/selinux/config
SELINUX=disabled

修改 YUM 源

]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
]# yum makecache

安装启动 NTP 服务

]# yum -y install ntp
]# systemctl enable ntpd

配置主机名自解析

]# vim /etc/hosts
192.168.135.xx test-135-xx

重启主机

shutdown -r now

gulu-web\WEB-INF\classes\cn\migu\qywechat\controller
/usr/local/tomcat/webapps/gulu-web/WEB-INF/classes/cn/migu/qywechat/controller/

3、安装 docker

为 /var/lib/docker 创建单独的分区

docker 安装后,会在该分区内存放 docker 使用的镜像,容器,网络等相关组件。因此为随着使用逐渐增大,为以后维护方便,建议设置单独的分区

]# mkdir /var/lib/docker
]# vcreate /dev/sdc
]# vgcreate docker-vg /dev/sdc
]# lvcreate -l 100%FREE -n lv_docker docker-vg
]# mkfs -t xfs /dev/mapper/docker--vg-lv_docker
]# vim /etc/fstab
/dev/docker-vg/lv_docker /var/lib/docker xfs defaults 0 0
]# mount -a
]# df -h
...
/dev/mapper/docker--vg-lv_docker   20G   33M   20G   1% /var/lib/docker

安装 docker

]# yum install docker

更改 docker 的存储模式

docker 在基于 rhel 的分支默认使用的 devicemapper,并且默认配置成 loop-lvm 模式运行。这种模式使用文件来作为虚拟池(thin pool)构建镜像和容器的层。但这种模式并不适用于生产,因此要更改为 direct-lvm 模式。direct-lvm 通过 dm-thin 内核模块,直接使用raw分区,在高负载和高密度下具有性能优势。

下面演示通过 docker-storage-setup 工具设置 direct-lvm 模式:

此例中,使用空白磁盘 /dev/sdb 进行实验

修改配置文件 :

]# vim /etc/sysconfig/docker-storage-setup
DEVS=/dev/vdb
VG=docker
SETUP_LVM_THIN_POOL=yes

执行

]# docker-storage-setup

执行完成后,注释掉 DEVS 那一行

]# vim /etc/sysconfig/docker-storage-setup
#DEVS=/dev/sdb

启动 docker 并查看相关信息

]# systemctl start docker
]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.10.3
Storage Driver: devicemapper
 Pool Name: docker-docker--pool
 Pool Blocksize: 524.3 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: 
 Metadata file: 
 Data Space Used: 20.45 MB
 Data Space Total: 25.74 GB
 Data Space Available: 25.72 GB
 Metadata Space Used: 57.34 kB
 Metadata Space Total: 67.11 MB
 Metadata Space Available: 67.05 MB
... 以下省略 ...

确认没有问题后,将 docker 设置为开机启动

]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

注1:

该操作也可手工进行,但比较烦琐,有兴趣的可以参照官网内容

https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/

注2:

direct-lvm 模式下 lv 自动扩展的配置文件位于:

/etc/lvm/profile/docker--docker-pool-extend.profile

常用配置选项如下:

# 定义创建 DATA thin pool 的大小,默认为 VG 的 40%
DATA_SIZE=40%FREE
# 定义 DATA pool 最小值,默认为 2G,如果 VG 小于 2G 则创建失败
MIN_DATA_SIZE=2G
# 定义 thin pool 的 CHUNK 大小,默认 512k
CHUNK_SIZE=512K
# 定义是否自动扩容 thin pool 大小,默认为自动扩容
AUTO_EXTEND_POOL=yes
# 定义自动扩容的百分比,默认为当前 pool 使用 60% 时自动扩容,100 表示 disable,最小为 50 lvmthin — LVM thin provisioning
POOL_AUTOEXTEND_THRESHOLD=60
# 定义每次扩容的大小,默认为 20%,即当前 pool 大小为 100G,那么自动扩容 20G,扩容后大小为 120G, 100 表示 disable
POOL_AUTOEXTEND_PERCENT=20

注3:

如果以前启动过 docker 在配置完 direct-lvm 后,还需要先清理源数据,执行如下命令:

rm -rf /var/lib/docker/*

附A:direct-lvm 的扩容:

扩展 VG: docker

]# vgextend docker /dev/sdd

扩展逻辑卷:docker-pool

]# lvextend -l +100%FREE -n docker/docker-pool

重新加载 devicemapper 的 thin pool

  • 获取 pool 名,输出内容中,冒号前面的就是 pool 名
]# dmsetup status | grep thin-pool
docker-docker--pool: 0 167493632 thin-pool 1 21/16384 39/163568 - rw no_discard_passdown queue_if_no_space -
  • 导出设备的 mapper 表
]# dmsetup table docker-docker--pool
0 167493632 thin-pool 253:3 253:4 1024 0 1 skip_block_zeroing
  • 计算当前 thin pool 使用的真实扇区总数。

我们可以使用 blockdev 来获取数据 lv 的真实大小,然后再计算出实际扇区数量,即 85756739584/512 = 167493632

]# blockdev --getsize64 /dev/docker/docker-pool
85756739584

比对该值与上条命令(dmsetup table)输出内容的第二列的值是否一致,如果不一致,使用以下方法进行更新

  • 重新加载当前 thin pool 的扇区数量
]# dmsetup suspend docker-docker--pool \
    && sudo dmsetup reload docker-docker--pool --table  '0 167493632 thin-pool 253:3 253:4 1024 0 1 skip_block_zeroing' \
    && sudo dmsetup resume docker-docker--pool
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a719792284

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值