DockerでUbuntu build時のDNSエラーの対策

Amazon Kinesis Video Streamsのサンプル (amazon-kinesis-video-streams-demos/Dockerfile at master · aws-samples/amazon-kinesis-video-streams-demos) のビルドに,Docker (19.03.6) をJetson Nano (Ubuntu 18.04) で初めて使っている。

その際に,UbuntuのDockerfileで以下のコマンドでビルドを行うと,APTがDNSエラーで失敗してしまった。

sudo docker build -t rtspdockertest .
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Err:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease
  Temporary failure resolving 'ports.ubuntu.com'
Err:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease
  Temporary failure resolving 'ports.ubuntu.com'
Err:3 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease
  Temporary failure resolving 'ports.ubuntu.com'
Err:4 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease
  Temporary failure resolving 'ports.ubuntu.com'
Reading package lists...
W: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/bionic/InRelease  Temporary failure resolving 'ports.ubuntu.com'

試行錯誤したところ,「networking – Docker containers can’t resolve DNS on Ubuntu 14.04 Desktop Host – Server Fault」の方法で解決した。

以下のコマンドを実行して解決した。

# sudo apt install bridge-utils
sudo pkill docker
sudo iptables -t nat -F
sudo ifconfig docker0 down
sudo brctl delbr docker0
sudo systemctl docker restart

なお,「apt get – Docker build “Could not resolve ‘archive.ubuntu.com'” apt-get fails to install anything – Stack Overflow」に書かれている/etc/default/docker/etc/docker/daemon.json--dns--network=hostなども試したが,これらは駄目だった。

詳細はよくわからないが,ひとまず解決できたので,次回に備えたい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です