このページで解説している内容は、以下の 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 python3Dockerfileは「この手順でイメージを作ってね」というレシピ。
このファイルを docker image build コマンドでビルドすれば、自分専用のイメージができます。
🧰 パッケージマネージャーの種類
Linuxのディストリビューションによって、ソフトウェアのインストールコマンドは違います。
下の表を見てみましょう👇
| パッケージマネージャー | 主なディストリビューション |
|---|---|
| apt | Debian, Ubuntu |
| dnf | Fedora |
| apk | Alpine 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/DockerfileDockerfileの内容
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 python3 | Python3をインストール(-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/DockerfileDockerfileの内容
FROM fedora:latest
RUN dnf install -y \
python3 \
&& dnf clean all| コマンド | 意味 |
|---|---|
| dnf install -y python3 | Python3をインストール |
| 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/DockerfileDockerfileの内容
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.12Alpineは軽くて速いのが特徴!
開発や本番でも人気のベースイメージです。
✅ まとめ
| ディストリビューション | パッケージマネージャー | コマンド例 | 特徴 |
|---|---|---|---|
| Ubuntu / Debian | apt | apt-get install -y python3 | 安定性が高く汎用的 |
| CentOS / RHEL | yum | yum install -y python3 | 企業サーバーで多く採用 |
| Fedora | dnf | dnf install -y python3 | 新機能が早い |
| Alpine | apk | apk add --no-cache python3 | 軽量・高速で人気 |
💬 まとめのひとこと
Dockerfileにパッケージマネージャーを使えば、
自分だけのオリジナル環境を簡単に作れます!
どのベースイメージでも、「RUN」でパッケージを追加 → キャッシュ削除で軽量化、が鉄則です💡
