このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:イメージにソフトウェアを追加インストールする方法|apt・dnf・apkの使い方

🚀 イメージにソフトウェアを追加インストールする方法|apt・dnf・apkの使い方

apt・dnf・apkの使い方をわかりやすく解説!

 Dockerを使って開発していると、「イメージの中にもう少しツールを入れたい!」という場面ってよくありますよね。
例えば、Pythonを追加したいとか、curlやvimを入れておきたいとか。

この記事では、Dockerfileを使ってソフトウェアを追加インストールする方法を、
主要なLinuxディストリビューションごとにわかりやすく紹介していきます。

🧱 イメージにソフトウェアを追加する仕組み

Dockerイメージは、OSやアプリが動くための最小構成パッケージです。
ただし、最初から全部入りではありません。
必要なツールやライブラリは、自分で追加してオリジナルのイメージを作ります。

そのときに使うのが Dockerfile(ドッカーファイル) です👇

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3

Dockerfileは「この手順でイメージを作ってね」というレシピ
このファイルを docker image build コマンドでビルドすれば、自分専用のイメージができます。

🧰 パッケージマネージャーの種類

Linuxのディストリビューションによって、ソフトウェアのインストールコマンドは違います。
下の表を見てみましょう👇

パッケージマネージャー主なディストリビューション
aptDebian, Ubuntu
dnfFedora
apkAlpine Linux

つまり、ベースイメージに合わせて使うコマンドを変えるのがポイントです。

🧹 まずはクリーンアップ!

まず、作業環境をクリーンに整えましょう。
古いコンテナや不要なボリュームがあると挙動が不安定になることがあります。

以下のコマンドを実行します👇

docker system prune -a --volumes
オプション説明
-a使われていないすべてのイメージを削除します。
--volumes使われていないボリュームも削除します。

実行結果

PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all anonymous volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y

📁 作業ディレクトリの準備

作業フォルダを作って、それぞれのディストリビューション用にDockerfileを分けます👇

cd desktop/docker
mkdir py_ubuntu
mkdir py_fedora
mkdir py_alpine

実行結果

PS C:\Users\joeac>\Desktop\docker> mkdir py_ubuntu

    Directory: C:\Users\joeac>\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/21    13:37                py_ubuntu

PS C:\Users\joeac>\Desktop\docker> mkdir py_fedora

    Directory: C:\Users\joeac>\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/21    13:38                py_fedora

PS C:\Users\joeac>\Desktop\docker> mkdir py_alpine

    Directory: C:\Users\joeac>\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/21    13:38                py_alpine

これで、4つのフォルダができました。
それぞれにDockerfileを置いて、Pythonを追加インストールしていきます。

🐧 apt(Ubuntu / Debian 系)

UbuntuをベースにPythonを追加してみましょう。
以下のコマンドを実行します。

PS C:\Users\joeac\Desktop\docker> code ./py_ubuntu/Dockerfile

Dockerfileの内容

FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
    python3 \
    && rm -rf /var/lib/apt/lists/*
コマンド意味
apt-get updateパッケージリストを最新に更新
apt-get install -y python3Python3をインストール(-yで自動承認)
rm -rf /var/lib/apt/lists/*キャッシュを削除してイメージを軽量化

💻 イメージのビルドと確認

docker image build -t py_ubuntu:v1 ./py_ubuntu

-t は「タグ」を意味し、py_ubuntu:v1 という名前で保存します。

実行結果

PS C:\Users\joeac\Desktop\docker> docker image build -t py_ubuntu:v1 ./py_ubuntu
[+] Building 51.3s (6/6) FINISHED                                                                  docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                               0.0s
(省略)

ビルドが終わったら、Pythonが入っているか確認👇

docker container run --rm py_ubuntu:v1 python3 --version

実行結果

PS C:\Users\joeac\Desktop\docker> docker container run --rm py_ubuntu:v1 python3 --version
Python 3.12.3

これでUbuntuベースのPython入りイメージ完成!

🦊 dnf(Fedora 系)

Fedoraでは「yum」の後継である「dnf」が使われます。
以下のコマンドを実行します。

PS C:\Users\joeac\Desktop\docker> code ./py_fedora/Dockerfile

Dockerfileの内容

FROM fedora:latest
RUN dnf install -y \
    python3 \
    && dnf clean all
コマンド意味
dnf install -y python3Python3をインストール
dnf clean allキャッシュ削除で軽量化

💻 イメージのビルドと確認

docker image build -t py_fedora:v1 ./py_fedora
docker container run --rm py_fedora:v1 python3 --version

実行結果

PS C:\Users\joeac\Desktop\docker> docker image build -t py_fedora:v1 ./py_fedora
[+] Building 77.6s (6/6) FINISHED                                                                  docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                               0.0s
(省略)

PS C:\Users\joeac\Desktop\docker> docker container run --rm py_fedora:v1 python3 --version
Python 3.13.7

最新のFedoraはPythonも新しいですね!

🏔 apk(Alpine Linux 系)

Alpineは超軽量Linuxで、使うコマンドは「apk」です。
以下のコマンドを実行します。

PS C:\Users\joeac\Desktop\docker> code ./py_alpine/Dockerfile

Dockerfileの内容

FROM alpine:latest
RUN apk update && apk add --no-cache \
    python3
コマンド意味
apk updateパッケージリストを更新
apk add --no-cache python3キャッシュを残さずPythonをインストール(超軽量)

💻 イメージのビルドと確認

docker image build -t py_alpine:v1 ./py_alpine
docker container run --rm py_alpine:v1 python3 --version

実行結果

PS C:\Users\joeac\Desktop\docker> docker image build -t py_alpine:v1 ./py_alpine
[+] Building 6.0s (6/6) FINISHED                                                                   docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                               0.0s
(省略)

PS C:\Users\joeac\Desktop\docker> docker container run --rm py_alpine:v1 python3 --version
Python 3.12.12

Alpineは軽くて速いのが特徴!
開発や本番でも人気のベースイメージです。

✅ まとめ

ディストリビューションパッケージマネージャーコマンド例特徴
Ubuntu / Debianaptapt-get install -y python3安定性が高く汎用的
CentOS / RHELyumyum install -y python3企業サーバーで多く採用
Fedoradnfdnf install -y python3新機能が早い
Alpineapkapk add --no-cache python3軽量・高速で人気

💬 まとめのひとこと

Dockerfileにパッケージマネージャーを使えば、
自分だけのオリジナル環境を簡単に作れます!
どのベースイメージでも、「RUN」でパッケージを追加 → キャッシュ削除で軽量化、が鉄則です💡