Red Hat Training

A Red Hat training course is available for RHEL 8

11.5. 포트 매핑을 사용하여 컨테이너 간 통신

두 컨테이너 간에 통신하는 가장 편리한 방법은 게시된 포트를 사용하는 것입니다. 포트는 자동 또는 수동이라는 두 가지 방법으로 게시할 수 있습니다.

사전 요구 사항

  • container-tools 모듈이 설치되어 있습니다.

절차

  1. 게시되지 않은 컨테이너를 실행합니다.

    # podman run -dt --name=web1 ubi8/httpd-24
  2. 자동으로 게시된 컨테이너를 실행합니다.

    # podman run -dt --name=web2 -P ubi8/httpd-24
  3. 수동으로 게시된 컨테이너를 실행하고 컨테이너 포트 80을 게시합니다.

    # podman run -dt --name=web3 -p 9090:80 ubi8/httpd-24
  4. 모든 컨테이너를 나열합니다.

    # podman ps
    
    CONTAINER ID  IMAGE                                            COMMAND               CREATED         STATUS             PORTS                                             NAMES
    f12fa79b8b39  registry.access.redhat.com/ubi8/httpd-24:latest  /usr/bin/run-http...  23 seconds ago  Up 24 seconds ago                                                    web1
    9024d9e815e2  registry.access.redhat.com/ubi8/httpd-24:latest  /usr/bin/run-http...  13 seconds ago  Up 13 seconds ago  0.0.0.0:43595->8080/tcp, 0.0.0.0:42423->8443/tcp  web2
    03bc2a019f1b  registry.access.redhat.com/ubi8/httpd-24:latest  /usr/bin/run-http...  2 seconds ago   Up 2 seconds ago   0.0.0.0:9090->80/tcp                              web3

    다음을 확인할 수 있습니다.

    • 컨테이너 웹1 에는 게시된 포트가 없으며 컨테이너 네트워크 또는 브리지에서만 연결할 수 있습니다.
    • 컨테이너 웹2 는 각각 애플리케이션 포트 8080 및 8443을 게시하도록 포트 43595 및 42423을 자동으로 매핑했습니다.

      참고

      Containerfileregistry.access.redhat.com/8/httpd-24 이미지에 EXPOSE 8080EXPOSE 8443 명령이 있기 때문에 자동 포트 매핑이 가능합니다.

    • 컨테이너 웹3 에는 수동으로 게시된 포트가 있습니다. 호스트 포트 9090은 컨테이너 포트 80에 매핑됩니다.
  5. web1web3 컨테이너의 IP 주소를 표시합니다.

    # podman inspect --format='{{.NetworkSettings.IPAddress}}' web1
    # podman inspect --format='{{.NetworkSettings.IPAddress}}' web3
  6. <IP>:<port> 표기법을 사용하여 web1 컨테이너에 연결합니다.

    # curl 10.88.0.14:8080
    ...
    <title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title>
    ...
  7. localhost:<port> 표기법을 사용하여 web2 컨테이너에 연결합니다.

    # curl localhost:43595
    ...
    <title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title>
    ...
  8. <IP>:<port> 표기법을 사용하여 web3 컨테이너에 도달합니다.

    # curl 10.88.0.14:9090
    ...
    <title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title>
    ...