Kubernetes/Docker/Docs/Docker配置守护进程.md
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00

138 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> 本文作者:丁辉
# 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 | 用户命名空间重映射设置 | |