一、配置文件/etc/docker/daemon.json
使用json格式
完整示例
{
"graph":"/deploy/docker",
"registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.1.2","192.168.1.3:5000"],
"live-restore": "true",
"exec-opts": ["native.cgroupdriver=systemd"],
"storage-driver":"overlay2",
"ipv6": false,
"bip":"172.18.0.1/24"
"default-address-pools": [
{
"scope": "local",
"base":"172.17.0.0/16",
"size":24
}
],
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-size": "5m"
}
}
相关解释
配置项 | 含义 | 值 |
---|---|---|
graph | 指定docker存储目录 | |
registry-mirrors | 指定镜像加速器 | |
insecure-registries | 指定信任仓库 | |
live-restore | 容器的存活不依赖与docker引擎,docker引擎停止不影响容器运行 | |
native.cgroupdriver | 指定cgroup驱动 | 默认值为cgroupfs,推荐值为systemd |
storage-driver | 存储驱动 | overlay2、devicemapper、aufs |
log-driver | 日志驱动 | json-file |
bip | 设置Docker0的默认IP | 172.18.0.1/24 |
default-address-pools | 配置容器使用的子网地址池 | |
log-opts | 日志策略。单个日志文件最大50M,最多保留3个 | |
ipv6 | 是否开启ipv6 | true,false |
二、详细说明
配置容器使用的子网地址池
"default-address-pools": [
{
"scope": "local",
"base":"172.17.0.0/16",
"size":24
}
]
解释:
base #指定CIDR网段,172.17.0.0/16表示子网掩码长度为16。相当于主网络
size #变长子网掩码,数值要大于等于16。相当子网络
docker0的子网掩码长度为24
配置容器数据大小
参考文章:Docker之几种storage-driver比较
仅当storage-driver为devicemapper时可用
指定单个容器可用数据空间20GB、docker可用数据空间200GB、元数据可用空间4GB
{
"storage-opt": [ "dm.basesize=20G","dm.loopdatasize=200G","dm.loopmetadatasize=4G" ]
}
容器cgroup驱动
当linux系统使用systemd时,推荐Docker的cgroupdriver设置为systemd。
原因
systemd和cgroups都会去调用cgroup管理器,如果容器运行时和 kubelet 使用 cgroupfs,此时就会存在 cgroups 和 systemd 两种
cgroup 管理器,也就意味着操作系统里面存在两种资源分配的视图,当操作系统上存在 CPU,内存等等资源不足的时候,操作
系统上的进程会变得不稳定。