LinuxでDockerをはじめる入門|コンテナとVMの違いを理解してUbuntuで最初のコンテナを動かす方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > LinuxでDockerをはじめる入門|コンテナとVMの違いを理解してUbuntuで最初のコンテナを動かす方法
「Dockerって便利そうだけど、Linuxで使うには何をすればいいの?」
「仮想マシン(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操作が可能になる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

そもそも「コンテナ」って何?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.

「Hello from Docker!」と表示されれば、DockerのインストールとDockerデーモンの動作は正常です。

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 $

コンテナIDは起動のたびに変わります(上の例では 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

「docker: Error response from daemon: pull access denied」と表示される

イメージ名のスペルミスか、プライベートイメージにアクセスしようとしている場合です。

# 正しいイメージ名で再実行(ubuntu は小文字) $ docker run -it ubuntu:24.04 bash # Docker Hubでイメージを検索して正しい名前を確認する $ docker search ubuntu | head -5

「Cannot connect to the Docker daemon」と表示される

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サーバー構築の「型」を体系的に身につけたい方へ、
無料の「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との組み合わせも

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。