docker - 在Kubernetes Pod中使用Docker套接字

标签 docker kubernetes azure-aks kubernetes-pod

我想要prune Docker镜像,我使用node-docker-api编写了一个小的Docker镜像,并且能够在本地成功测试它。
当我将DaemonSet部署到Kubernetes时,该pod无法访问Docker套接字:

Error: connect EACCES /var/run/docker.sock
deployment.yaml如下所示:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  labels:
    name: docker-image-cleanup
  name: docker-image-cleanup
spec:
  template:
    metadata:
      labels:
        app: docker-image-cleanup 
    spec:
      volumes:
        - name: docker-sock
          hostPath:
            path: "/var/run/docker.sock"
            type: File
        - name: docker-directory
          hostPath:
            path: "/var/lib/docker"

      containers:
        - name: docker-image-cleanup
          image: image:tag
          securityContext:
            privileged: true
          env:
            - name: PRUNE_INTERVAL_SECONDS
              value: "30"
            - name: PRUNE_DANGLING
              value: "true"
          volumeMounts:
            - mountPath: /var/run/docker.sock
              name: docker-sock
              readOnly: false
            - mountPath: "/var/lib/docker"
              name: docker-directory
              readOnly: false

运行AKS v1.13.10-如果相关

最佳答案

无法保证您的kubernetes集群实际上正在使用docker作为容器引擎。由于有cri-o和kata容器之类的许多替代方法,因此您的应用程序/部署应不对基础容器引擎进行任何假设。

Kubernetes会注意自动清理未使用的容器镜像。如果您自己运行集群,请参阅有关如何配置它的文档:https://kubernetes.io/docs/concepts/cluster-administration/kubelet-garbage-collection/

除此之外,您似乎对套接字有一个简单的权限问题:确保清理容器中的应用程序以root身份运行或具有适当的用户访问套接字。

关于docker - 在Kubernetes Pod中使用Docker套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58622015/

相关文章:

docker - nginx 反向代理背后的 Nexus docker 存储库

docker - 在 Ubuntu 上安装 docker 和 kubernetes

kubernetes - 可以在GKE GCP中删除具有k8s-fw *的防火墙吗

azure - AKS 将 DNS 名称分配给私有(private) ClusterIP 地址

azure - 有没有办法使用 API 监控 Azure Kubernetes 服务的资源运行状况

linux - Docker Xdebug 局域网/公共(public)开发服务器

docker - 将 docker https ://index. docker.io/v1/中的注册表更改为 V2

linux - "Restarting (1)"Forever 中的 Docker 私有(private)注册表状态

kubernetes - Helm 安装 Kubernetes Federation v2 报错

Azure Kubernetes - Azure Monitor 和 Sidecar 日志传送?