Docker守护进程配置需通过/etc/docker/daemon.json实现,国内必备镜像加速、资源限制、experimental启用及data-root指定,普通用户需加入docker组并重登录生效。

Docker 守护进程(dockerd)是整个 Docker 运行的核心服务,它负责管理镜像、容器、网络和存储卷。在 Ubuntu 和 CentOS 上完成基础安装后,真正影响生产可用性的关键一步,就是对守护进程进行合理配置——尤其在国内网络环境下,不配镜像加速、不调参数、不设权限,很容易出现拉镜像超时、容器启动慢、非 root 用户无法操作等问题。
守护进程配置文件 daemon.json 的位置与作用
守护进程的所有运行时参数都通过 /etc/docker/daemon.json 文件统一管理。这个文件是 JSON 格式,Docker 启动时会自动读取。它不存在时可手动创建;存在但格式错误会导致 dockerd 启动失败。
- Ubuntu 和 CentOS 路径完全一致:
/etc/docker/daemon.json - 必须确保目录存在:
sudo mkdir -p /etc/docker - 文件权限建议为
644,属主为root:root - 修改后必须执行
sudo systemctl daemon-reload && sudo systemctl restart docker才生效
国内环境必备:镜像加速器配置
默认从 Docker Hub 拉取镜像极慢甚至失败。推荐使用阿里云、腾讯云或网易的镜像加速地址,它们对个人用户免费且稳定。
- 阿里云加速地址(需登录阿里云控制台获取专属地址,或使用通用地址如
https://<strong>xxx</strong>.mirror.aliyuncs.com) - 腾讯云:
https://mirror.ccs.tencentyun.com - 网易:
https://mirrors.163.com/docker-ce - 配置示例(以腾讯云为例):
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
注意:registry-mirrors 是数组,可填多个地址,Docker 会按顺序尝试;不要漏掉方括号和引号,JSON 语法必须严格。
提升稳定性与安全性的常用选项
除了镜像加速,以下几项配置能显著改善日常使用体验:
-
限制容器默认内存和 CPU:防止单个容器耗尽资源,适合多租户或测试环境
"default-runtime": "runc",<br>"default-ulimits": { "nofile": { "Name": "nofile", "Hard": 65536, "Soft": 65536 } },<br>"default-memory": "2g",<br>"default-cpu-shares": 512 -
启用 experimental 功能:如
buildx多平台构建、docker composev2 命令支持"experimental": true -
指定数据根目录:避免系统盘被
/var/lib/docker占满(尤其云服务器系统盘小)"data-root": "/mnt/docker-data"(需提前创建目录并赋权:sudo chown root:root /mnt/docker-data && sudo chmod 700 /mnt/docker-data)
让普通用户免 sudo 使用 Docker
默认只有 root 或 docker 组成员才能执行 docker 命令。为避免频繁加 sudo,推荐将当前用户加入 docker 组:
- 执行:
sudo usermod -aG docker $USER - 然后退出终端重新登录,或运行
newgrp docker刷新组权限 - 验证:
docker info | grep 'Username'不报错即成功 - ⚠️ 注意:此操作等同于赋予用户 root 级别容器控制权,仅适用于可信环境,生产服务器慎用


















