ZFS root の Ubuntu 22.04.2 LTS に snap で docker を入れるところまでは行ったんだけど、
最終的に
"Temporary failure resolving" が出てるし、以前踏んだ resolv 出来ない問題か?と思い、
Bing 先生に聞いてみると
Q:
snap で入れた docker で `docker -it --rm ubuntu` したんですが、起動したコンテナ内で `apt update` 出来ません。原因は何でしょうか?解決するにはどうしたら良いですか
A:
✓ ‘snapで入れたdockerでapt updateが出来ない’ を検索しています
✓ 回答を生成しています…
apt updateが出来ない原因として、コンテナ内から外に接続できない状況が考えられます。Dockerもしくはコンテナにプロキシ設定されると解決するようです[1]。また、DNSサーバーにアクセスできないことも原因の一つかもしれません。dockerコンテナ起動時のrunコマンドのオプションでDNSサーバーを指定することができます[2]。
詳細情報:
1. https://teratail.com/questions/349415
2. https://ja.stackoverflow.com/questions/49974/docke...
3. https://ja.stackoverflow.com/questions/67752/docke...
Q:
--dns 8.8.8.8 や --dns 192.168.1.1 および --dns 127.0.0.1 は試してみましたが効果がありませんでした。
A:
DNSサーバーの設定が効果がなかったとのことですね。他にも、コンテナ内から外に接続できない状況が考えられます。Dockerもしくはコンテナにプロキシ設定されると解決するようです。プロキシ設定について詳しく知りたいですか?
Q:
プロキシ設定について詳しく教えてください。
A:
✓ ‘Docker プロキシ設定’ を検索しています
✓ 回答を生成しています…
DockerはLinuxシステムの環境変数にあるhttp_proxyやhttps_proxyとは別に、専用のproxy設定を施す必要があります[1]。Dockerクライアント上では、ユーザのホームディレクトリ内で~/.docker/config.jsonファイルを作成・編集します。以下の例のようなJSONを追加します[2]。
詳細情報:
1. https://qiita.com/KenFujita/items/ed5a73f83273b4ef...
2. https://docs.docker.jp/network/proxy.html
3. https://maku77.github.io/p/w69cfim/
4. https://qiita.com/dkoide/items/ca1f4549dc426eaf373...
5. https://qiita.com/m-tmatma/items/5718ac5294e6acc61...
Q:
LAN 内から利用できる proxy はないのですが?
A:
LAN内から利用できるプロキシがない場合、プロキシ設定は不要です。他にも、コンテナ内から外に接続できない原因が考えられます。例えば、ファイアウォールの設定やネットワークの問題などが考えられます。
Q:
ufw の可能性はありますか?その場合、解消する方法はありますか?
A:
✓ ‘ufw docker’ を検索しています
✓ 回答を生成しています…
はい、ufwの設定が原因でコンテナ内から外に接続できない可能性があります。ufwの設定はDockerでは制御されず、iptablesで設定します[1]。ufw-dockerというプロジェクトがあり、DockerとUFWのセキュリティ問題を修正することができます[2]。
詳細情報:
1. https://qiita.com/ohhara_shiojiri/items/e08076009c...
2. https://github.com/chaifeng/ufw-docker
3. https://qiita.com/jqtype/items/9574ef74868b7332393...
そこで、
`journalctl -xe` してみると
一応、聞いてみると、
Q:
`journalctl -xe` してみると以下のようなログがありました。
```
kernel: [UFW BLOCK] IN=docker0 OUT=br0 PHYSIN=veth73415c4 MAC=##:##:##:##:##:##:##:##:##:##:##:##:##:## SRC=172.17.0.2 DST=192.168.1.1 LEN=79 TOS=0x00 PREC=0x00 TTL=63 ID=60379 DF PROTO=UDP SPT=47072 DPT=53 LEN=59
kernel: [UFW BLOCK] IN=docker0 OUT=br0 PHYSIN=veth73415c4 MAC=##:##:##:##:##:##:##:##:##:##:##:##:##:## SRC=172.17.0.2 DST=192.168.1.1 LEN=78 TOS=0x00 PREC=0x00 TTL=63 ID=46377 DF PROTO=UDP SPT=51256 DPT=53 LEN=58
```
A:
ログを見ると、ufwがDockerコンテナからのトラフィックをブロックしているようです。これは、ufwの設定が原因でコンテナ内から外に接続できない可能性が高いです。ufw-dockerというプロジェクトがあり、DockerとUFWのセキュリティ問題を修正することができます。
とのこと。
docker run -it --rm ubuntuでコンテナ立ち当ててコンテナ内から
apt updateしたいんだけど、
0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com]でしばらくだんまりを続けた後、
Ign:1 http://archive.ubuntu.com/ubuntu jammy InRelease Ign:2 http://security.ubuntu.com/ubuntu jammy-security InRelease 0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com]
Ign:1 http://archive.ubuntu.com/ubuntu jammy InRelease Ign:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease Ign:2 http://security.ubuntu.com/ubuntu jammy-security InRelease 0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com]のような箇所で何度かだんまりを続け、
最終的に
$ docker run -it --rm ubuntu root@725e2297ddcb:/# apt update Ign:1 http://archive.ubuntu.com/ubuntu jammy InRelease Ign:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease Ign:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease Ign:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Ign:1 http://archive.ubuntu.com/ubuntu jammy InRelease Err:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Temporary failure resolving 'security.ubuntu.com' Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease Ign:1 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 Err:1 http://archive.ubuntu.com/ubuntu jammy InRelease Temporary failure resolving 'archive.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. root@725e2297ddcb:/#のような感じで失敗する。
"Temporary failure resolving" が出てるし、以前踏んだ resolv 出来ない問題か?と思い、
docker run -it --rm --dns 8.8.8.8 ubuntuも試してみたが駄目。
Bing 先生に聞いてみると
Q:
snap で入れた docker で `docker -it --rm ubuntu` したんですが、起動したコンテナ内で `apt update` 出来ません。原因は何でしょうか?解決するにはどうしたら良いですか
A:
✓ ‘snapで入れたdockerでapt updateが出来ない’ を検索しています
✓ 回答を生成しています…
apt updateが出来ない原因として、コンテナ内から外に接続できない状況が考えられます。Dockerもしくはコンテナにプロキシ設定されると解決するようです[1]。また、DNSサーバーにアクセスできないことも原因の一つかもしれません。dockerコンテナ起動時のrunコマンドのオプションでDNSサーバーを指定することができます[2]。
詳細情報:
1. https://teratail.com/questions/349415
2. https://ja.stackoverflow.com/questions/49974/docke...
3. https://ja.stackoverflow.com/questions/67752/docke...
Q:
--dns 8.8.8.8 や --dns 192.168.1.1 および --dns 127.0.0.1 は試してみましたが効果がありませんでした。
A:
DNSサーバーの設定が効果がなかったとのことですね。他にも、コンテナ内から外に接続できない状況が考えられます。Dockerもしくはコンテナにプロキシ設定されると解決するようです。プロキシ設定について詳しく知りたいですか?
Q:
プロキシ設定について詳しく教えてください。
A:
✓ ‘Docker プロキシ設定’ を検索しています
✓ 回答を生成しています…
DockerはLinuxシステムの環境変数にあるhttp_proxyやhttps_proxyとは別に、専用のproxy設定を施す必要があります[1]。Dockerクライアント上では、ユーザのホームディレクトリ内で~/.docker/config.jsonファイルを作成・編集します。以下の例のようなJSONを追加します[2]。
{ "proxies": { "default": { "httpProxy": "http://proxy.example.com:8080", "httpsProxy": "http://proxy.example.com:8080", "noProxy": "*.test.example.com,.example2.com" } } }必要があれば、プロキシのタイプとしてhttpsProxyやftpProxyに置き換えます[2]。
詳細情報:
1. https://qiita.com/KenFujita/items/ed5a73f83273b4ef...
2. https://docs.docker.jp/network/proxy.html
3. https://maku77.github.io/p/w69cfim/
4. https://qiita.com/dkoide/items/ca1f4549dc426eaf373...
5. https://qiita.com/m-tmatma/items/5718ac5294e6acc61...
Q:
LAN 内から利用できる proxy はないのですが?
A:
LAN内から利用できるプロキシがない場合、プロキシ設定は不要です。他にも、コンテナ内から外に接続できない原因が考えられます。例えば、ファイアウォールの設定やネットワークの問題などが考えられます。
Q:
ufw の可能性はありますか?その場合、解消する方法はありますか?
A:
✓ ‘ufw docker’ を検索しています
✓ 回答を生成しています…
はい、ufwの設定が原因でコンテナ内から外に接続できない可能性があります。ufwの設定はDockerでは制御されず、iptablesで設定します[1]。ufw-dockerというプロジェクトがあり、DockerとUFWのセキュリティ問題を修正することができます[2]。
詳細情報:
1. https://qiita.com/ohhara_shiojiri/items/e08076009c...
2. https://github.com/chaifeng/ufw-docker
3. https://qiita.com/jqtype/items/9574ef74868b7332393...
そこで、
`journalctl -xe` してみると
3月 23 17:32:41 HOSTNAME systemd-resolved[709482]: Using degraded feature set TCP instead of UDP for DNS server 127.0.1.1. 3月 23 17:32:41 HOSTNAME systemd-resolved[709482]: Using degraded feature set UDP instead of TCP for DNS server 127.0.1.1. 3月 23 17:32:41 HOSTNAME kernel: [UFW BLOCK] IN=docker0 OUT=br0 PHYSIN=veth73415c4 MAC=##:##:##:##:##:##:##:##:##:##:##:##:##:## SRC=172.17.0.2 DST=192.168.1.1 LEN=79 TOS=0x00 PREC=0x00 TTL=63 ID=60379 DF PROTO=UDP SPT=47072 DPT=53 LEN=59 3月 23 17:32:41 HOSTNAME kernel: [UFW BLOCK] IN=docker0 OUT=br0 PHYSIN=veth73415c4 MAC=##:##:##:##:##:##:##:##:##:##:##:##:##:## SRC=172.17.0.2 DST=192.168.1.1 LEN=78 TOS=0x00 PREC=0x00 TTL=63 ID=46377 DF PROTO=UDP SPT=51256 DPT=53 LEN=58みたいなログがあったので、ufw 確定かなって感じ。
一応、聞いてみると、
Q:
`journalctl -xe` してみると以下のようなログがありました。
```
kernel: [UFW BLOCK] IN=docker0 OUT=br0 PHYSIN=veth73415c4 MAC=##:##:##:##:##:##:##:##:##:##:##:##:##:## SRC=172.17.0.2 DST=192.168.1.1 LEN=79 TOS=0x00 PREC=0x00 TTL=63 ID=60379 DF PROTO=UDP SPT=47072 DPT=53 LEN=59
kernel: [UFW BLOCK] IN=docker0 OUT=br0 PHYSIN=veth73415c4 MAC=##:##:##:##:##:##:##:##:##:##:##:##:##:## SRC=172.17.0.2 DST=192.168.1.1 LEN=78 TOS=0x00 PREC=0x00 TTL=63 ID=46377 DF PROTO=UDP SPT=51256 DPT=53 LEN=58
```
A:
ログを見ると、ufwがDockerコンテナからのトラフィックをブロックしているようです。これは、ufwの設定が原因でコンテナ内から外に接続できない可能性が高いです。ufw-dockerというプロジェクトがあり、DockerとUFWのセキュリティ問題を修正することができます。
とのこと。
とりあえず
$ sudo ufw route allow in on docker0 from any to any ルールを追加しました ルールを追加しました (v6)ってして、
$ sudo ufw status 状態: アクティブ To Action From -- ------ ---- ... Anywhere ALLOW FWD Anywhere on docker0 Anywhere (v6) ALLOW FWD Anywhere (v6) on docker0 ...ってエントリ追加してみたところ、無事 apt update が通るようになり --dns も不要だった。
タグ
コメントをかく