有没有一种方法可以使一个容器在另一个容器中调用命令?容器在同一个容器中。
我需要许多命令行工具,这些工具既作为映像也作为软件包提供。但是出于某些考虑,我不想将它们全部安装到一个容器中。
答案 0 :(得分:2)
通常,不,您不能在Kubernetes(或普通Docker)中执行此操作。您应该将两个相互连接的事物移动到同一容器中,或者在要调用的事物周围包装某种网络服务(然后将其放在一个单独的容器中,并在其前面具有单独的服务)。 / p>
如果您设置服务帐户,安装Kubernetes API Sidecar容器并使用Kubernetes API来完成kubectl exec
的工作,那么您可能会做 会认为这是万不得已的解决方案。
答案 1 :(得分:1)
Containers in pod are isolated from each other except that they share volume and network namespace. So you would not be able to execute command from one container into another. However, you could expose the commands in container through APIs
答案 2 :(得分:0)
这很可能,只要您拥有k8s v1.17 +。您必须启用shareProcessNamespace: true
,然后所有容器进程都可用于同一容器中的其他容器。