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

Docker超入門:Docker ComposeでDebianコンテナを構築する方法

🐧 Docker ComposeでDebianコンテナを構築する方法

ここでは、Docker Composeコマンド を使って Debianコンテナ を構築する方法を紹介します。
 DebianはLinuxの中でも非常に安定しており、教育・開発・サーバー運用など幅広く利用されている人気のディストリビューションです。
Composeファイルを使えば、Debian環境を簡単に再現することができます!

ここで学ぶ内容

💡 Debianとは?

Debian(デビアン)は、1993年に誕生したオープンソースのLinuxディストリビューションです。
世界中の開発者によって維持されており、安定性・信頼性・セキュリティの高さで知られています。
 特にAPT(Advanced Package Tool)というパッケージ管理システムを採用しており、
簡単にソフトウェアのインストールや更新を行うことができます。

URL:https://www.debian.org/

項目説明
開発開始1993年
特徴安定性と信頼性が非常に高い
パッケージ管理APT(Advanced Package Tool)
主な用途サーバー、開発環境、学習用
公式サイトhttps://www.debian.org/

💬 ポイント
DebianはUbuntuなど多くのディストリビューションのベースにもなっており、Linuxの原点ともいえる存在です。

🎓 学習環境としてのDebianコンテナ

Debianは、その安定性とシンプルな構成から、Linux学習環境として最適です。
コンテナを使えば、手軽に「壊して試す」ことができるので、初心者にもおすすめです。

理由説明
高い安定性実務レベルの堅牢なOSを学習できる。
信頼性セキュリティ更新と品質管理が厳格
再現性同じ環境を何度でも再構築できる。
手軽さコンテナなのでインストール不要・すぐ試せる。

💬 一言で言うと
「安心して壊せる学習用サンドボックス環境」が作れます!

🧹 作業前のクリーンアップ

まずはDocker環境を整理しましょう。
 古いコンテナやイメージを残したままだと、同じ名前のコンテナが作成できなかったり、エラーが出たりします。

コマンド書式

docker system prune -a --volumes
オプション説明
-a未使用のイメージをすべて削除
--volumes未使用のボリュームも削除

このコマンドで古いデータを一掃し、きれいな状態から始められます。
実行時に「Are you sure you want to continue? [y/N]」と表示されたら、y を入力して進めましょう。

実行結果

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

💬 補足
Docker Desktopを利用している場合は、GUIから不要なコンテナやボリュームを削除してもOKです。

📁 compose.yamlの作成

次に、Debianコンテナを定義するcompose.yamlファイル を作成します。

1.作業ディレクトリの準備

cd desktop/docker
mkdir debian
cd debian

実行結果

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir debian

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

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/13    10:43                debian

PS C:\Users\joeac\Desktop\docker> cd debian
PS C:\Users\joeac\Desktop\docker\debian>

2.VS Codeでcompose.yamlを作成

code compose.yaml

VSCodeが起動します。

VS Codeが開いたら、次の内容を入力して保存します👇

🧾 compose.yamlの内容

services:
  debian:
    image: debian:latest
    container_name: debian_container
    tty: true
フィールド説明
servicesサービス定義を開始するセクション
debianサービス名(任意)
image使用するDockerイメージ。ここでは Debian:latest を指定
container_nameコンテナの名前(ここでは debian_container
ttyコンテナに仮想端末(TTY)を割り当てて停止を防止

💡 ポイント
通常、コンテナは内部で実行するプロセスが終了すると停止します。
しかし tty: true を設定しておくと、端末が開かれたままの状態になり、
コンテナが自動停止しない ようになります。

🚀 コンテナの作成と起動

compose.yamlを保存したら、実際にDebianコンテナを起動してみましょう!

コマンド書式

docker compose up -d
オプション説明
upcompose.yamlの内容に基づいてコンテナを作成・起動
-dデタッチドモード(バックグラウンド実行)で起動

実行結果

PS C:\Users\joeac\Desktop\docker\debian> docker compose up -d
[+] Running 2/2
 ✔ debian Pulled                                                           8.4s
   ✔ cae3b572364a Pull complete                                            5.4s
[+] Running 2/2
 ✔ Network debian_default      Created                                     0.1s
 ✔ Container debian_container  Started                                     1.0s

このメッセージが出れば、Debianコンテナが正常に起動しています!

💻 Debianコンテナに接続してみよう

起動したコンテナに入ってみましょう。
Docker Composeのexecコマンドを使えば、コンテナ内で任意のコマンドを実行できます。

コマンド書式

docker compose exec [options] [service] [command]
引数説明
optionsオプション(例:-u でユーザー指定)
servicecompose.yamlで定義したサービス名(今回は debian
command実行したいコマンド(例:bash, ls など)

例:ディレクトリ一覧を確認

docker compose exec debian ls

実行結果

PS C:\Users\joeac\Desktop\docker\debian> docker compose exec debian ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

これでDebianコンテナの中身が見られました✨
通常のLinuxサーバーと同様に、ファイル操作やパッケージのインストールなどを練習できます。

🧠 まとめ

Docker Composeを使えば、わずか数行の設定でDebianコンテナ環境をすぐに構築できます。
特に学習や検証環境では、構築と破棄を繰り返せるコンテナは非常に便利です。

ステップ内容
1️⃣docker system prune -a --volumes で環境を整理
2️⃣compose.yaml を作成し image: debian:latest を指定
3️⃣docker compose up -d でコンテナ起動
4️⃣docker compose exec debian bash で接続

これで、あなたのPC上にクリーンなDebian環境ができました!
Linux学習や開発、検証などに自由に活用していきましょう。