> 本文作者:丁辉 # Docker配置守护进程 > 通过修改 `/etc/docker/daemon.json` 配置守护进程 > > [官方文档](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon) [示例文件位置](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) - 编写基础配置 ```json { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com" ], "insecure-registries": [], "max-concurrent-downloads": 10, "max-concurrent-uploads": 10, "log-driver": "json-file", "log-level": "warn", "log-opts": { "max-size": "10m", "max-file": "3" }, "data-root": "/var/lib/docker" } ``` - 建立垃圾收集 ```json { "builder": { "gc": { "enabled": true, "defaultKeepStorage": "10GB", "policy": [ { "keepStorage": "10GB", "filter": ["unused-for=2200h"] }, { "keepStorage": "50GB", "filter": ["unused-for=3300h"] }, { "keepStorage": "100GB", "all": true } ] } } } ``` - 验证守护进程配置文件 ```bash dockerd --validate --config-file=/etc/docker/daemon.json ``` - 重载 Docker ```bash systemctl reload docker ``` # 参数 | 参数 | 用法和说明 | 默认值/示例 | | -------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | allow-nondistributable-artifacts | 允许的非分发性文件列表(为空) | true/false | | api-cors-header | API的跨源资源共享(CORS)头部,允许对API进行跨域请求 | "" (空字符串)或 * 或指定IP地址或域名 | | authorization-plugins | 授权插件列表(为空) | | | bip | 容器网络的默认桥接接口的IP范围 | "" (空字符串) | | bridge | 指定容器网络的默认桥接接口 | "" (空字符串) | | cgroup-parent | 指定容器的cgroup父目录 | | | containerd | 容器运行时 containerd 的socket路径 | "/run/containerd/containerd.sock" | | containerd-namespace | 容器运行时 containerd 的命名空间 | "docker" | | containerd-plugin-namespace | 容器运行时 containerd 插件的命名空间 | "docker-plugins" | | data-root | Docker 数据的根目录路径 | | | debug | 是否启用调试模式 | true/false(根据具体实现或配置文件而定) | | default-address-pools | 默认的地址池设置列表,包括基础地址和子网大小 | 示例:[](空列表) | | default-cgroupns-mode | 默认的cgroup命名空间模式(通常是私有) | "private"(私有模式) | | default-gateway | 默认网关设置 | | | default-gateway-v6 | 默认IPv6网关设置 | | | default-network-opts | 默认网络选项 | | | default-runtime | 默认容器运行时 | "runc"(具体容器运行时的名称) | | default-shm-size | 默认的共享内存大小 | "64M"(64兆字节) | | default-ulimits | 默认的ulimit设置,指定文件描述符的硬限制和软限制 | 示例:{"nofile": {"Hard": 64000, "Name": "nofile", "Soft": 64000}} (文件描述符限制示例) | | dns | DNS服务器列表 | 示例:[](空列表) | | dns-opts | DNS选项列表 | 示例:[](空列表) | | dns-search | DNS搜索域列表 | 示例:[](空列表) | | exec-opts | 容器执行参数列表 | 示例:[](空列表) | | exec-root | 容器执行的根目录路径 | "" (空字符串) | | experimental | 是否启用实验性功能 | true/false(根据具体实现或配置文件而定) | | features | Docker功能列表 | | | fixed-cidr | 固定CIDR地址设置(通常用于设置 Docker 容器的 IP 地址) | "" (空字符串) | | fixed-cidr-v6 | 固定IPv6 CIDR地址设置(通常用于设置 Docker 容器的 IPv6 地址) | "" (空字符串) | | group | Docker进程的用户组 | | | hosts | 主机名设置列表 | 示例:[](空列表) | | proxies | 代理设置,包括HTTP代理、HTTPS代理和不使用代理的地址列表 | | | icc | 是否启用容器间通信 | false (默认值为false) | | init | 是否启用自定义初始化进程 | false (默认值为false) | | init-path | 自定义初始化进程的路径 | "/usr/libexec/docker-init" | | insecure-registries | 不安全的镜像仓库列表 | 示例:[](空列表) | | ip | Docker守护进程监听的IP地址 | 0.0.0.0 | | ip-forward | 是否启用IP转发 | false (默认值为false) | | ip-masq | 是否启用IP伪装 | false (默认值为false) | | iptables | 是否启用iptables | false (默认值为false) | | ip6tables | 是否启用ip6tables | false (默认值为false) | | ipv6 | 是否启用IPv6 | true/false(根据具体实现或配置文件而定) | | labels | 标签设置列表 | 示例:[](空列表) | | live-restore | 是否启用容器守护进程在宕机时自动恢复容器 | true/false(根据具体实现或配置文件而定) | | log-driver | 日志驱动设置(默认为json-file) | "json-file"(JSON文件) | | log-level | 日志级别设置 | "" (空字符串) | | log-opts | 日志选项设置,包括缓存禁用、缓存大小、缓存最大文件数等 | 示例:{"max-size": "10m", "max-file": "5"}(最大大小为10兆字节,最大文件数为5) | | max-concurrent-downloads | 最大并发下载任务数 | 3(示例值) | | max-concurrent-uploads | 最大并发上传任务数 | 5(示例值) | | max-download-attempts | 最大下载尝试次数 | 5(示例值) | | mtu | 最大传输单元设置 | 0(示例值) | | no-new-privileges | 是否禁用新特权 | false (默认值为false) | | node-generic-resources | 节点通用资源列表,通常用于指定GPU等硬件资源 | 示例:["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"](GPU资源示例) | | oom-score-adjust | OOM分数调整设置 | 0(示例值) | | pidfile | PID文件路径设置 | | | raw-logs | 是否启用原始日志记录 | true/false(根据具体实现或配置文件而定) | | registry-mirrors | 镜像仓库镜像设置列表 | 示例:[](空列表) | | runtimes | 容器运行时设置,可以包括自定义运行时的路径和参数 | | | seccomp-profile | 安全策略配置文件路径 | "" (空字符串) | | selinux-enabled | 是否启用SELinux | true/false(根据具体实现或配置文件而定) | | shutdown-timeout | 容器守护进程关闭超时设置 | 15(示例值) | | storage-driver | 存储驱动设置 | | | storage-opts | 存储选项设置列表 | 示例:[](空列表) | | swarm-default-advertise-addr | Swarm模式下的默认广告地址设置 | | | tls | 是否启用TLS | true/false(根据具体实现或配置文件而定) | | tlscacert | TLS CA证书路径 | | | tlscert | TLS证书路径 | | | tlskey | TLS密钥路径 | | | tlsverify | 是否验证TLS | true/false(根据具体实现或配置文件而定) | | userland-proxy | 是否使用用户空间代理 | true/false(根据具体实现或配置文件而定) | | userland-proxy-path | 用户空间代理的路径 | "/usr/libexec/docker-proxy" | | userns-remap | 用户命名空间重映射设置 | |