TL;DR
DNSから送られてくるIPアドレスは外部ホストから参照する用のもの
同一コンピュータ上のコンテナどうしでアクセスする際は、コンテナネットワークで割り当てられたIPアドレスを使用する必要がある
現象
同一のコンピュータのdockerで起動しているseleniumサーバとWebサーバがある
seleniumサーバからWebサーバに、ドメインを利用してアクセスしようとすると接続に失敗する
例)下記のコマンドが失敗する
curl mywebsite.com
原因
DNSから返されるIPアドレスは、WANからアクセスするためのもの。
同一コンピュータのdockerは同じローカルネットワーク上に存在しているため、これらで通信するためにはLAN上で割り当てられたIPアドレスを使用する必要がある。
解決法
mywebsite.com
をLAN用のIPアドレスで解決できるよう、/etc/hosts
に追記を行う。
コンテナのIPアドレスを確認
docker inspect your_network_name
docker-compose.yml
~~前略
your-container-name:
extra_hosts:
- "mywebsite.com:x.x.x.x" #←に繋げたいコンテナのLAN上のIPアドレスを記入