我使用哪个命令来通过 podman 登录容器?

我使用哪个命令来通过 podman 登录容器?

我创建了一个名为 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 文档

相关内容