Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes内部的Python Docker SDK_Docker_Kubernetes_Dockerpy_Kubernetes Python Client_Python Docker - Fatal编程技术网

Kubernetes内部的Python Docker SDK

Kubernetes内部的Python Docker SDK,docker,kubernetes,dockerpy,kubernetes-python-client,python-docker,Docker,Kubernetes,Dockerpy,Kubernetes Python Client,Python Docker,我遵循了这个链接,docker SDK在我使用docker容器时运行良好。现在我已经转到了K8s,当我运行代码时,会出现类似“Container Not Found”的错误。有没有办法在Kubernetes吊舱中使用Python Docker SDK? 错误: 注意:作为普通Docker容器运行时,我不会遇到此错误。只有当代码在k8s吊舱内运行时才会发生这种情况 注: docker ps也不返回任何内容,因为所有容器都在K8s吊舱内运行 import docker docker_client =

我遵循了这个链接,docker SDK在我使用docker容器时运行良好。现在我已经转到了K8s,当我运行代码时,会出现类似“Container Not Found”的错误。有没有办法在Kubernetes吊舱中使用Python Docker SDK? 错误:

注意:作为普通Docker容器运行时,我不会遇到此错误。只有当代码在k8s吊舱内运行时才会发生这种情况

注: docker ps也不返回任何内容,因为所有容器都在K8s吊舱内运行

import docker
docker_client = docker.from_env()
print(docker_client.containers.list())
# Returns none since since all containers are running inside K8s PODS
您可以在此处参考Python Docker SDK:
您不能从Kubernetes内部使用Docker API;您需要改用。您可以使用Kubernetes API执行许多与Docker API相同的操作(启动新作业、查询现有POD等)。但是,您无法构建新映像,您执行的操作集可能会受到Kubernetes RBAC系统的限制,并且更难接管主机

Docker API有一些重要的安全注意事项,Kubernetes不能保证正确运行Docker。还值得注意的是,Docker API只能检查或操作同一节点上的容器,Kubernetes API可以看到集群中的所有内容


(如果可以避免的话,这两种环境之间的差异是避免直接访问任何一种API的一个很好的理由。例如,像RabbitMQ这样的作业队列系统加上一个长期运行的worker可以在任何环境中运行,并且比每个作业启动一个单独的容器更易于扩展和控制。)您不能从Kubernetes内部使用Docker API;您需要改用。您可以使用Kubernetes API执行许多与Docker API相同的操作(启动新作业、查询现有POD等)。但是,您无法构建新映像,您执行的操作集可能会受到Kubernetes RBAC系统的限制,并且更难接管主机

Docker API有一些重要的安全注意事项,Kubernetes不能保证正确运行Docker。还值得注意的是,Docker API只能检查或操作同一节点上的容器,Kubernetes API可以看到集群中的所有内容

(如果可以避免的话,这两种环境之间的差异是避免直接访问任何一种API的一个很好的理由。例如,像RabbitMQ这样的作业队列系统加上一个长期运行的worker可以在任何环境中运行,并且比每个作业启动一个单独的容器更易于扩展和控制。)

import docker
docker_client = docker.from_env()
print(docker_client.containers.list())
# Returns none since since all containers are running inside K8s PODS