11.7. 在 pod 中的两个容器间通信

同一 pod 中的所有容器共享 IP 地址、MAC 地址和端口映射。您可以使用 localhost:port 表示法在同一 pod 中的容器之间进行通信。

先决条件

  • container-tools 元数据包已安装。

流程

  1. 创建名为 web-pod 的 pod:

    $ podman pod create --name=web-pod
  2. 在 pod 中运行名为 web-container 的 web 容器:

    $ podman container run -d --pod web-pod --name=web-container docker.io/library/httpd
  3. 列出与其关联的所有 pod 和容器:

    $ podman ps --pod
    
    CONTAINER ID  IMAGE                           COMMAND           CREATED        STATUS            PORTS       NAMES               POD ID        PODNAME
    58653cf0cf09  k8s.gcr.io/pause:3.5                              4 minutes ago  Up 3 minutes ago              4e61a300c194-infra  4e61a300c194  web-pod
    b3f4255afdb3  docker.io/library/httpd:latest  httpd-foreground  3 minutes ago  Up 3 minutes ago              web-container  4e61a300c194  web-pod
  4. 根据 docker.io/library/fedora 镜像在 web-pod 中运行容器:

    $ podman container run -it --rm --pod web-pod docker.io/library/fedora curl localhost
    
    <html><body><h1>It works!</h1></body></html>

    您可以看到容器可以访问 web-container