一、Kernel调优

1.1 配置系统内核参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cat >> /etc/sysctl.conf<<EOF
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
kernel.shmmax = 33285996543
kernel.shmmni = 4096
kernel.shmall = 8126464
kernel.sem = 1010 129280 1010 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
EOF

配置文件生效

1
2
modprobe br_netfilter
/sbin/sysctl -p

1.2 修改系统资源限制

1
2
3
4
5
6
 cat >> /etc/security/limits.conf<<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF

二、使用官方安装脚本自动安装

安装命令如下:

1
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

1
curl -sSL https://get.daocloud.io/docker | sh

三、手动安装

3.1、卸载旧版本Docker软件

1
2
3
4
5
6
7
8
9
10
11
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
container*

3.2、更新源信息并依赖包安装

1
2
yum update -y
yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion

3.3、添加软件仓库源信息

采用国内阿里云的下载源

1
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学源

1
$ yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

检查安装源,如果“显示元数据缓存已建立”则表示优先选择了阿里云下载源

1
yum makecache fast

3.4 安装

执行命令安装docker

1
2
3
4
5
6
7
8
9
10
11
12
13
yum -y install docker-ce
# 启动docker服务
service docker start
# 查看版本
docker version
docker -v
# docker守护进程
systemctl start docker
# docker开机自启动
systemctl enable docker
# 尝试下载运行
docker pull hello-world
docker run hello-world

四、优化

4.1、镜像加速与日志驱动配置

加速与日志驱动配置

1
2
3
4
5
6
7
sudo vi /etc/docker/daemon.json
{
"live-restore": true,
"registry-mirrors": ["https://hub-mirror.c.163.com", "https://bmtrgdvx.mirror.aliyuncs.com", "http://f1361db2.m.daocloud.io"],
"log-driver": "json-file",
"log-opts": {"max-file": "3", "max-size": "10m"}
}

4.2、overlay2存储驱动配置(docker info 查看是否已经是overlay2)

overlay2 是当前所有受支持的Linux发行版的首选存储驱动程序,不需要任何额外的配置。
通常Docker默认使用的存储驱动为overlay2,如不是,可以通过如下方法修改.

1
$ sudo docker info

备注:如果为非overlay2,需要添加配置,具体如下

1
2
3
4
5
$ sudo vi /etc/docker/daemon.json
{
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"]
}

4.3、修改镜像及一些默认产生的数据存储位置

1
2
3
4
$ vim /etc/docker/daemon.json
{
"graph": "/data/docker"
}

4.4、新增私有库,排除走https (可选)

1
2
3
4
$ vim /etc/docker/daemon.json
{
"insecure-registries":["10.11.1.207:5000", "192.168.0.75:5000"],
}

4.5、 配置完文件重启docker

让其生效

1
2
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker