Raspberry PiでDockerを使ってみた備忘録
以下を参照
https://docs.docker.com/engine/install/debian/
環境
Raspberry Pi 4B(メモリ4GB)
Raspberry Pi OS 10.4
インストール
インストールして、ユーザー権限を付与します。
その後、再起動。
$ curl -sSL https://get.docker.com/ | sh
$ sudo usermod -aG docker pi
$ sudo systemctl isolate reboot.target
コンテナの起動
再起動後、dockerが動作するか確認します。
$ docker -v
Docker version 19.03.12, build 48a6621
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm32v7)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
dockerの自動起動の設定
$ sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
$ systemctl is-enabled docker
enabled
次に、以下を実行してubuntuコンテナを起動してみます。
docker run -it ubuntu bash
-iはコンテナの標準入力に接続するオプション
-tはターミナルを割り当てるオプション
コンテナ名を指定する場合は、--nameオプションを使用。
指定しないとランダムな名前が割り当てられるようです。
初回はイメージの取得に時間を要します。
$ docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
86924fd76ad7: Pull complete
8e967235e6ad: Pull complete
fabf100c8ea1: Pull complete
344cec738d22: Pull complete
Digest: sha256:5d1d5407f353843ecf8b16524bc5565aa332e9e6a1297c73a92d3e754b8a636d
Status: Downloaded newer image for ubuntu:latest
root@6426a92ad57c:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2716 2148 pts/0 Ss 2020 0:00 bash
root 11 0.0 0.0 4376 1744 pts/0 R+ 2020 0:00 ps aux
コンテナを終了するときは、コンテナ内でexitを実行します。
root@6426a92ad57c:/# exit
exit
pi@raspberrypi:~ $
取得したイメージは、dockerのimagesコマンドを使用して確認できます。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 014028cfedab 5 days ago 50.7MB
hello-world latest 851163c78e4a 6 months ago 4.85kB
2回目以降の起動時は高速
$ docker run -it ubuntu bash
root@0cb3b5aab220:/#
コンテナを終了せずに抜ける時は、CTRL+P CTRL+Qを押下。
root@0cb3b5aab220:/# pi@raspberrypi:~ $
再度接続する時は、dockerのattachコマンドを使用。
今回はコンテナIDを指定して接続。
コンテナIDは一部の指定だけでも良いようです。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0cb3b5aab220 ubuntu "bash" About a minute ago Up About a minute festive_lamarr
$ docker attach 0cb3
root@0cb3b5aab220:/#
コンテナの再開
再開させるには、dockerのstartコマンドを使用。
終了させるには、dockerのstopコマンドを使用。
root@0cb3b5aab220:/# exit
exit
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0cb3b5aab220 ubuntu "bash" 18 minutes ago Exited (0) 10 seconds ago festive_lamarr
$ docker start 0cb3
0cb3
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0cb3b5aab220 ubuntu "bash" 23 minutes ago Up 11 seconds festive_lamarr
$ docker stop 0cb3
0cb3
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0cb3b5aab220 ubuntu "bash" 24 minutes ago Exited (0) 2 seconds ago festive_lamarr