RaspberryPi 4 に Docker をインストールした。
はじめに
Raspberry Pi 4 にDocker をインストールした記録になります。
作業環境
・H/W: Raspberry Pi 4
・OS : Ubuntu 18.04
1. Dockerインストール
基本的には下記リンクに沿ってインストール作業をしていきます。
下には自分の環境で実行した手順を記載しています。
$ sudo apt update
$ sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
----
OK
----
$ sudo add-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io
$ docker --version
-------------------------------------
Docker version 19.03.8, build afacb8b
-------------------------------------
$ sudo usermod -aG docker ${USER}
$ sudo gpasswd -a ${USER} docker
$ docker container ls -a
------------------------------------------------------------------
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.40/containers/json?all=1:
dial unix /var/run/docker.sock: connect: permission denied
------------------------------------------------------------------
$ ls -lh /var/run/docker.sock
------------------------------------------------------------
srw-rw---- 1 root docker 0 Feb 26 23:31 /var/run/docker.sock
------------------------------------------------------------
$ sudo chmod 666 /var/run/docker.sock
$ docker container ls -a
-----------------------------------------------------------
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-----------------------------------------------------------
2. Docker-Compose インストール
Kubernetesを利用前提としているので、docker-composeは無くてもいいのですが、検証環境利用なので今のうちにインストールします。
$ sudo apt install python3-pip libffi-dev libssl-dev
$ sudo pip3 install -U docker-compose
$ docker-compose -v
--------------------------------------------
docker-compose version 1.25.4, build unknown
--------------------------------------------
3. Dockerインストールの確認と調整
Dockerのインストールが完了したら、現在の状態を確認してみます。
$ docker info
-----------------------------------------------------------------
Client:
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 19.03.8
Storage Driver: overlay2
Backing Filesystem: <unknown>
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
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: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 5.3.0-1018-raspi2
Operating System: Ubuntu 18.04.4 LTS
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 3.703GiB
Name: wpfaros-node-001
ID: TDMI:IHAL:TOTF:XKIK:EI62:MC64:KUWW:L4CN:DJYF:2NO2:X4W7:DPGH
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 limit support
WARNING: No kernel memory TCP limit support
WARNING: No oom kill disable support
-----------------------------------------------------------------
いくつかWarningメッセージがあります。内容的に色々サポートしてないと言われてます。
そんなこと言わないでサポートして欲しい。そんな思いで解決していきます。
新たにcgroup関連のパラメーターを追記すれば、解決します。
$ cd /boot/firmware
$ sudo vi nobtcmd.txt
----------------------------------------------------------------------
net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1
root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc
cgroup_enable=cpu cgroup_enable=memory cgroup_memory=1 swapaccount=1
----------------------------------------------------------------------
$ sudo reboot
$ docker info | grep warning
--> nothing message.
下記のコマンドにて、cgroupsの状態も確認出来ます。
$ cat /proc/cgroups
----
#subsys_name hierarchy num_cgroups enabled
cpuset 9 1 1
cpu 7 37 1
cpuacct 7 37 1
blkio 6 37 1
memory 0 45 0 --> 設定追加すると"1"になって有効
devices 8 37 1
freezer 3 1 1
net_cls 10 1 1
perf_event 4 1 1
net_prio 10 1 1
pids 5 42 1
rdma 2 1 1
----
おわりに。
これにて、Dockerインストールとdocker-composeのインストールは完了です。結構簡単にインストールができるのはいいですね。
#最後のwarning調査で僕は時間かかりましたけどね。
次回、Kubernetes のインストールを行います。
この記事が気に入ったらサポートをしてみませんか?