我创建了一个名为 multi-container 的 pod。它是一个yaml
文件:
apiVersion: v1
kind: Pod
metadata:
name: multi-container
spec:
containers:
- image: nginx
name: nginx-container
- image: redis
name: redis-container
- image: consul
name: consul-container
如果我需要登录到任何容器,我该使用什么命令?
答案1
我不是 Podman 专家,但据我所知来自文档,命令与 Docker 中的相同(因为 Podman 旨在作为 Docker 的无守护进程替代品)。
在容器内运行命令的基本语法是:
podman exec [options] [container-name] [command [args …]]
因此,如果您想在中运行交互式 shell(登录)nginx-container
,您可以使用:
podman exec -ti nginx-container /bin/sh
或者 bash shell:(取决于容器是否存在)
podman exec -ti nginx-container /bin/bash
该-ti
选项附加了一个虚拟控制台并启动一个交互式会话。
答案2
yaml 看起来像 Kubernetes / Openshift / Minikube 等的 POD 规范的一部分。
它可以部署
kubectl apply -f <FILENAME>
并生成一个包含 3 个容器的 POD。登录时使用 kubectl 语法
kubectl exec -it <PODNAME> -c <CONTAINERNAME> -- /bin/sh
PODNAME
并且CONTAINERNAME
必须用你的价值观来取代。
这看起来像
kubectl exec -it multi-container -c consul-container -- /bin/sh
如果您使用 openshift,oc
则可以使用kubectl
。
kubectl
有很好的记录。参见Kubectl 文档