😦

コンテナ内で apt update -y を実行するとエラーが出力される問題の解決方法

2024/06/10に公開

概要

コンテナ内で必要なモジュールをインストールする前に apt update -y を実行するとエラーが出力された。
環境固有の問題にも思われたが、その解決策を掲示する。

実行環境

  • Windows 10
  • PowerShell 5.1.19041.4412
  • Rancher Desktop
  • Docker version 24.0.6-rd

発生した事象

作成したコンテナ内で apt update -y を事項した際に以下のエラーが出力された。

Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Err:2 http://archive.ubuntu.com/ubuntu jammy InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease  
Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease  Temporary failure resolving 'security.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.

使用したDockerfileは以下の通りです。

FROM ubuntu:22.04

解決方法

Dockerfileをもとにビルドしたイメージからコンテナを起動する際のコマンドに --dns=8.8.8.8 を追加することでエラーは解決された。
実際に使用したコマンドは以下の通り。

docker run -it -d --rm --dns=8.8.8.8 --name nginx nginx:stable

参考記事

Dockerコンテナでapt update が失敗するのを対応したメモ
8.8.8.8 に該当するパブリックDNSとは
Use a proxy server with the Docker CLI

Discussion