Raspberry Pi Zero Wに、n8nをインストールする前に、Dockerは、linuxの仮想マシンという位置づけらしい。
プロセスやユーザなどを隔離して動作する。
軽量で高速に起動、停止などが可能ですと
redhat 6やfedora 20に時代ならさがせるが・・
苦慮してようやく動作にこぎつけた
最終的にこれ動作した。
balenaEtcher
https://www.balena.io/etcher/
でイメージをSDに書き込み
イメージはこれ
2021-01-11-raspios-buster-armhf-lite.zip
以下は、あまりにも多くのプロセスが稼働しておりうまく行かなかった。
2021-01-11-raspios-buster-armhf.zip
注意が必要な事
これは、避けたほうが良い。
$ sudo rpi-update #ファームウェアとOSのカーネルをバージョンアップ
これは、うまく行った
ただし、Dockerのインストールはうまく行かなかった。
$ sudo apt update #OSのパッケージを管理しているリストを更新
これで、カーネルクラッシュ
$ sudo apt full-upgrade #パッケージの更新
まず、カーネルクラッシュが頻繁に発生する。
多分、アップデートするためのメモリかWIFIの遅延だと思う。
SDカードにimgを作成
ローカルにて
WIFIの設定を書き込み変更
パスワードを変更
SSHの実行
再起動
sshでログイン
そして
Dockerのインストール
curl -sSL https://get.docker.com | sh
2回ほどカーネルクラッシュするが、ようやくインストールできた。
バージョンを確認してみる
docker -v
Docker version 20.10.5, build 55c4c88
問題無くインストールしているのがわかる
次にプロセスが存在しているか確認する。
ps aux | grep docker
root 383 1.3 14.2 923344 62896 ? Ssl 13:23 0:04 /usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock
662 2.0 0.4 7332 1968 pts/0 S+ 13:29 0:00 grep –color=auto docker
プロセスが存在している。
次に稼働状態を確認
docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
Server:
ERROR: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: dial unix /var/run/docker.sock: connect: permission denied
errors pretty printing info
と表示されるはず
実行権限によりエラーが生じる。
まず
Raspbianのsshで接続しているユーザのをDockerの実行権限を付与します
sudo usermod -aG docker $(whoami)
現在ログインしているユーザーをdockerグループへ追加
sudo gpasswd -a $(whoami) docker
次にdocker.sock にグループでの書き込み権限を付与
sudo chgrp docker /var/run/docker.sock
最後に
/var/run/docker.sockは
このアクセスは誰ができるか確認
ls -l /var/run/docker.sock
srw-rw—- 1 root docker 0 Mar 29 12:56 /var/run/docker.sock
rootもしくはdockerグループのユーザしかアクセスできない
そこで、現在のユーザをdockerグループに追加する
sudo usermod -g docker $(whoami)
再起動を実行
$ sudo /bin/systemctl restart docker.service
idを確認してみる
$ id $(whoami)
プロセスが動作すれば問題ない。
最後にdockerの状況を表示する。
docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.5
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version:
runc version:
init version:
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.25+
Operating System: Raspbian GNU/Linux 10 (buster)
OSType: linux
Architecture: armv6l
CPUs: 1
Total Memory: 430.1MiB
Name: raspberrypi
ID:
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory TCP limit support
WARNING: No oom kill disable support
WARNING: No cpuset support
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
これで、まずdockerは動作した
SDカードは、イメージを作成してバックアップしたほうが良い。
実は、ここまで来るのに、マイクロSD4枚を購入して実験した
結局、Raspberry Pi OSがの残ったのは2枚のみ。
後の2枚は、クラッシュ等により、OS自体もクラッシュ
マイクロSD自体には、損傷は見られないが再インストールはほどほどにしたいので
(´・ω・`)>