一、简介:
/etc/docker/daemon.json是 Docker 守护程序的配置文件,它允许管理员自定义 Docker 守护程序的行为。下面列举了一些常见的配置项以及它们的用途,并给出每项配置的示例。
二、常见配置项
vim /etc/docker/daemon.json
{
"data-root": "/data/docker",
"exec-root": "/var/run/docker",
"bridge": "none",
"iptables": false,
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:4243"],
"labels": [
"AlidockerMod=true"
],
"vfsconfig": "/etc/sysconfig/docker.vfsconfig",
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10"
},
"insecure-registries" : ["aaa.com","bbb.com"],
"bip": "169.254.123.1/24",
"oom-score-adjust": -1000,
"registry-mirrors": ["https://pqbap4ya.mirror.aliyuncs.com"],
"storage-driver": "overlay2",
"storage-opts":["overlay2.override_kernel_check=true"],
"live-restore": true
}
systemctl daemon-reload && systemctl restart docker
#守护进程配置更改后,需要重启。
三、配置详解
"data-root": "/data/docker":指定 Docker 存储所有运行时数据的根目录,包括镜像、容器、卷和网络等。默认情况下,这个目录位于 /var/lib/docker。
"exec-root": "/var/run/docker":定义 Docker 执行状态文件的存储路径,如运行中容器的网络配置。默认情况下,它通常位于 /var/run/docker。
"bridge": "none":告诉 Docker 不要自动创建默认的网桥接口 docker0。这通常用于自定义网络或在不需要 Docker 管理网络的情况下。
"iptables": false:禁止 Docker 修改 iptables 规则。这意味着 Docker 将不会自动配置 IP 表以进行网络隔离。
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:4243"]:设置 Docker 守护进程监听的接口和端口,允许通过 Unix 套接字和 TCP 端口 4243 进行通信。0.0.0.0:4243 表示接受来自任何 IP 地址的连接。
"labels": ["AlidockerMod=true"]:为 Docker 守护进程添加标签,可以用来标识守护进程或进行过滤。"exec-opts": ["native.cgroupdriver=systemd"]:指定 Docker 使用 systemd 作为其 cgroup 驱动程序。cgroup (Control groups) 是 Linux 提供的一个特性,用于限制、记录和隔离进程组的资源使用(如 CPU、内存等)。使用 systemd 作为 cgroup 驱动程序有助于集成 Docker 和使用 systemd 的系统组件。
"log-driver": "json-file":将 Docker 容器的日志记录驱动程序设置为 json-file,这意味着容器的日志将以 JSON 格式写入文件。这是 Docker 的默认日志驱动程序。
"log-opts": { "max-size": "100m", "max-file": "10" }:设置容器日志文件的轮转策略。"max-size": "100m" 指每个日志文件的最大大小为 100MB,达到该大小后日志文件会轮转。"max-file": "10" 指最多保留 10 个轮转后的日志文件。
"insecure-registries":列出了 Docker 可以通过 HTTP 而非 HTTPS 连接的不安全镜像仓库地址。在这个例子中,给出了几个私有仓库的地址,Docker 将不会验证这些仓库的 SSL 证书。如果配置为0.0.0.0/0,信任所有地址的所有私有仓库。
"bip": "169.254.123.1/24":指定 Docker 默认桥接网络 docker0 的 IP 地址和网络掩码。这个网络用于容器之间和宿主机之间的通信。
"oom-score-adjust": -1000:为 Docker 守护进程设置 OOM(内存耗尽)得分调整值。数值 -1000 表示 Docker 守护进程在内存耗尽时应该最后被杀死,以保护它的运行稳定。
"registry-mirrors": ["https://pqbap4ya.mirror.aliyuncs.com"]:设置 Docker 镜像拉取时使用的镜像仓库加速地址。这对于位于中国等地区的用户来说,可以提供更快的镜像下载速度
。
"storage-driver": "overlay2":指定 Docker 使用 overlay2 存储驱动,这是推荐的存储驱动,用于管理容器和镜像的分层文件系统。
"storage-opts":["overlay2.override_kernel_check=true"]:提供额外的存储驱动选项。在这里,它允许 overlay2 存储驱动忽略内核版本检查,这可能对于在不完全支持 overlay2 的旧内核版本上运行 Docker 是有用的。
"live-restore": true:启用“实时恢复”功能,允许 Docker 守护进程在更新或重启时不终止运行中的容器。这有助于减少服务中断并提高系统的可用性。