dockerでalipneのコンテナを使用してapk updateコマンドを実行しようとしたところ、下記のようにサーバへの接続エラーが発生しました。
$ docker run -it --rm python:3.6-alpine apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.9/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.b89edf6e.tar.gz: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.9/community: temporary error (try again later)
WARNING: Ignoring APKINDEX.737f7e01.tar.gz: No such file or directory
2 errors; 34 distinct packages available
シェルに入って直接wgetしても、bad address 'dl-cdn.alpinelinux.org'
エラーが表示され接続に失敗します。ホストOSからだとアクセスできるので、dockerが問題の可能性がたかそうでした。
$ docker run -it --rm python:3.6-alpine /bin/sh
$ wget https://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
bad address 'dl-cdn.alpinelinux.org'
色々試したところ、firewalldをstartした後にdockerコンテナからネットワークアクセスすると問題が再現しました。
解決法
以下のコマンドでdockerを再起動したら、問題が解消しました。 理由は不明ですがfirewalldを起動した後はdockerの再起動が必要なようです。
$ sudo systemctl restart docker
こちらもおススメ