互联网技术 / 互联网资讯 · 2023年12月15日

Docker教程:云计算核心技术的Docker守护程序目录

Docker守护程序将所有数据保留在一个目录中。这将跟踪与Docker相关的所有内容,包括容器,映像,卷,服务定义和机密。

默认情况下,该目录为:

/var/lib/docker 在Linux上。

C:ProgramDatadocker 在Windows上。

您可以使用data-Root配置选项将Docker守护程序配置为使用其他目录。

由于Docker守护程序的状态保留在此目录中,因此请确保为每个守护程序使用专用目录。如果两个守护程序共享同一目录,则将遇到难以解决的错误。

对守护程序进行故障排除

您可以在守护程序上启用调试,以了解该守护程序的运行时活动并帮助进行故障排除。如果守护程序完全没有响应,您还可以通过将信号发送到Docker守护程序,强制将所有线程的完整堆栈跟踪添加到守护程序日志中SIGUSR。

之间矛盾排查Daemon.json和启动脚本

如果您使用Daemon.json文件并且还dockerd手动或使用启动脚本将选项传递给命令,并且这些选项发生冲突,则Docker无法启动,并显示以下错误:

云计算核心技术Docker教程:Docker守护程序目录

如果看到类似于此错误的错误,并且正在使用标志手动启动守护程序,则可能需要调整标志或Daemon.json来消除冲突。

如果要使用操作系统的init脚本启动Docker,则可能需要以特定于操作系统的方式覆盖这些脚本中的默认值。

将Daemon.json中的hosts键与systemD一起使用

难以解决的配置冲突的一个显着示例是,您想指定一个不同于默认值的守护程序地址。Docker默认情况下侦听套接字。在使用Debian和Ubuntu的系统上systemd,这意味着-H启动时始终使用主机标志dockerd。如果在中指定hosts条目,则将Daemon.json导致配置冲突,并且Docker无法启动。

要变通解决此问题,请创建/etc/systemd/system/docker.service.d/docker.conf具有以下内容的新文件,以删除-H默认情况下启动守护程序时使用的参数。

[Service]

ExecStart=

ExecStart=/usr/bin/dockerd

有时您可能需要systemd使用Docker进行配置,例如 配置HTTP或https Proxy。

sudo systemctl daemon-reload在尝试启动Docker之前运行。如果Docker成功启动,则它现在正在侦听由hosts key Daemon.json而不是socket指定的IP地址。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.