docker - 使用 containerd 在 Kubernetes 中运行 docker
问题描述
由于 K8S v1.11 运行时已从 dockerd 更改为 containerd。我在 kubernetes 上使用 Jenkins 来使用 Docker 之外的 Docker 构建 docker 映像(dood)。
当我尝试使用常规 docker 客户端切换到使用来自 conatinerd 的套接字文件(containerd/containerd.sock 映射广告 /var/run/docker.sock)时,出现以下错误Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x00\x00\x00\x04\x00\x00\x00\x00\x00".
docker客户端可以和containerd一起使用吗?
解决方案
免责声明:在撰写本文时,containerd 并未取代 Docker,您可以将 containerd与 Docker 分开安装,并且您可以将Kubernetes CRI指向直接与 containerd 套接字对话。
因此,当您安装 Docker 时,它会与 containerd 一起安装,并且Docker 守护进程会与之对话。你会看到这样的过程:
docker-containerd --config /var/run/docker/containerd/containerd.toml
但是,Docker 客户端仍然与 Docker 守护进程通信,这就是为什么当您在容器中运行 Docker 客户端时,您仍然需要直接与 Docker 守护进程 ( /var/run/docker.sock
) 通信,因此您可以切换回/var/run/docker.sock
并且我相信它应该可以工作。
推荐阅读
- html - 如何检查用户是否向下滚动(或交叉)到 Angular7 中的特定元素(基于 id)?
- openshift - Openshift oc rsh 增加超时
- html - 显示大内容的下拉菜单
- audio - 如何测量智能手机的音频质量?
- c - 条件始终为真。我的代码中的错误,或我的 IDE 中的错误?
- java - 如果没有元描述,谷歌如何获得维基百科页面的描述?
- sql - 在 SQL Server 表中将一列拆分为多列,但某些无效值未对齐
- javascript - 如何在另一个页面上创建一个元素的居中弹出窗口
- html - 我在使用 html 结构时遇到问题
- python-3.x - 无法在 span 标签中找到元素