11.7. 포트 매핑을 사용하여 컨테이너 간 통신
격리된 서비스와 외부 클라이언트 간의 통신을 활성화하기 위해 네트워크 포트를 Red Hat Enterprise Linux 컨테이너에 매핑할 수 있습니다. 포트 매핑을 구성하면 특정 컨테이너화된 애플리케이션을 안전하게 노출하고 환경으로 들어오는 트래픽의 흐름을 정확하게 제어할 수 있습니다.
사전 요구 사항
-
container-toolsmeta-package가 설치되어 있습니다.
프로세스
게시되지 않은 컨테이너를 실행합니다.
# podman run -dt --name=web1 ubi10/httpd-24자동으로 게시된 컨테이너를 실행합니다.
# podman run -dt --name=web2 -P ubi10/httpd-24수동으로 게시된 컨테이너를 실행하고 컨테이너 포트 8080을 게시합니다.
# podman run -dt --name=web3 -p 8888:8080 ubi10/httpd-24모든 컨테이너를 나열합니다.
# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES db23e8dabc74 registry.access.redhat.com/ubi10/httpd-24:latest /usr/bin/run-http... 23 seconds ago Up 23 seconds 8080/tcp, 8443/tcp web1 1824b8f0a64b registry.access.redhat.com/ubi10/httpd-24:latest /usr/bin/run-http... 18 seconds ago Up 18 seconds 0.0.0.0:33127->8080/tcp, 0.0.0.0:37679->8443/tcp web2 39de784d917a registry.access.redhat.com/ubi10/httpd-24:latest /usr/bin/run-http... 5 seconds ago Up 5 seconds 0.0.0.0:8888->8080/tcp, 8443/tcp web3다음을 볼 수 있습니다.
-
컨테이너
web1에는 게시된 포트가 없으며 컨테이너 네트워크 또는 브리지에서만 연결할 수 있습니다. 컨테이너
web2에는 각각 애플리케이션 포트 8080 및 8443을 게시하기 위해 각각 33127 및 37679 포트를 자동으로 매핑했습니다.자동 포트 매핑은 Containerfile의
registry.access.redhat.com/ubi10/httpd-24:latest이미지에 Containerfile 의EXPOSE 8080및EXPOSE 8443명령이 있기 때문에 가능합니다.-
컨테이너
web3에는 수동으로 게시된 포트가 있습니다. 호스트 포트 8888은 컨테이너 포트 8080에 매핑됩니다.
-
컨테이너
web1및web3컨테이너의 IP 주소를 표시합니다.# podman inspect --format='{{.NetworkSettings.IPAddress}}' web1 # podman inspect --format='{{.NetworkSettings.IPAddress}}' web3<IP>:<port> 표기법을 사용하여
web1컨테이너에 연결합니다.# curl 10.88.0.2:8080 ... <title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title> ...localhost:<port> 표기법을 사용하여
web2컨테이너에 연결합니다.# curl localhost:43595 ... <title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title> ...<IP>:<port> 표기법을 사용하여
web3컨테이너에 연결합니다.# curl 10.88.0.4:8080 ... <title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title> ...