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
なども試したが,これらは駄目だった。
詳細はよくわからないが,ひとまず解決できたので,次回に備えたい。
リンク