RaspberryPiでDockerコンテナを使用したときにネットワークに繋がらなくなる
Q&A
Closed
解決したいこと
ラズパイ上でDockerコンテナを作成すると、メモリ使用量は殆ど増えていないのにネットワークが不安定になるのですが、ラズパイの性能ではこんなものなのでしょうか?
-
Raspberry Pi 4 4GB
$ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
-
Dockerコンテナ
FROM python:3 USER root RUN apt-get update RUN apt-get -y install locales && \ localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 ENV LANGUAGE ja_JP:ja ENV LC_ALL ja_JP.UTF-8 ENV TZ JST-9 ENV TERM xterm RUN pip install --upgrade pip RUN pip install --upgrade setuptools
発生している問題・エラー
上記のDockerfileの内容で起動した途端にネットワークの調子が悪くなり、ssh接続が出来なくなり、ping
も通らなくなりました。
コマンドの実行履歴を見てもらった方が早いと思います。↓
hoge@raspberrypi:~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
hoge@raspberrypi:~ $ free -m
total used free shared buff/cache available
Mem: 3794 599 2248 80 946 3084
Swap: 99 0 99
hoge@raspberrypi:~ $ ping 8.8.8.8 -c 3
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=59 time=8.28 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=59 time=7.90 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=59 time=8.77 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 7.901/8.317/8.768/0.354 ms
hoge@raspberrypi:~ $ docker start python3
python3
hoge@raspberrypi:~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c847782e5add docker-python3 "python3" 21 minutes ago Up 3 seconds python3
hoge@raspberrypi:~ $ free -m
total used free shared buff/cache available
Mem: 3794 604 2242 80 946 3078
Swap: 99 0 99
hoge@raspberrypi:~ $ ping 8.8.8.8 -c 3
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.3.160 icmp_seq=1 Destination Host Unreachable
From 192.168.3.160 icmp_seq=2 Destination Host Unreachable
From 192.168.3.160 icmp_seq=3 Destination Host Unreachable
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2039ms
pipe 3
追記 2023/7/21
すみません、docker-compose.ymlを上げるのを忘れていました。
version: '3'
services:
python3:
restart: always
build: .
container_name: 'python3'
working_dir: '/root/'
tty: true
また、hello-world
とnginx
コンテナは問題無く動きましたが、nginx
のコンテナの起動中にはネットワークが繋がらなくなる、python3
と同じ現象が起きました。もちろんpython3
コンテナは起動していないです。実機でしか動かせてないので、ログはないですが、↓に挙げていただいた内容と同じです。
$ curl -s localhost:9090 | grep "Welcome"
<title>Welcome to nginx!</title>
<h1>Welcome to nginx!</h1>
全てのコンテナを停止してdocker system prune -a
実行した後に、再度nginx
をpullしてコンテナを作成しました。しかし、問題の状況は変わらず、コンテナの起動中はネットワークに繋がらなくなってしまいました。(コンテナ自体は問題無く動作しました。)
解決しました。2023/7/23
解決しましたのでクローズいたします。(解決時用のコメントみたいなものが無いみたいのでここに追加します。)
回答してくださったお二方、ご協力ありがとうございました。
Dockerコンテナを起動した状態で、ネットワークに接続したままにすることが出来ました。
/etc/dhcpcd.conf
の設定でIPアドレスの固定をしている箇所の設定でinterface
が抜けているのが原因でした。
- 元の設定
static ip_address=192.168.3.160/24
static routers=192.168.3.1
static domain_name_servers=192.168.3.1
- 変更後
interface wlan0
static ip_address=192.168.3.160/24
static routers=192.168.3.1
static domain_name_servers=192.168.3.1
設定はしっかり確認しながらやらないといかんですね。