Docker daemon.json 配置文件详解
daemon.json
是 Docker 守护进程(dockerd)的主要配置文件,用于控制 Docker 引擎的各种行为和特性。
配置文件位置
- Linux:
/etc/docker/daemon.json
- Windows:
%ProgramData%\docker\config\daemon.json
- macOS: Docker Desktop 通过 GUI 配置,但底层也使用类似配置文件
常用配置选项
基本配置
-
调试和日志
{ "debug": true, "log-level": "debug", "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }
-
存储设置
{ "storage-driver": "overlay2", "data-root": "/path/to/custom/docker/data" }
网络配置
-
DNS 设置
{ "dns": ["8.8.8.8", "8.8.4.4"], "dns-opts": ["timeout:2", "attempts:2"], "dns-search": ["example.com"] }
-
IP 和代理
{ "bip": "192.168.1.5/24", "fixed-cidr": "192.168.1.5/25", "default-gateway": "192.168.1.1", "mtu": 1500 }
镜像和仓库配置
-
镜像加速器
{ "registry-mirrors": [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn" ] }
-
私有仓库
{ "insecure-registries": [ "myregistry.example.com:5000" ] }
安全配置
-
TLS 设置
{ "tls": true, "tlscacert": "/path/to/ca.pem", "tlscert": "/path/to/server-cert.pem", "tlskey": "/path/to/server-key.pem", "tlsverify": true }
-
用户命名空间
{ "userns-remap": "default" }
资源限制
- CPU 和内存
{ "cgroup-parent": "/docker-cgroup", "default-ulimits": { "nofile": { "Name": "nofile", "Hard": 64000, "Soft": 64000 } } }
配置生效方式
-
修改配置文件后需要重启 Docker 服务:
sudo systemctl restart docker
-
检查配置是否生效:
docker info
注意事项
-
JSON 文件必须严格遵守格式,可以使用 JSON 验证工具 检查语法
-
某些配置可能需要 Docker 服务停止后才能修改
-
不同 Docker 版本支持的配置选项可能不同,请参考官方文档
-
可以使用
dockerd --help
查看所有可用的守护进程选项
示例完整配置
{
"debug": false,
"log-level": "info",
"data-root": "/mnt/docker-data",
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
"insecure-registries": ["registry.example.com:5000"],
"dns": ["8.8.8.8", "1.1.1.1"],
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65536,
"Soft": 65536
}
},
"live-restore": true,
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
通过合理配置 daemon.json
文件,可以优化 Docker 的性能、安全性和可用性,满足不同的使用场景需求。
No Comments