Arch Linux の Docker Image を作る

Dockerhub に ArchLinux のイメージがあるので自分で作る必要はないものの base image を作ったことがなかったので勉強がてら作ってみた。

hub.docker.com

環境

$ mkdir archlinux-docker
$ cd archlinux-docker
$ wget http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2020.06.01/archlinux-bootstrap-2020.06.01-x86_64.tar.gz
$ sudo tar xf archlinux-bootstrap-2020.06.01-x86_64.tar.gz

pacman を使えるようにするために近くのミラーサーバのコメントを外す

$ sudo vim root.x86_64/etc/pacman.d/mirrorlist

pacman を使うとスペースが足りないというエラーがでるので pacman.confCheckSpaceコメントアウトする。

$ sudo sed -i s/CheckSpace/#CheckSpace/ root.x86_64/etc/pacman.conf

chroot で入って必要なものをインストールする。

$ sudo root.x86_64/bin/arch-chroot root.x86_64/
$ pacman-key --init
$ pacman-key --populate archlinux
$ pacman -Syu base
$ exit

tar で固めて docker import で image を作る

$ sudo tar -C root.x86_64 -c . | docker import - archlinux

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
archlinux           latest              af69942a9094        10 seconds ago      641MB

$ docker run --rm archlinux cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux

参考