AWS上のdockerホストでlogin, pull, push などのリクエストをする際にEC2インスタンスのdocker DNS設定が必要な時があったのでめも。
docker ログインしようとすると
$ cat .mydockerpass.txt | docker login --username foo --password-stdin
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
dockerレジストリに接続できない罠。そんなときは /etc/resolv.conf にネームサーバーを追記。
# vi /etc/resolv.conf
options timeout:2 attempts:5 ; generated by /usr/sbin/dhclient-script search ap-northeast-1.compute.internal info nameserver 172.31.0.2 nameserver 8.8.8.8 ← (追記
# systemctl restart docker
Debian コンテナ内から外部への通信が次のエラーでできないときは /etc/docker/daemon.json を作成。
Error :http://deb.debian.org/debian/dists/buster/InRelease Temporary failure resolving 'deb.debian.org'
# vi /etc/docker/daemon.json
{ "dns": ["8.8.8.8", "8.8.4.4"] }
# systemctl restart docker
これでapt-get update && apt-get install ができるようになりました。
参考URL:【Docker】イメージのビルド時にTemporary failure resolving ‘deb.debian.org’が発生する