跳至主要內容

Docker 配置

鸟书大约 5 分钟containerdockerconfig

三. Docker CE 配置

daemon.json 文件是 Docker 守护进程的全局配置文件,允许你自定义 Docker 守护进程的行为。以下是一些常见的 daemon.json 配置项,这些配置项可以用来调整 Docker 的行为,包括但不限于网络、存储、日志记录、安全等方面。其中常规配置项有:

参数说明
log-devel设置日志记录级别
log-driver设置容器日志的驱动程序
log-opts设置日志驱动程序提供额外的选项
data-root指定Docker存储容器和镜像的根目录
storage-driver存储驱动程序,用于控制 Docker 如何在宿主机文件系统上存储镜像和容器的数据
storage-opts为存储驱动提供额外的配置选项,以数组形式列出
insecure-registries允许 Docker 从不安全的私有仓库中拉取镜像
registry-mirrors配置 Docker 镜像的镜像加速地址
max-concurrent-downloads限制同时下载的镜像数量
max-concurrent-uploads限制同时上传的镜像数量
default-ulimit定义容器的默认 ulimits 设置
default-runtime指定Docker的默认容器运行时,默认为"runc"。
exec-opts为 docker exec 命令提供额外选项
live-restore在Docker守护进程重启时保持容器运行

日志配置

参数可选值
log-develdebuginfowarnerrorfatal
log-driverjson-file,syslog,journald,...

不同的 log-driver 类型,log-opts 的值会有所不同

json-file

json-file 格式支持的 log-opts 选项

说明
max-size日志文件的最大大小(例如,100m 表示最大 100MB)
max-file设置保量的日志文件数量
compress是否压缩日志文件(布尔值)
labels将容器的标签包含在日志条目中
env将容器的环境变量包含在日志条目中

案例

json-file

设置日志驱动程序为 json-file:

{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "10m",
        "max-file": "3",
        "compress": true
    }
}
  • "max-size":定义每个日志文件的最大大小为 10MB。当一个日志文件达到这个大小时,Docker 会关闭当前日志文件并创建一个新的日志文件。
  • "max-file":设置 Docker 守护进程保留的日志文件数量上限为 3。当达到此限制时,最旧的日志文件将被删除,以确保不会无限增长日志文件的数量。
  • "compress":设置是否在日志文件达到 max-size 并被滚动时进行压缩。如果设置为 true,日志文件将在滚动后被压缩,这有助于节省磁盘空间。

存储设置

不同的 storage-driver 类型,storage-opts 的值会有所不同

overlay2
说明
"overlay2.metadatafs.size"元数据文件系统的大小
"overlay2.override_kernel_check"控制Docker是否检查 Linux 内核的版本以确保其与 overlay2 存储驱动兼容。 当设置为 true 时,Docker将忽略内核版本检查
"overlay2.size"overlay2 存储驱动程序的大小

案例

overlay2
{
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.metadatafs.size=1G",
    "overlay2.override_kernel_check=true",
    "overlay2.size=100GB"
  ]
}
  • overlay2.metadatafs.size=1G 将元数据文件系统的大小为 1GB。这可以防止元数据文件系统填满而导致的问题
  • overlay2.size=100GB 将overlay2 存储驱动程序的大小设置为 100GB
  • override_kernel_check=true 忽略内核兼容性检查。 这意味着即使当前使用的内核版本在 overlay2 存储驱动上可能存在问题,Docker 也会继续工作。这样做可能会导致潜在的兼容性问题,因此建议谨慎使用此选项

镜像加速配置

设置 Docker 镜像加速器地址,用于加快下载镜像的速度。

{
    "registry-mirrors": ["https://yourmirror.com"]
}

网络配置

设置容器网桥的 IP 地址范围。

{
    "bip": "172.30.0.1/24",
    "fixed-cidr": "172.30.0.0/16"
}

网络代理配置

说明
"httpProxy"指定 HTTP 请求的代理服务器地址和端口。
"httpsProxy"指定 HTTPS 请求的代理服务器地址和端口。
"noProxy"列表定义了不需要通过代理直接访问的主机或域名,可以是逗号分隔的列表。

案例

17.07+ 版本
{
  "proxies": {
    "default": {
      "httpProxy": "http://proxy.example.com:8080",
      "httpsProxy": "http://proxy.example.com:8080",
      "noProxy": "localhost,127.0.0.1,your.internal.domain"
    }
}
  • "default" 定义了一个名为 "default" 的代理配置
  • "httpProxy","httpsProxy" 分别指定了 HTTP 和 HTTPS 请求的代理服务器地址和端口
  • "noProxy" 列表定义了不需要通过代理直接访问的主机或域名,可以是逗号分隔的列表