Dockerコンテナのすべての内部IPアドレスを取得する方法


  1. Docker CLIを使用する方法: Docker CLIを使用して、実行中のすべてのコンテナのIPアドレスを取得することができます。次のコマンドを使用します。

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q)

    このコマンドは、docker ps -qを使用して実行中のコンテナのIDを取得し、docker inspectを使用して各コンテナのIPアドレスを出力します。

  2. Docker SDKを使用する方法: Docker SDKを使用することで、プログラムからDocker APIにアクセスして内部IPアドレスを取得することができます。以下にPythonを使用した例を示します。

    import docker
    client = docker.from_env()
    containers = client.containers.list()
    
    for container in containers:
       networks = container.attrs['NetworkSettings']['Networks']
       for network in networks:
           ip_address = networks[network]['IPAddress']
           print(ip_address)

    このコードは、docker.from_env()を使用してDockerクライアントを作成し、containers.list()を使用して実行中のコンテナのリストを取得します。各コンテナのNetworkSettingsから内部IPアドレスを取得し、出力します。

これらは、Dockerコンテナのすべての内部IPアドレスを取得するためのシンプルで簡単な方法です。必要に応じて、これらのコード例をカスタマイズして使用することができます。また、Dockerのバージョンや環境によっては、異なる方法が必要になる場合がありますので、公式ドキュメントやオンラインのリソースを参照してください。