ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

使用 Moby 启动 dockerd 守护进程时如何配置 TLS 与监听端点并验证可用性

使用 Moby 启动 dockerd 守护进程时如何配置 TLS 与监听端点并验证可用性 使用 Moby 启动 dockerd 守护进程时如何配置 TLS 与监听端点并验证可用性【免费下载链接】mobyThe Moby Project - a collaborative project for the container ecosystem to assemble container-based systems项目地址: https://gitcode.com/GitHub_Trending/mo/moby在基于 Moby 的容器环境中部署 dockerd 守护进程时常见的需求是让守护进程监听指定的网络端点并对客户端启用 TLS 加密与证书校验。本文基于仓库中的 dockerd 手册页 说明如何用dockerd的命令行选项完成监听端点与 TLS 配置并在启动前验证配置是否可用。dockerd用于启动 Docker 守护进程负责管理镜像、容器等它是一个常驻服务所有守护进程选项都应写在dockerd关键字之后即dockerd [OPTIONS]的形式。配置监听端点-H / --host-H--host指定守护进程模式下要绑定的 socket可以指定一个或多个支持以下协议形式tcp://host:port—— 通过 TCP 端口监听unix:///path/to/socket—— 使用 Unix socket 文件fd://*或fd://socketfd—— 使用已有的文件描述符例如由 systemd socket 激活传入。不指定时默认绑定unix:///var/run/docker.sock。如果让 Unix socket 被特定组访问可配合-G--group选项它指定运行守护进程时分配给-H所定义 Unix socket 的组默认是docker传空字符串可禁用设置组。一个同时监听 Unix socket 与 TCP 端点的启动示例sudo dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2376上面这条命令会让守护进程在本地 socket 和 TCP 2376 端口上同时接受连接。配置 TLS--tls、--tlsverify 与证书选项与 TLS 相关的选项及其默认值如下均来自 dockerd 手册页选项默认值作用--tlsfalse启用 TLS由--tlsverify隐含启用--tlsverifyfalse使用 TLS 并校验远端守护进程侧即校验客户端--tlscacert~/.docker/ca.pem只信任由该 CA 签发的证书--tlscert~/.docker/cert.pem守护进程 TLS 证书文件路径--tlskey~/.docker/key.pem守护进程 TLS 密钥文件路径启用 TLS 时需要把证书文件放到默认路径~/.docker/下的ca.pem、cert.pem、key.pem或用--tlscacert、--tlscert、--tlskey显式指定路径。一个开启 TLS 并校验客户端证书的启动示例sudo dockerd -H tcp://0.0.0.0:2376 \ --tlsverify \ --tlscacert/etc/docker/ca.pem \ --tlscert/etc/docker/cert.pem \ --tlskey/etc/docker/key.pem要点使用--tlsverify时会自动隐含启用--tls无需重复指定--tls只开启 TLS 而不校验对端--tlsverify才会在守护进程侧校验客户端证书。如果不想把选项都写在命令行上可以用--config-file指定配置文件路径默认是/etc/docker/daemon.json守护进程会从该 JSON 文件加载配置。验证配置与确认可用性手册页给出了两个可以直接使用的手段dockerd --help确认当前构建支持哪些守护进程选项。手册页原文建议用dockerd --help查看选项配置前先确认目标选项如--tlsverify、--config-file在所用版本中存在。--validate校验守护进程配置后直接退出不实际启动服务。可以在启动前对配置做一次性检查sudo dockerd -H tcp://0.0.0.0:2376 --tlsverify --validate配置无效时守护进程会在校验阶段报错退出校验通过则退出之后再执行不带--validate的启动命令让守护进程常驻运行。另外systemd 场景下可以查看仓库中提供的 docker.service 作为参考其ExecStart使用dockerd -H fd:// --containerd/run/containerd/containerd.sock即通过fd://让 systemd 的 socket 单元把已监听的套接字传给守护进程避免 dockerd 自行绑定端口。限制与注意事项--tls、--tlsverify默认均为false即守护进程默认不以 TLS 方式监听 TCP 端点对需要暴露的tcp://端点应显式启用 TLS 相关选项。--insecure-registry是用于本地 registry 调试的不安全选项手册页明确警告它只应用于测试目的不要用它替代 TLS 来解决证书信任问题应改为把对应 CA 加入系统信任列表。守护进程选项在dockerd关键字之后指定对证书文件的读取发生在守护进程启动阶段证书文件缺失或不可读时无法建立 TLS 监听可先用--validate检查配置。完成配置校验并成功启动后可以用-H指定的 socket 或 TCP 端点访问守护进程的 Engine API确认守护进程已在预期端点上提供服务。【免费下载链接】mobyThe Moby Project - a collaborative project for the container ecosystem to assemble container-based systems项目地址: https://gitcode.com/GitHub_Trending/mo/moby创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表