「仮想マシン(VM)とコンテナの違いが分からない」
こういった疑問を持つ方は多いです。Dockerは今やWebアプリ開発・クラウド運用・AIモデルの実行環境として欠かせない技術になっています。2026年現在、VPSやWSL2でLinuxを学んでいる初心者でも、Dockerの基本は早い段階で押さえておくと後の学習が一気に楽になります。
この記事では、Dockerとは何か・VMとの違いを初心者向けに解説したうえで、Ubuntu 24.04 LTS(VPS・WSL2環境で動作確認済み)にDockerをインストールして最初のコンテナを動かすまでの全手順をステップ形式で解説します。
この記事のポイント
・コンテナはVMより軽量で起動が速い(秒単位 vs 分単位)
・Ubuntu 24.04に公式手順でDockerをインストールできる
・hello-worldコンテナでDockerが正常動作するか確認できる
・dockerグループ設定でsudoなしのDocker操作が可能になる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
そもそも「コンテナ」って何?VMとの違いを初心者向けに解説
「コンテナ」と「仮想マシン(VM)」はよく混同されますが、仕組みがまったく異なります。仮想マシン(VM)の仕組み:
・ホストOS上にハイパーバイザーを介して「まるごとのOS」を動かす
・起動に数分かかる
・ディスク容量も数GB消費する
コンテナの仕組み:
・ホストOS(Linux)のカーネルを共有し、プロセスを分離して動かす
・起動は数秒以下で完了する
・ディスク容量も数MB~数百MBで軽量
DockerはLinuxのコンテナ技術(namespaces・cgroups)を使いやすくラップしたツールです。Linuxカーネルの機能を直接利用するため、Dockerを使うためにはLinuxが動いている環境(VPS・クラウド・WSL2)が必要になります。
| 比較項目 | 仮想マシン(VM) | Dockerコンテナ |
|---|---|---|
| 起動時間 | 数分 | 数秒以下 |
| OS | ゲストOSが丸ごと必要 | ホストのカーネルを共有 |
| ディスク | 数GB | 数MB~数百MB |
| 移植性 | やや低い | 高い(同じイメージを複数環境で実行可能) |
| 適した用途 | 完全に隔離されたOS環境が必要な場合 | アプリの実行・開発・テスト環境の分離 |
Dockerをインストールする前に確認すること
1. Linuxのバージョンとアーキテクチャを確認する
Docker公式リポジトリはUbuntu 22.04・24.04(amd64・arm64)をサポートしています。まず自分の環境を確認します。# Ubuntuのバージョンを確認 $ cat /etc/os-release | grep -E "^(NAME|VERSION_ID)" NAME="Ubuntu" VERSION_ID="24.04" # アーキテクチャを確認(amd64またはarm64が必要) $ dpkg --print-architecture amd64 # カーネルバージョンを確認(3.10以上が必要) $ uname -r 6.8.0-51-generic
2. 既存のDockerを削除する(初めての場合はスキップ可)
Ubuntuのデフォルトリポジトリには古いDocker関連パッケージが含まれる場合があります。公式Dockerと競合しないよう、古いパッケージを削除します。# 古いパッケージを削除(インストール済みでなければエラーは無視) $ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y $pkg 2>&1 | grep -v "E: " done
Ubuntu 24.04にDockerをインストールする手順
1. 公式リポジトリの署名キーを追加する
Dockerを公式リポジトリからインストールするには、まずDockerのGPGキーを取得して信頼済みに追加します。# 必要パッケージのインストール $ sudo apt-get update $ sudo apt-get install -y ca-certificates curl # Dockerの公式GPGキーを追加 $ sudo install -m 0755 -d /etc/apt/keyrings $ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc $ sudo chmod a+r /etc/apt/keyrings/docker.asc # Dockerの公式リポジトリをapt sourcesに追加 $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list
2. Docker Engineをインストールする
# リポジトリ情報を更新してDockerをインストール $ sudo apt-get update $ sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # インストール後、Dockerデーモンの状態を確認 $ sudo systemctl status docker * docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled) Active: active (running) since Mon 2026-07-08 09:12:34 UTC; 10s ago Docs: https://docs.docker.com Main PID: 3421 (dockerd)
active (running) と表示されれば、Dockerデーモンが正常に動いています。3. dockerグループにユーザーを追加する
このままではsudo が必要です。自分のユーザーを docker グループに追加すると、以後 sudo なしで docker コマンドが使えるようになります。# 現在のユーザーをdockerグループに追加($USERが自動でログインユーザー名になる) $ sudo usermod -aG docker $USER # グループ変更を現在のシェルに反映(または一度ログアウト&再ログイン) $ newgrp docker # dockerグループに所属しているか確認 $ groups ubuntu adm cdrom sudo dip plugdev lpadmin lxd sambashare docker
docker がグループ一覧に表示されれば成功です。4. Dockerのバージョンを確認する
$ docker --version Docker version 27.3.1, build ce12230 $ docker info | grep "Server Version" Server Version: 27.3.1
最初のコンテナを動かしてみよう
1. hello-worldコンテナでインストールを確認する
Dockerが正常に動いているかを確認するには、公式のhello-world イメージを実行します。$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world e6590344b1a5: Pull complete Digest: sha256:7e1a4e2d11e2ac7a8c3f768d4f36e6b5d3c5e1f7b0a6f2d3c4e5a8b9c0d1e2f Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
2. Ubuntuコンテナを起動してbashを操作する
実際のLinuxコンテナを起動して、内部でコマンドを実行してみましょう。# Ubuntuコンテナを対話モードで起動 # -i: 標準入力を開いたまま -t: 擬似端末を割り当て --rm: 終了後にコンテナを自動削除 $ docker run -it --rm ubuntu:24.04 bash # コンテナ内部のbashが起動(プロンプトが変わる) root@3f7a2c1b0e9d:/# cat /etc/os-release | head -3 PRETTY_NAME="Ubuntu 24.04.2 LTS" NAME="Ubuntu" VERSION_ID="24.04" root@3f7a2c1b0e9d:/# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # コンテナから抜ける(--rmオプションでコンテナは自動削除される) root@3f7a2c1b0e9d:/# exit exit $
3f7a2c1b0e9d)。コンテナ内部のファイル変更は、コンテナを削除すると消えます(データを残したい場合はボリューム機能を使います)。3. よく使うdockerコマンド早見表
| やりたいこと | コマンド |
|---|---|
| コンテナを起動する | docker run イメージ名 |
| 対話モードでコンテナを起動する | docker run -it イメージ名 bash |
| 終了後に自動削除する | docker run --rm イメージ名 |
| 起動中のコンテナを一覧表示する | docker ps |
| すべてのコンテナを一覧表示する | docker ps -a |
| コンテナを停止する | docker stop コンテナID |
| コンテナを削除する | docker rm コンテナID |
| イメージ一覧を確認する | docker images |
| イメージを削除する | docker rmi イメージ名 |
| コンテナのログを確認する | docker logs コンテナID |
【重要】Dockerを使う前に知っておくべき注意点
Dockerを使い始める前に、運用上の注意点をいくつか押さえておきましょう。注意1: rootコンテナのファイル変更はホストに影響しない(ただし例外あり)
コンテナ内はホストOSから分離されていますが、ホストのディレクトリをマウント(-v オプション)した場合はコンテナ内での変更がホストに反映されます。誤ってホストの重要ディレクトリをマウントしないよう注意してください。
注意2: dockerグループはrootと同等の権限を持つ
docker グループに追加したユーザーは、実質的にrootと同等の権限でコンテナ操作ができます。本番環境では不必要なユーザーをdockerグループに追加しないことが鉄則です。注意3: イメージのディスク容量に注意する
Dockerイメージは使い続けると蓄積してディスクを圧迫します。定期的に
docker system prune を実行して不要なイメージ・コンテナ・ネットワークを一括削除しましょう。Dockerでよくあるトラブルと対処法
「permission denied while trying to connect to the Docker daemon socket」と表示されるdockerグループへの追加後、ログアウト・再ログインしていない場合に発生します。
# 確認:自分がdockerグループに所属しているか $ groups # docker がリストにあればOK。なければ以下を実行 $ sudo usermod -aG docker $USER # 再ログインせずにグループを反映したい場合 $ newgrp docker
イメージ名のスペルミスか、プライベートイメージにアクセスしようとしている場合です。
# 正しいイメージ名で再実行(ubuntu は小文字) $ docker run -it ubuntu:24.04 bash # Docker Hubでイメージを検索して正しい名前を確認する $ docker search ubuntu | head -5
Dockerデーモンが起動していない可能性があります。
# Dockerデーモンの状態を確認 $ sudo systemctl status docker # 停止している場合は起動 $ sudo systemctl start docker # 次回OS起動時に自動起動するよう設定 $ sudo systemctl enable docker
本記事のまとめ
| 項目 | 内容 |
|---|---|
| コンテナとVMの違い | コンテナはカーネルを共有し軽量・高速。VMはゲストOSを丸ごと動かす |
| インストール対象 | Ubuntu 24.04 LTS(VPS・WSL2環境で動作確認済み) |
| インストール確認 | docker run hello-world で「Hello from Docker!」が表示されればOK |
| sudo不要化 | sudo usermod -aG docker $USER でdockerグループに追加後に再ログイン |
| デーモン管理 | sudo systemctl start/stop/enable docker で制御する |
Dockerの基本操作が分かると、次はWebアプリの実行環境をコンテナで構築したり、Docker Composeで複数のサービスを同時に動かしたりと活用の幅が一気に広がります。まずはVPSやWSL2のLinux環境でDockerのインストールを試してみてください。
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
次に読む関連記事
LinuxでDockerを使いこなすために、サーバー管理の基礎知識も合わせて習得しておきましょう。・ssコマンドでソケット情報を確認する方法|LISTEN・ESTABの見方やポート確認も
・firewall-cmdコマンドでポートを開放・管理する方法|ゾーン・サービス・永続化の使い分け
・fail2banコマンドでブルートフォース攻撃を自動ブロックする方法|SSHの不正アクセス対策とトラブルシュートも
・straceコマンドでプロセスのシステムコールを追跡する方法|Permission deniedの原因特定やデバッグも
・lvextendコマンドでLVMボリュームをオンライン拡張する方法|xfs_growfs・resize2fsの使い分けも
・rsyncコマンドでファイルを同期・転送する方法|--deleteの安全な使い方やリモートバックアップも
・set -xコマンドでシェルスクリプトをデバッグする方法|set -e・set -uとの組み合わせも
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 前のページへ:LinuxのSwapを追加する入門|VPSのメモリ不足をスワップファイルで解消する方法
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます