Dockerfiでイメージを使用する際、ベースイメージに含まれるパッケージマネージャを正しく理解しておくことが重要です。この記事では、ベースイメージのOSに基づいて適切なパッケージマネージャを確認する方法を紹介します。
ベースイメージに含まれるパッケージマネージャの確認方法
1. Nginxイメージをbashで起動
まず、NginxのDockerイメージをbashで起動します。これにより、コンテナ内でコマンドを実行できるようになります。
docker run -it nginx:latest bash
2. OSのバージョン確認
次に、コンテナ内で以下のコマンドを実行し、使用されているOSのバージョンを確認します。
cat /etc/os-release
実行結果は以下の通りです。
root@dfe351b5662d:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@dfe351b5662d:/#
この結果から、nginx:latest
イメージは Debian 12 (bookworm)
をベースにしていることがわかります。
※ Debianのコードネームは映画「Toy Story」のキャラクターからつけられており、Debian 12のコードネーム"Bookworm"は、図書室の主である眼鏡をかけたイモムシです。ちなみに、Debain 13のコードネームはTrixie
、Debian 14のコードネームはForky
に決まっています。
3. パッケージマネージャの確認とDockerfileの作成
Debian系のディストリビューションでは、aptが標準のパッケージマネージャです。そのため、以下のコマンドでパッケージを管理できます。
例えば、Dockerfileでvim
をインストールする場合は、
RUN apt update
RUN apt install -y vim
とこんな感じに書きます。
Alpineベースのイメージ (nginx:alpine)
コンテナを起動してshシェルにアクセスします。
docker run -it nginx:alpine sh
コンテナ内でOSのバージョンを確認します。
cat /etc/os-release
実行結果は以下の通りです。
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.20.2
PRETTY_NAME="Alpine Linux v3.20"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
Alpine Linux
はapk
を使用するので、apkを使ってパッケージを管理します。
apk update
apk add vim