Skip to content

Instantly share code, notes, and snippets.

@siddolo
Last active May 5, 2024 19:45
Show Gist options
  • Save siddolo/b425979370cca68c6b59d1f238b522a8 to your computer and use it in GitHub Desktop.
Save siddolo/b425979370cca68c6b59d1f238b522a8 to your computer and use it in GitHub Desktop.
Raspberry Pi 4 arm64 + Docker + Portainer on USB3 storage

Raspberry Pi 4 arm64 + Docker + Portainer on USB3 storage

assume that /dev/sda1 is USB3 storage

Install docker and stop daemon

curl -sSL https://get.docker.com | sh
usermod -aG docker pi
service docker stop

Prepare external storage

mkfs.ext4 /dev/sda1
mkdir /mnt/external-storage
echo "/dev/sda1 /mnt/external-storage ext4 defaults,auto,users,rw,nofail,x-systemd.device-timeout=30 0 0" >> /etc/fstab
mount -a

Move docker workdir to external storage

rsync -avP /var/lib/docker /mnt/external-storage/
sudo rm -rf /var/lib/docker

cat > /etc/docker/daemon.json <<EOF
{
   "data-root": "/mnt/external-storage/docker"
}
EOF

service docker start

Run portainer

mkdir /mnt/external-storage/portainer-data

docker run -d \
  -p 9000:9000 \
  -p 8000:8000 \
  --name portainer \
  --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /mnt/external-storage/portainer-data:/data \
  portainer/portainer-ce:alpine

Opern Portainer

http://raspnerry.pi:9000/

@TerkishMaize
Copy link

Spent two days searching for an answer. Thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment