Docker-ce

安装docker-ce
# 安装yum-utils,它提供一个yum-config-manager单元,同时安装的device-mapper-persistent-data和lvm2用于储存设备映射(devicemapper)必须的两个软件包。
yum install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看最新docker 版本
yum list docker-ce.x86_64  --showduplicates |sort -r
yum install -y --setopt=obsoletes=0 docker-ce-18.09.7-3.el7
#####修改docker启动文件

grep -vE '^$|^#' /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target firewalld.service

[Service]
Type=notify
NotifyAccess=main
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
ExecStart=/usr/bin/dockerd \
          --graph /opt/docker \
          --exec-opt native.cgroupdriver=systemd \
          --selinux-enabled \
          --insecure-registry harbor.duia.com
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
Restart=on-abnormal
KillMode=process

[Install]
WantedBy=multi-user.target


[root@k8s-bj-zw-bgp1 ~]# cat /etc/docker/daemon.json
{
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

说明

EnvironmentFile=-/run/flannel/subnet.env
EnvironmentFile=-/run/flannel/docker
引用了flannel生成的两个文件,启动时加载了 DOCKER_NETWORK_OPTIONS 变量,覆盖docker原本的配置。
$DOCKER_NETWORK_OPTIONS和$MAINPID不需要替换;
flanneld 启动时将网络配置写入到 /run/flannel/docker 文件中的变量 DOCKER_NETWORK_OPTIONS,dockerd 命令行上指定该变量值来设置 docker0 网桥参数;
如果指定了多个 EnvironmentFile 选项,则必须将 /run/flannel/docker 放在最后(确保 docker0 使用 flanneld 生成的 bip 参数);
不能关闭默认开启的 –iptables 和 –ip-masq 选项;
如果内核版本比较新,建议使用 overlay 存储驱动;
–exec-opt native.cgroupdriver=systemd参数可以指定为”cgroupfs”或者“systemd” 官方推荐修改 cgroup driver 为 systemd
官方文档:https://kubernetes.io/docs/setup/production-environment/container-runtimes/

文件系统

centos xfs 文件系统,修改支持overlay2 存储格式

mkfs.xfs -n ftype=1 /dev/sdb1

http://www.senra.me/docker-switch-storage-driver-to-overlay2-to-optimize-performance/
###### 查看当前存储驱动

docker info|grep -i storage

###### 停止Docker
service docker stop
#清空数据,如果有啥需要的请自己备份
rm -rf /var/lib/docker/*
#修改配置文件
vi /etc/docker/daemon.json
#如果没有这个文件或没有内容,就直接把下面的粘贴进去
#不然就只添加那一条
#如果不是在最后一行加请自行在末尾添加逗号
{
"storage-driver": "overlay2"
}
#如果是CentOS7或者RedHat7内核在3.10.0-693以下的,换成下面的
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
#当然,也可以通过给docker修改启动参数的方式来
# 1.修改/etc/init.d/docker
# 这个直接在 dockerd 后面加参数就行,不过其实和下面的差不多
# 2.修改/etc/sysconfig/docker
# 改成类似 other_args="-s overlay2"
# 3.修改/usr/lib/systemd/system/docker.service
# 改成类似 ExecStart=/usr/bin/dockerd -s overlay2
#启动docker
service docker start