Docker 守护进程配置概述

此页面介绍如何自定义 Docker 守护进程,dockerd

注意

此页面适用于手动安装 Docker Engine 的用户。如果您使用的是 Docker Desktop,请参考设置页面

配置 Docker 守护进程

有两种方法可以配置 Docker 守护进程

  • 使用 JSON 配置文件。这是首选选项,因为它将所有配置保存在一个位置。
  • 启动 dockerd 时使用标志。

您可以同时使用这两个选项,只要您不将相同的选项同时作为标志和在 JSON 文件中指定即可。如果发生这种情况,Docker 守护进程将无法启动并打印错误消息。

配置文件

下表显示了 Docker 守护进程根据您的系统和运行守护进程的方式默认情况下预期查找配置文件的位置。

操作系统和配置文件位置
Linux,常规设置/etc/docker/daemon.json
Linux,无根模式~/.config/docker/daemon.json
WindowsC:\ProgramData\docker\config\daemon.json

对于无根模式,守护进程会尊重XDG_CONFIG_HOME变量。如果设置了该变量,则预期的文件位置为$XDG_CONFIG_HOME/docker/daemon.json

您还可以使用dockerd --config-file标志在启动时显式指定配置文件的位置。

dockerd 参考文档中了解可用的配置选项

使用标志进行配置

您还可以手动启动 Docker 守护进程并使用标志对其进行配置。这对于解决问题非常有用。

以下是如何使用与前面 JSON 配置中显示的相同配置手动启动 Docker 守护进程的示例

$ dockerd --debug \
  --tls=true \
  --tlscert=/var/docker/server.pem \
  --tlskey=/var/docker/serverkey.pem \
  --host tcp://192.168.59.3:2376

dockerd 参考文档中了解可用的配置选项,或者运行

$ dockerd --help

守护进程数据目录

Docker 守护进程将所有数据保存在单个目录中。这会跟踪与 Docker 相关的所有内容,包括容器、镜像、卷、服务定义和机密。

默认情况下,此目录为

  • Linux 上的/var/lib/docker
  • Windows 上的C:\ProgramData\docker

您可以使用data-root配置选项配置 Docker 守护进程以使用不同的目录。例如

{
  "data-root": "/mnt/docker-data"
}

由于 Docker 守护进程的状态保存在此目录中,请确保为每个守护进程使用专用目录。例如,如果两个守护进程共享同一个目录(例如 NFS 共享),您将遇到难以解决的错误。

后续步骤

Docker 文档中讨论了许多具体的配置选项。接下来可以参考的一些地方包括