質問: ### Windows WSL2 + Docker Desktop Community(2.3.0.3) stable ### Linux Ubuntu 18.04 LTS セットアップ手順 ``` Linuxの環境はConoHaというVPS業者でUbuntu 18.04 LTSのVPSをレンタルしてDockerを1からインストールしてテストしました sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io systemctl start docker docker run -p 80:80 nginx docker network inspect bridge | grep 172.17 curl http://127.0.0.1 (みれる) curl http://172.17.0.2 (みれる) ```
回答: コンテナのアドレス体系のゲートウェイである `docker0 bridge` が Windows の場合は Docker Desktop の背後で動いている仮想マシン (Hyper-V など) の中にあり、 独自の方法で通信する仕組みになっていることが原因のようです 参考: Networking features in Docker Desktop for Windows | Docker Documentation また、ご存知かもしれませんが、 IP アドレスでアクセスすることはスケーリング等の観点から望ましくなく、 コンテナ同士ではサービス名、 外部からはホストに公開されたポートを通じてアクセスするように設計した方が良いとされています 参考: Answer: Provide static IP to docker containers via docker-compose