Docker 使用containerd'作为容器中的另一个用户执行命令;s中心
我已经在Ubuntu上安装了microk8s,以便有一个简单的Kubernetes集群用于测试 我有一个用例,在这个用例中,我必须在一个容器中(在kubernetes吊舱中)与另一个用户执行一个命令,而不是用来运行容器的用户 由于kubectl不提供这种可能性,docker环境的解决方法是使用Docker 使用containerd'作为容器中的另一个用户执行命令;s中心,docker,kubernetes,microk8s,containerd,Docker,Kubernetes,Microk8s,Containerd,我已经在Ubuntu上安装了microk8s,以便有一个简单的Kubernetes集群用于测试 我有一个用例,在这个用例中,我必须在一个容器中(在kubernetes吊舱中)与另一个用户执行一个命令,而不是用来运行容器的用户 由于kubectl不提供这种可能性,docker环境的解决方法是使用docker exec-u。但是microk8s安装的Kubernetes集群不使用docker作为容器运行时,而只使用containerd 我没有找到在容器中作为另一个用户使用containerd的ctr
docker exec-u
。但是microk8s安装的Kubernetes集群不使用docker作为容器运行时,而只使用containerd
我没有找到在容器中作为另一个用户使用containerd的ctr cli执行命令的可能性(因为docker可以执行)
有可能吗?如评论中所述:
@buderu我担心这将不可能与containerd的ctrl cli根据这一点 引用上述文件: 从docker cli到crictl的映射 下表映射的确切版本适用于docker cli v1.40和crictl v1.19.0 docker cli crictl 描述 不支持的功能 贴上 贴上 连接到运行的容器上 --分离密钥,--sig代理 执行官 执行官 在正在运行的容器中运行命令 --特权,--用户,--分离密钥
实际的用例是什么?通常情况下,一个容器只运行一个进程,通常没有“另一个用户”会起作用;执行附加进程通常是为调试而保留的,而不是标准的数据流。一种情况是用于调试东西,另一种情况是,容器(由root用户启动)启动apache(启动非root子进程)。子流程处理的数据由非根用户所有,容器的一些shell脚本强制执行执行脚本的用户是数据的所有者。(
su
和sudo
都不可能)@buderu我担心,根据这一点,使用containerd的ctrl cli将不可能实现这一点。su
和sudo
不是选项有什么具体原因吗?