gpt4 book ai didi

docker - 命令 dockerd 中开关 --containerd 的目的是什么?

转载 作者:行者123 更新时间:2023-12-05 02:40:01 25 4
gpt4 key购买 nike

如果我运行 systemctl cat docker.service 来检查 docker.service 的单元文件,ExecStart=/usr/bin/dockerd -H fd://--containerd=/run/containerd/containerd.sock可以在docker默认的单元文件中找到。

我的问题是切换的目的是什么--containerd=/run/containerd/containerd.sock?

根据this quesion的回答,如果我为 docker.service 生成覆盖文件,内容如下:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd://

有效的配置是:

[Service]
ExecStart=/usr/bin/dockerd -H fd://

--containerd=/run/containerd/containerd.sock将被省略。

那么这个配置会导致什么情况呢?我希望 docker 在启用 TLS 保护的情况下,在本地和远程都能正常工作。我还需要通过 ssh 调用 docker 守护进程。

提前谢谢你。

最佳答案

文档的重要部分位于“Docker runtime execution options”部分的更下方,它说:

The Docker daemon relies on a OCI compliant runtime (invoked via the containerd daemon) as its interface to the Linux kernel namespaces, cgroups, and SELinux.

By default, the Docker daemon automatically starts containerd. If you want to control containerd startup, manually start containerd and pass the path to the containerd socket using the --containerd flag.

换句话说,原来的 Docker 单元可能包括 --containerd=/run/containerd/containerd.sock 因为 containerd 是由 systemd .socket 管理的.service 单元。

通过从覆盖中排除该标志,我对文档的阅读是 Docker 将启动自己的 containerd 实例,而不是使用绑定(bind)到 /run/containerd/containerd 的实例。 socks

可能无害,但将该标志添加到覆盖命令行可能是一个更好的主意。

关于docker - 命令 dockerd 中开关 --containerd 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68823645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com