11.5. ポートマッピングによるコンテナー間の通信


2 つのコンテナー間で通信する最も便利な方法は、公開ポートを使用することです。ポートの公開は、自動と手動の 2 つの方法で行うことができます。

前提条件

  • 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

    以下が確認できます。

    • コンテナー web1 には公開ポートがなく、コンテナーネットワークまたはブリッジにでのみアクセスできます。
    • コンテナー web2 は、ポート 43595 と 42423 を自動的にマッピングして、それぞれアプリケーションポート 8080 と 8443 を公開します。

      注記

      registry.access.redhat.com/8/httpd-24 イメージの ContainerfileEXPOSE 8080EXPOSE 8443 コマンドがあるため、自動ポートマッピングが可能です。

    • コンテナー web3 は手動でポートを公開しています。ホストポート 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>
    ...
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.