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

Docker超入門:DockerでBusyBoxを使ってみよう!軽量コンテナの基本操作入門

DockerでBusyBoxを使ってみよう!軽量コンテナの基本操作入門

 Dockerを学ぶうえで、最初に触れるコンテナイメージとしてよく登場するのが BusyBox です。わずか1MB程度のサイズでLinuxの基本コマンドを実行できる、まさに「軽量コンテナの教科書的存在」。ここでは、BusyBoxを使った基本操作を実際のコマンドとともに丁寧に解説していきます。

まずは環境をクリーンアップ

 BusyBoxを触る前に、Docker環境をスッキリさせておきましょう。作業前に一度だけ実行しておくと、古い検証イメージや停止済みコンテナが整理され、以降の挙動が分かりやすくなります。

PS C:\Users\joeac> docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks 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

 このコマンドは、未使用のコンテナやイメージをまとめて削除し、環境をクリーンに保つために使います。

オプション説明
-a未使用のすべてのイメージを削除する。

BusyBoxコンテナを起動する

基本のコマンドは次の通りです。

PS C:\Users\joeac> docker run -it --rm busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
80bfbb8a41a2: Pull complete
Digest: sha256:d82f458899c9696cb26a7c02d5568f81c8c8223f8661bb2a7988b269c8b9051e
Status: Downloaded newer image for busybox:latest
/ # ←root権限になっている

 このコマンドを実行すると、BusyBoxコンテナが立ち上がり、ルート権限のシェルに接続されます。作業を終えてコンテナを終了すると、自動的に削除されます。

部分説明
docker runコンテナの作成と起動を一括で行う。イメージがローカルにない場合はDocker Hubから取得
-i対話モードを有効にする(標準入力を受け付ける)
-t擬似端末を割り当てる。
--rmコンテナ終了時に自動削除する。
busybox起動するイメージを指定

BusyBoxでLinuxコマンドを試す

 コンテナ内では、Linuxの基本コマンドを実行できます。例えば、システムの状態を確認する定番コマンド top を試してみましょう。

/ # top

Mem: 1147380K used, 15102652K free, 4620K shrd, 41580K buff, 416332K cached
CPU:  0.0% usr  0.0% sys  0.0% nic 99.8% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.06 0.03 0.01 1/429 7
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
    1     0 root     S     4568  0.0   3  0.0 sh
    7     1 root     R     4568  0.0   8  0.0 top

実行すると、CPUやメモリの使用状況が表示されます。
終了するときは Ctrl+C を押してプロンプトに戻ります。

BusyBoxを終了する

終了方法はシンプルで、次のコマンドを入力します。

/ # exit
PS C:\Users\joeac>

 するとPowerShell(ホスト環境)のプロンプトに戻ります。BusyBoxコンテナは --rm オプションの効果で自動的に削除されています。

コンテナの存在を確認する

コンテナが削除されたことを確かめるには、次のコマンドを実行します。

PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

出力に「busybox」が含まれていなければ、コンテナはきちんと削除されています。

BusyBoxがDockerで役立つシーン

BusyBoxは軽量でシンプルなため、Docker環境で以下のように活用されます。

用途説明
ボリューム操作一時的にデータをコピーしたりバックアップしたりする作業に便利
ネットワークテストping や traceroute で接続確認や経路調査が可能
マルチホスト環境複数ホスト間で通信確認やリソース監視を手軽に行える。
軽い作業簡単なファイル操作、シェルスクリプト実行、プロセス監視など

まさに「ちょっとLinuxのコマンドを使いたい」という場面で、BusyBoxは大活躍します。

まとめ

BusyBoxはDockerで「ちょっとLinuxを試したい」ときの頼れる存在です。
 軽量で対話的に利用でき、終了すれば後始末も不要。システムのテストや学習用途はもちろん、ネットワーク確認や一時的なデータ操作など、現場でもよく使われています。