Last active
July 4, 2024 07:43
-
-
Save bartprokop/15b07ec2502c59cf8020b1541ad57d5c to your computer and use it in GitHub Desktop.
Arch Linux Docker install with BTRFS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Install Docker first | |
pacman -S docker | |
# Create subvolume for Docker images | |
cd /mnt/t20root | |
btrfs subvolume create svols/docker | |
# Create subvolume 'svols/docker' | |
btrfs subvolume list . | |
# ID 256 gen 1349 top level 5 path svols/root | |
# ID 257 gen 1337 top level 5 path svols/home | |
# ID 263 gen 1350 top level 5 path svols/docker | |
# Edit /etc/fstab | |
nano /etc/fstab | |
# # /dev/sda2 UUID=381dc812-9bde-4a4e-8af1-cd6546ffec6e | |
# LABEL=t20sda2 /var/lib/docker btrfs rw,noatime,nodiratime,compress=zstd:3,space_cache=v2,subvol=/svols/docker 0 0 | |
reboot | |
# Check if mount directory exists and if subvolume is mounted | |
ls -la /mnt/t20root/svols/root/var/lib | |
# drwxr-xr-x 1 root root 0 May 22 17:32 docker | |
mount -v | |
# /dev/sda2 on /var/lib/docker type btrfs (rw,noatime,nodiratime,compress=zstd:3,space_cache=v2,subvolid=263,subvol=/svols/docker) | |
# Finally start and enable docker - https://wiki.archlinux.org/title/Systemd#Using_units | |
systemctl start docker | |
systemctl enable docker | |
# Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service. | |
# Testing it | |
docker run -it --rm archlinux bash -c "echo hello world" | |
# Unable to find image 'archlinux:latest' locally | |
# latest: Pulling from library/archlinux | |
# 6b2c4032adc9: Pull complete | |
# e511435eb07f: Pull complete | |
# Digest: sha256:ebe6578e11149ab4ab294bc0d1c0907d5a1c77a39707802179fdb6519a81d6e2 | |
# Status: Downloaded newer image for archlinux:latest | |
# hello world | |
# list subvolumens from / | |
btrfs subvolume list / | |
# ID 256 gen 1398 top level 5 path svols/root | |
# ID 257 gen 1391 top level 5 path svols/home | |
# ID 263 gen 1388 top level 5 path svols/docker | |
# ID 264 gen 1385 top level 263 path svols/docker/btrfs/subvolumes/f864609c071e1a5d559a77aec83a1f8d72e95c37475c1f10f36e5a488d3075e8 | |
# ID 265 gen 1386 top level 263 path svols/docker/btrfs/subvolumes/67e302d7c5852f57fb2073b0ab06be5a3909f3137f9c0a1ace8326f37ee6cfb1 | |
# list subvolumens from svols/docker | |
btrfs subvolume list /mnt/t20root/svols/docker | |
# ID 256 gen 1398 top level 5 path svols/root | |
# ID 257 gen 1391 top level 5 path svols/home | |
# ID 263 gen 1388 top level 5 path svols/docker | |
# ID 264 gen 1385 top level 263 path btrfs/subvolumes/f864609c071e1a5d559a77aec83a1f8d72e95c37475c1f10f36e5a488d3075e8 | |
# ID 265 gen 1386 top level 263 path btrfs/subvolumes/67e302d7c5852f57fb2073b0ab06be5a3909f3137f9c0a1ace8326f37ee6cfb1 | |
# some more "ambitious" test | |
docker run -d -p 80:80 docker/getting-started | |
docker ps | |
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |
# 7672d0dca7fd docker/getting-started "/docker-entrypoint.…" 7 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp jovial_lichterman | |
# Try access server on port 80 to check if container is running properly |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment