事象
Docker Hub等ではなく独自にコンテナレジストリを立ち上げており、その名前解決をhostsで行う必要があり、かつ、Docker Desktopを使用しているとき、docker loginをすると、次のようなエラーが発生する場合があります。
Error response from daemon: Get "https://${ホスト名}/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Error response from daemon: Get "https://${ホスト名}/v2/": dial tcp ***.***.***.***:443: i/o timeout (Client.Timeout exceeded while awaiting headers)
原因
Docker Desktopの場合、Docker Daemonが参照するhostsファイルが/etc/hostsではないためです。
OSがLinuxの場合は/etc/hostsで問題ありません。
対応
Windows
WSLディストロ内の/etc/hostsではなくC:\windows\system32\drivers\etc\hostsにコンテナレジストリのアドレスとホスト名を追記してください。
Mac
/etc/hostsではなく/private/etc/hostsにコンテナレジストリのアドレスとホスト名を追記してください。