質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Debian

Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

2回答

19765閲覧

Dockerのコンテナから外部へ通信できない

yamakakeudon

総合スコア8

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Debian

Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/10/27 13:37

編集2020/11/05 13:12

前提・実現したいこと

Dockerのバージョンを18.x(正確なバージョンは失念)系から19.03.13へアップグレードしたところ、
コンテナから外部向けに通信できなくなりました。
この状況を解消したいです。

状態

pingの状況

以下の通り、ホスト名・IPアドレスのどちらの指定でもpingで疎通できない状態です。

$ docker run -it --rm debian ping -c 1 google.com ping: google.com: Temporary failure in name resolution $ docker run -it --rm debian ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. --- 8.8.8.8 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms

なお、ホストOS上ではどちらも疎通できている旨確認済みです。

ネットワーク周りの設定

ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether f6:08:0d:fa:10:b4 brd ff:ff:ff:ff:ff:ff 3: sit0: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default link/sit 0.0.0.0 brd 0.0.0.0 4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000 link/ether 34:c3:d2:93:cd:23 brd ff:ff:ff:ff:ff:ff 5: p2p0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000 link/ether 36:c3:d2:93:cd:23 brd ff:ff:ff:ff:ff:ff 6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:5b:4a:1b:70 brd ff:ff:ff:ff:ff:ff
iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy DROP) target prot opt source destination DOCKER-USER all -- anywhere anywhere DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED DOCKER all -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain DOCKER (1 references) target prot opt source destination Chain DOCKER-ISOLATION-STAGE-1 (1 references) target prot opt source destination DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere RETURN all -- anywhere anywhere Chain DOCKER-ISOLATION-STAGE-2 (1 references) target prot opt source destination DROP all -- anywhere anywhere RETURN all -- anywhere anywhere Chain DOCKER-USER (1 references) target prot opt source destination RETURN all -- anywhere anywhere
iptables -L -t nat
Chain PREROUTING (policy ACCEPT) target prot opt source destination DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination DOCKER all -- anywhere !loopback/8 ADDRTYPE match dst-type LOCAL Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 172.17.0.0/16 anywhere Chain DOCKER (2 references) target prot opt source destination RETURN all -- anywhere anywhere
sysctl net.ipv4.ip_forward(2020/10/28 19:42追記)
net.ipv4.ip_forward = 1
firewalld について(2020/10/28 19:42追記)

firewalldは未使用です。

docker network inspect bridge(2020/11/05 21:16追記)
[ { "Name": "bridge", "Id": "168c88ff61f7714631933374a51b27a0a17315613034eb352cfb4ae6b6565904", "Created": "2020-11-05T21:11:47.467361496+09:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16", "Gateway": "172.17.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": { "com.docker.network.bridge.default_bridge": "true", "com.docker.network.bridge.enable_icc": "true", "com.docker.network.bridge.enable_ip_masquerade": "true", "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0", "com.docker.network.bridge.name": "docker0", "com.docker.network.driver.mtu": "1500" }, "Labels": {} } ]
docker network ls(2020/11/05 21:16追記)
NETWORK ID NAME DRIVER SCOPE 168c88ff61f7 bridge bridge local dbd4737f60a2 host host local 8f72254d2392 none null local
docker run -it --rm debian ip a(2020/11/05 22:11追記)
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: sit0: <NOARP> mtu 1480 qdisc noop state DOWN group default link/sit 0.0.0.0 brd 0.0.0.0 9: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever

試したこと

ホストOSの再起動

reboot

Dockerサービスの再起動

service docker restart

Dockerサービスを停止した上でDokcerのブリッジ関連の設定を削除し、Dockerサービスを改めて起動

service docker stop iptables -t nat -F ifconfig docker0 down brctl delbr docker0 service docker start

補足情報(FW/ツールのバージョンなど)

稼働環境

アーキテクチャ:ARM v8(Pine64)
ホストOS:ARMBIAN 5.60 stable Debian GNU/Linux 9 (stretch)
インストールしたDockerのパッケージ名:Docker-ce
インストールに使ったsources.listの内容:

deb [arch=arm64] https://download.docker.com/linux/debian stretch stable

※今回のDockerのアップグレード時に、jessieからstretch に変更
(OS自体はDockerアップグレード前からstretchを使っており、今回の事象発生前後で変更なし)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2020/10/28 08:13

"sysctl net.ipv4.ip_forward" は 1 になっていますでしょうか? あと、firewalld を使っているのであれば、"firewall-cmd --list-all-zones" で出口のネットワークインターフェース(eth0?)に紐付いているゾーンが "masquerade: yes" になっているかも。
yamakakeudon

2020/10/28 10:40

ありがとうございます。 確認いただいた件は以下の通りでした。 ・sysctl net.ipv4.ip_forwardについて  値は 1 でした。  > net.ipv4.ip_forward = 1 ・firewalld について  未使用です。
Moineau26518805

2020/11/04 06:14

こちらのコマンドの結果を記載していただけますか? docker network inspect bridge docker network ls
yamakakeudon

2020/11/05 12:20

ありがとうございます。 確認いただいた件を追記しました。 ご確認ください。
Moineau26518805

2020/11/05 12:49 編集

Docker のGateway 172.17.0.1とインスタンスのIPが衝突しているかもしれないです docker run -it --rm debian ip a とかでipを確認してみてください
yamakakeudon

2020/11/05 13:13

確認いただいた件を追記しました。 eth0 は 172.17.0.2 でしたので、衝突はしていなさそうですがいかがでしょうか?
guest

回答2

0

ホストOSごと再構築することで事象解消いたしました。

改めて構築した環境
ホストOS:Armbian 20.08.17 Buster with Linux 5.8.16-sunxi64
Docker:19.03.13

残念ながら既存環境を維持しての解消はできませんでしたが、
最終的な目標は達成できました。

ご支援いただきありがとうございました。

投稿2020/11/15 11:07

yamakakeudon

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

下記のAnswersに書いてあることを上から順に確認していくと、どれかで解決するかも?
https://stackoverflow.com/questions/20430371/my-docker-container-has-no-internet

投稿2020/11/13 14:21

sukekeke0

総合スコア331

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamakakeudon

2020/11/15 05:39

ありがとうございます。 提示いただいたサイトを参考に、設定確認・変更を試してみましたが、 残念ながら事象解消せずです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問