Tech Blog

Portainer で Docker 環境を管理する

サンドボックスとして頻繁に構築・更新・検証・再構築を繰り返してる SBC 上の Docker 環境を Portainer で一括管理・可視化する

今回の環境

TL;DR

1. Armbian のインストール

fastfetch

2. Docker のインストール

sudo apt update
Hit:1 http://security.debian.org bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Get:3 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:4 http://deb.debian.org/debian bookworm-backports InRelease [59.4 kB]
Hit:5 https://github.armbian.com/configng stable InRelease
Get:6 https://fi.mirror.armbian.de/apt bookworm InRelease [63.0 kB]
Get:7 https://fi.mirror.armbian.de/apt bookworm/bookworm-utils all Packages [11.7 kB]
Get:8 https://fi.mirror.armbian.de/apt bookworm/bookworm-utils arm64 Packages [367 kB]
Get:9 https://fi.mirror.armbian.de/apt bookworm/bookworm-desktop arm64 Packages [16.0 kB]
Fetched 572 kB in 11s (53.9 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
sudo apt install -y ca-certificates curl
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version (20230311+deb12u1).
curl is already the newest version (7.88.1-10+deb12u14).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Hit:1 http://security.debian.org bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Hit:4 http://deb.debian.org/debian bookworm-backports InRelease
Hit:5 https://github.armbian.com/configng stable InRelease
Get:6 https://download.docker.com/linux/debian bookworm InRelease [46.6 kB]
Get:8 https://download.docker.com/linux/debian bookworm/stable arm64 Packages [58.6 kB]
Hit:7 https://fi.mirror.armbian.de/apt bookworm InRelease
Fetched 105 kB in 2s (47.4 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  iptables libip6tc2 libnetfilter-conntrack3 libnfnetlink0 libnftnl11
Suggested packages:
  cgroupfs-mount | cgroup-lite docker-model-plugin firewalld
Recommended packages:
  apparmor docker-ce-rootless-extras git pigz xz-utils nftables
The following NEW packages will be installed:
  containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-compose-plugin iptables
  libip6tc2 libnetfilter-conntrack3 libnfnetlink0 libnftnl11
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
...
Setting up docker-ce (5:28.5.1-1~debian.12~bookworm) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u13) ...
sudo groupadd docker
groupadd: group 'docker' already exists
sudo usermod -aG docker $USER
newgrp docker
docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
198f93fd5094: Pull complete
Digest: sha256:6dc565aa630927052111f823c303948cf83670a3903ffa3849f1488ab517f891
Status: Downloaded newer image for hello-world:latest

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.
    (arm64v8)
 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/

3. Portainer のインストール

docker volume create portainer_data
portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
Unable to find image 'portainer/portainer-ce:lts' locally
lts: Pulling from portainer/portainer-ce
dd71b00e32eb: Pull complete
3ecc252cea9e: Pull complete
62a4c8e9ba55: Pull complete
762a23c439b4: Pull complete
4f043eacfef0: Pull complete
6fe2cb110014: Pull complete
bcd3271aaf1d: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:264443d4063e0f2633f3ba210ccd69aacf07344dfc792128131dec8963df0f0a
Status: Downloaded newer image for portainer/portainer-ce:lts
ba04514456b0bd7f7c6026b980f171a3afa0b8784ceed5075800c6af295b92e6

4. ログイン

https://rock-5a.local:9443

5. 初期化

Portainer

6. Get Started

Portainer

参考にしたページ