目标
搭建部署起Docker(GFS1-3),为后续其它组件搭建部署提供集成支撑
环境背景
阿里云CentOS 7.6 64位 * 3
docker简介
docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源。
NameSpace
LXC是利用内核namespace技术,进行进程隔离。其中pid, net, ipc, mnt, uts 等namespace将container的进程, 网络, 消息, 文件系统和hostname 隔离开。
Control Group
LXC利用的宿主机共享的资源,虽然用namespace进行隔离,但是资源使用没有收到限制,这里就需要用到Control Group技术,对资源使用进行限制,设定优先级,资源控制等。
核心术语
术语 | 说明 |
---|---|
host | 宿主机 |
image | 镜像 |
container | 容器 ,即image的运行实例 |
registry | 仓库 |
daemon | 守护程序 |
client | 客户端 |
docker安装步骤
1、安装依赖
docker依赖于系统的一些必要的工具,可以提前安装。
yum install -y yum-utils
2、添加软件源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、正式安装docker-ce
yum install docker-ce
4、docker的daemon.json配置
在/etc/docker/目录里新增daemon.json配置文件,内容如下
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10"
},
"bip": "169.254.123.1/24",
"oom-score-adjust": -1000,
"registry-mirrors": ["https://z6pvoojk.mirror.aliyuncs.com"],
"insecure-registries": ["http://39.xx.117.xx:8082","http://39.xx.117.xx:8083","http://172.xx.209.xx:8083", "http://172.xx.209.xx:8082"],
"storage-driver": "overlay2",
"storage-opts":["overlay2.override_kernel_check=true"],
"live-restore": true
}
修改docker的默认存储路径,也可以用以下方法
由于数据盘挂载data目录,所以我的实际部署需要修改。
创建目录
cd /data
mkdir docker
修改docker的配置
vi /usr/lib/systemd/system/docker.service
在 ExecStart= 的最后面添加 –graph /data/docker 如下图
添加好后保存退出即可。
PS: 如果已经启动了docker,则需要在修改配置前,停止docker,修改好后重新加载守护程序,并重新启动docker,步骤如下:
#停止docker
systemctl stop docker
#修改配置,添加 -graph /data/docker
vi /usr/lib/systemd/system/docker.service
#如果原来有数据及镜像等,可以拷贝过去
cp -R /var/lib/docker/* /data/docker/
#重新加载守护程
systemctl daemon-reload
#重新启动docker
systemctl start docker
5、启动服务
通过systemctl启动服务
systemctl start docker
6、查看安装版本
docker -v
7、校验
docker run hello-world