UbuntuでDockerを導入・起動する方法|インストールからコンテナ運用の基本まで徹底解説

目次

1. Dockerとは何か?Ubuntuとの関係性

Dockerは、アプリケーションの実行環境を“コンテナ”と呼ばれる単位でパッケージ化し、どのサーバーやパソコンでも同じように動作させることができる仮想化技術のひとつです。従来の仮想マシンとは異なり、ホストOS上に直接コンテナを起動するため、より軽量で高速な環境を構築できます。

特にUbuntuのようなLinux系OSは、Dockerとの親和性が非常に高く、企業・個人問わず多くの開発者やサーバー管理者に利用されています。その理由は、Ubuntu自体がオープンソースであり、サーバー用途として広く普及していること、またパッケージ管理がしやすく、公式サポートも充実している点にあります。

Dockerを使うことで、たとえば「異なる環境で動かない」という悩みから解放されます。開発用のパソコンでも、本番サーバーでも、Dockerコンテナを使えば「どこでも同じ環境」を簡単に再現できます。また、UbuntuはDockerの公式サポート対象でもあるため、導入手順や情報も豊富です。

この記事では、「Ubuntu上にDockerを導入し、実際にUbuntuのコンテナを起動する」手順について、わかりやすく解説していきます。初めてDockerを使う方も、すでに使ったことがある方も、改めて基礎を確認したい場合にも役立つ内容を目指しています。

2. 必要環境・前提条件

DockerをUbuntuで利用するためには、いくつかの前提条件や準備が必要です。スムーズに導入・起動を行うために、ここで必要な環境や事前確認ポイントをまとめておきます。

Ubuntuのバージョンについて

Dockerは基本的にUbuntu 18.04 LTS以降のバージョンでの利用が推奨されています。特にサポートが手厚いのは「Ubuntu 20.04 LTS」や「Ubuntu 22.04 LTS」、「Ubuntu 24.04 LTS」などの長期サポート(LTS)バージョンです。古いバージョンの場合、Dockerのインストールに必要なパッケージや依存関係でトラブルが生じる可能性があるため、なるべくLTSの最新版を利用しましょう。

システム要件

Docker自体は軽量なコンテナ技術ですが、複数のコンテナを動かす場合や開発・検証用途では、ある程度のリソースが必要です。最低でも以下の条件を満たしていることをおすすめします。

  • 64bit版Ubuntuがインストールされていること(32bit非対応)
  • CPU: 2コア以上推奨
  • メモリ: 2GB以上(4GB以上あると余裕)
  • 空きディスク容量: 最低でも10GB以上

インターネット接続

Dockerのインストールやイメージのダウンロードにはインターネット接続が必須です。特に初回は大量のデータをダウンロードすることもあるので、安定した回線を用意しましょう。

ユーザー権限について

Dockerのインストールやシステム管理には「sudo」権限(管理者権限)が必要です。一般ユーザー権限しかない場合は、事前に管理者に依頼するか、権限を一時的に付与してください。

古いDockerパッケージの削除

以前に「docker」や「docker.io」などのパッケージを手動でインストールしたことがある場合、競合や不具合を避けるために古いパッケージはアンインストールしておくことを推奨します。

sudo apt-get remove docker docker-engine docker.io containerd runc

これにより、古いパッケージが混在することで起きるトラブルを事前に防げます。

まとめ

この章の内容を事前に確認し、必要な環境が整っていることを確認した上で、次章以降のインストール・設定作業に進んでください。
準備が整っていれば、Dockerの導入は非常にスムーズに進みます。

3. Docker Engine のインストール・セットアップ

ここでは、UbuntuにDocker Engineをインストールし、基本的なセットアップを行う手順を解説します。公式リポジトリを利用することで、最新かつ安定したDockerを導入できます。

公式リポジトリの追加と事前準備

まず、Docker公式のリポジトリをaptに追加します。作業はすべてターミナルで行います。以下の手順で進めてください。

  1. 必要なパッケージのインストール
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. GPGキーの追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. Dockerリポジトリの追加
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker Engineのインストール

リポジトリの追加が完了したら、Docker Engine本体をインストールします。

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

インストールが完了したら、次のコマンドでDockerのバージョンが表示されるか確認しましょう。

docker --version

例えば「Docker version 25.0.3, build 1234567」などと表示されれば、インストール成功です。

Docker Desktopについて(補足)

Ubuntuでは主に「Docker Engine」を利用しますが、最近は「Docker Desktop for Linux」も公式から提供されています。グラフィカルな管理画面が必要な場合は、Docker Desktopも選択肢となります。ただし、CLI(コマンドライン)主体であればDocker Engineのみで十分です。

トラブルが出た場合

「パッケージが見つからない」などのエラーが出た場合は、リポジトリ設定やGPGキー登録のミスがないか見直してください。また、古いDockerパッケージがインストールされていると競合することがあるので、2章のアンインストール手順を再確認しましょう。

4. dockerコマンドをsudoなしで使えるようにする

Dockerはインストール直後、システム管理者権限(sudo)でしか利用できません。毎回sudoを付けてコマンドを実行するのは面倒なうえ、コマンドを打ち間違えたときに意図せぬシステム変更のリスクも生じます。
そこで推奨されるのが、「dockerグループ」に自分のユーザーアカウントを追加する方法です。これにより、sudoなしで安全かつ快適にDockerを操作できます。

dockerグループへのユーザー追加手順

  1. ユーザーをdockerグループに追加する
    次のコマンドで、現在ログイン中のユーザーをdockerグループに追加します。
    $USERは自動的に今のユーザー名に置き換わります)
sudo usermod -aG docker $USER
  1. 設定を反映させる
    グループ追加の設定を有効にするには、再度ログインし直す必要があります。
    もっとも簡単な方法は「一度ログアウトして再度ログイン」することです。

もし即時に反映したい場合は、以下のコマンドを実行することでもOKです。

newgrp docker
  1. 確認
    sudoなしでDockerコマンドが実行できるか確認します。
    たとえば、次のようにしてバージョンが表示されれば成功です。
docker version

補足:セキュリティ面について

dockerグループに追加することでsudo不要となりますが、その分ユーザーに強い権限が与えられることになります。マルチユーザー環境では、dockerグループの管理に注意してください。
個人用途や開発環境では大きな問題になりませんが、社内サーバーなどでは運用ポリシーに従うのが安全です。

この手順を済ませれば、以降のDocker操作が格段に楽になります。

5. Dockerデーモンの起動・自動起動設定

Dockerは「デーモン」と呼ばれる常駐プロセス(dockerd)として動作します。
インストール直後、Dockerデーモンは自動で起動する設定になっていますが、手動で起動や停止を行いたい場合や、再起動時に自動起動するかどうかを変更したい場合もあるでしょう。ここでは、UbuntuにおけるDockerデーモンの基本的な起動・管理方法を解説します。

Dockerデーモンの起動・停止・再起動

Dockerの起動や停止は、systemctlコマンドで簡単に操作できます。

  • 起動
sudo systemctl start docker
  • 停止
sudo systemctl stop docker
  • 再起動
sudo systemctl restart docker
  • ステータス確認
sudo systemctl status docker

このコマンドで現在の起動状態やエラー情報を確認できます。

自動起動設定(ブート時の有効化/無効化)

Ubuntuでは、サーバーを再起動したときにDockerが自動で立ち上がるように設定できます。
通常、インストール時に自動起動が有効になっていますが、設定を確認・変更する方法も覚えておきましょう。

  • 自動起動を有効化
sudo systemctl enable docker
  • 自動起動を無効化
sudo systemctl disable docker

開発やテスト環境などで手動起動だけにしたい場合は、こちらを使います。

補足:serviceコマンドでも操作可能

古いUbuntuや慣れている方はservice docker startのようなコマンドでも操作可能です。ただし、近年はsystemctlの使用が推奨されています。

エラー時のチェックポイント

  • Dockerデーモンが起動しない場合は、sudo systemctl status dockerでエラーメッセージを確認。
  • 依存パッケージが不足している場合や、カーネルの設定が合っていない場合にエラーになることがあります。
  • ログはjournalctl -u dockerコマンドでも確認できます。

これでDockerデーモンの起動・自動起動設定の基本がマスターできます。

6. Ubuntuコンテナの起動手順

ここからは、実際にUbuntu上で「Ubuntuコンテナ」を起動する手順を解説します。
Dockerをインストールしただけでは、まだ何もコンテナは動いていません。自分の好きなOSやアプリの「コンテナイメージ」を入手し、それを起動するのが一般的な使い方です。ここでは、最もシンプルな例としてUbuntu公式イメージを使います。

1. Ubuntuイメージの取得(pull)

まず、Docker Hub(公式イメージの配布場所)からUbuntuのイメージをダウンロードします。
「22.04」などのバージョン指定も可能ですが、特に指定しない場合は最新版(latest)が使われます。

docker pull ubuntu:22.04

または

docker pull ubuntu

どちらも利用可能ですが、明示的にバージョン指定するのがおすすめです。

2. Ubuntuコンテナの新規起動(run)

取得したイメージをもとに、Ubuntuのコンテナを起動します。
最も基本的なのは、以下のコマンドです。

docker run -it --name myubuntu ubuntu:22.04 /bin/bash
  • -it:対話型モード(シェル操作用)
  • --name myubuntu:コンテナに任意の名前をつける(省略も可)
  • ubuntu:22.04:利用するイメージ
  • /bin/bash:起動時に実行するコマンド(bashシェル)

このコマンドを実行すると、コンテナ内のUbuntu環境にbashシェルで入ることができます。

3. バックグラウンドでの起動

サーバー用途や「ずっと動かしておきたい」場合は、バックグラウンド起動(-dオプション)も便利です。

docker run -d --name myubuntu ubuntu:22.04 tail -f /dev/null

この例では、コンテナは何もせず「常時起動状態」になります。

4. コンテナの終了と再起動

  • コンテナを終了する場合
docker stop myubuntu
  • 再度起動する場合
docker start myubuntu

5. 状態の確認

  • 起動中のコンテナ一覧
docker ps
  • 停止中も含めて全て表示するには
docker ps -a

まとめ

この章では、「Ubuntuイメージの取得」→「コンテナの起動」→「基本的な管理」まで、一連の流れを解説しました。実際に手元で試すことで、Dockerの利便性を実感できるはずです。

7. コンテナ運用の基本コマンドまとめ

Dockerの魅力は「簡単にコンテナを作って・止めて・壊せる」柔軟な運用性にあります。
この章では、Ubuntuコンテナの管理や運用で頻繁に使う基本的なコマンドをまとめます。
どれも実務でよく利用されるので、繰り返し操作しながら慣れておきましょう。

コンテナの一覧表示

  • 起動中のコンテナ一覧
docker ps
  • 停止中も含めたすべてのコンテナ一覧
docker ps -a

コンテナの起動・停止・再起動

  • コンテナの起動
docker start [コンテナ名 or ID]
  • コンテナの停止
docker stop [コンテナ名 or ID]
  • コンテナの再起動
docker restart [コンテナ名 or ID]

コンテナへの接続・操作

  • 起動中のコンテナへコマンドを実行(exec)
docker exec -it [コンテナ名 or ID] /bin/bash

コンテナの削除

  • コンテナを削除
docker rm [コンテナ名 or ID]
  • 強制的に削除(起動中も可)
docker rm -f [コンテナ名 or ID]

イメージの削除

  • 未使用イメージの確認
docker images
  • イメージの削除
docker rmi [イメージ名 or ID]

その他よく使う便利コマンド

  • ログの確認
docker logs [コンテナ名 or ID]
  • ディスク使用量の確認
docker system df

ポイントまとめ

  • docker ps, docker start, docker stop, docker exec などの基本コマンドを押さえておくことで、日常の運用・トラブル対応がスムーズになります。
  • 不要なコンテナやイメージは定期的に削除し、ディスク容量を管理することも大切です。

8. トラブルシューティング/よくある質問

DockerやUbuntuコンテナを運用していると、予期せぬトラブルやエラーに遭遇することがあります。この章では、特に「ubuntu docker 起動」に関連してよくある問題とその対処法を解説します。

よくあるトラブルと対処法

1. 「Cannot connect to the Docker daemon」エラー

このエラーは、Dockerデーモン(dockerd)が起動していない場合や、権限の問題でコマンドが実行できない場合によく発生します。

  • 対処法:
  1. Dockerデーモンが起動しているか確認
    sudo systemctl status docker
  2. 起動していなければ次のコマンドで起動
    sudo systemctl start docker
  3. sudoが必要な場合は付けて実行、もしくは4章の通り「dockerグループ」に自分のユーザーを追加しましょう。

2. 古いDockerパッケージや競合の問題

過去に「docker」「docker.io」「docker-engine」など別のパッケージをインストールしていると、競合による不具合が発生することがあります。

  • 対処法:
    古いパッケージをアンインストールします。
  sudo apt-get remove docker docker-engine docker.io containerd runc

3. コンテナの起動に失敗する場合

イメージ名やコマンドが間違っていたり、リソース不足(メモリ・ディスク)が原因で起動できない場合があります。

  • 対処法:
  • イメージ名やコマンドのスペルミスを確認
  • docker imagesで正しいイメージが存在するかチェック
  • サーバーの空きディスク容量やメモリを確認

4. ポート競合エラー

すでに使われているポートでコンテナを起動しようとするとエラーになります。

  • 対処法:
  • 別のポート番号を指定する
  • 既存プロセスを停止する

5. rootless(ルートレス)モードの注意点

近年Dockerでは「root権限不要」で動かすモードもありますが、対応バージョンや機能制限に注意が必要です。公式ドキュメントやエラーメッセージを参照しましょう。

実践的なチェックリスト

  • docker ps -a でコンテナの状態を把握
  • docker logs [コンテナ名] でエラー内容を確認
  • journalctl -u docker でシステム全体のDocker関連ログを確認

ポイントまとめ

Docker関連のトラブルの多くは、「権限」「バージョンの競合」「設定ミス」によるものです。
困った時は、エラーメッセージを落ち着いて読み、必要に応じて再インストールや設定の見直しを行いましょう。

9. まとめと次の一歩

本記事では、「UbuntuでDockerをインストールし、Ubuntuコンテナを起動する」というテーマについて、基礎から実践まで一連の流れを解説してきました。
ここで改めて、これまでの内容を振り返り、今後のさらなる活用に向けたヒントを紹介します。

この記事のおさらい

  • Dockerの概要とメリット
    Ubuntuとの親和性が高く、どこでも同じ環境を素早く再現できること。
  • 導入前の準備とポイント
    Ubuntuのバージョンやハードウェア要件、権限、古いパッケージの整理など。
  • Docker Engineのインストール方法
    公式リポジトリを使い、安全かつ最新のDockerを導入。
  • sudoなしでの操作やデーモンの管理方法
    グループ追加やsystemctlによる自動起動・停止。
  • Ubuntuコンテナの起動と各種コマンドの使い方
    コンテナの作成、管理、運用に関する基本操作。
  • よくあるトラブルと対処法
    権限やバージョン競合など、実務で頻出する問題の解決法。

次のステップ・さらなる活用へ

Dockerを使いこなす第一歩は、コンテナの起動と基本コマンドへの慣れです。慣れてきたら、さらに高度な運用に挑戦してみましょう。

  • Dockerfileによる独自コンテナの構築
    単にイメージを使うだけでなく、自分の用途に合わせてカスタマイズしたイメージを作成できます。
  • Docker Composeで複数コンテナの連携
    複数サービス(例:Web+DB)の同時起動や管理もシンプルに。
  • ボリュームやネットワーク機能の活用
    データの永続化や、複数コンテナ間の通信管理も可能です。
  • Kubernetesなどのコンテナオーケストレーション
    大規模運用や自動スケールなど、さらに一歩進んだクラウド運用にも挑戦できます。

最後に

Dockerは開発環境の構築だけでなく、サーバー運用やサービス公開、実験・学習用途まで幅広く活用できます。
まずは一度手を動かしてみることで、その便利さと強力さを実感してください。
分からないことや気になることがあれば、公式ドキュメントや各種コミュニティも活用し、積極的にチャレンジしていきましょう。

10. FAQ[よくある質問]

この章では、「ubuntu docker 起動」や記事内容に関して、読者から特によく寄せられる質問とその回答をまとめます。
初心者がつまずきやすいポイントや、実際の現場でよくある疑問にフォーカスしました。

Q1. DockerはUbuntu DesktopとUbuntu Serverのどちらでも使えますか?

A.
はい、どちらでも利用可能です。コマンドや手順も基本的に共通ですが、Serverの方が余計なGUIなどがなく、リソース消費が少ないため、本番運用やサーバー構築にはUbuntu Server版が推奨されることが多いです。

Q2. UbuntuにDocker Desktopは必要ですか?

A.
いいえ、Ubuntuの場合は「Docker Engine」だけで十分です。Docker DesktopはGUI管理ツールですが、Linux(Ubuntu)ではコマンドラインの方がトラブルも少なく一般的です。GUIで管理したい場合や学習用途ではDocker Desktopを試しても良いでしょう。

Q3. rootless(ルートレス)モードって何ですか?

A.
rootlessモードとは、root(管理者)権限を使わずにDockerを実行できる仕組みです。セキュリティを強化したい環境や、複数ユーザーで運用する場合に活用されます。ただし、全機能が使えないケースや制約もあるため、用途やポリシーに合わせて選択してください。

Q4. コンテナに永続的なストレージ(データ保存領域)を持たせるには?

A.
「ボリューム」や「バインドマウント」機能を使うことで、コンテナを削除してもデータが消えない仕組みを実現できます。

例:

docker run -v /host/path:/container/path ubuntu:22.04

このように、ホストのディレクトリとコンテナ内のディレクトリを紐づけて起動します。

Q5. コンテナやDockerデーモンの自動起動設定はどうやる?

A.
Dockerデーモンの自動起動は、5章の通り sudo systemctl enable docker で設定できます。
また、特定のコンテナをサーバー起動時に自動で立ち上げたい場合は、コンテナ作成時に --restart=unless-stopped などのオプションを付けておくと便利です。

例:

docker run --restart=unless-stopped -d --name myubuntu ubuntu:22.04 tail -f /dev/null

Q6. 他のOS用のDockerイメージもUbuntu上で動かせますか?

A.
はい、基本的に「同じCPUアーキテクチャ」のLinux用イメージであれば、Ubuntu上でも動かせます。ただし、Windows専用や異なるアーキテクチャ用のイメージは動作しません。

Q7. イメージやコンテナが増えすぎた場合の整理方法は?

A.
不要なコンテナやイメージはdocker rmdocker rmiで削除できます。まとめて整理したい場合は以下のコマンドも便利です。

  • 全停止中コンテナ削除
  docker container prune
  • 未使用イメージ削除
  docker image prune
  • 不要なデータ一括整理
  docker system prune

Q8. トラブル発生時のサポートや情報源は?

A.
Docker公式ドキュメント(https://docs.docker.com/)や、QiitaStack Overflowなど日本語コミュニティが豊富です。エラーメッセージをそのまま検索するのも有効です。

Q9. Docker Composeなど複数コンテナ管理ツールの学び方は?

A.
Docker Composeは複数コンテナを一括管理できる便利なツールです。
学習方法としては、公式ドキュメントやチュートリアル記事、「docker-compose.yml」ファイルの例を読みながら試してみるのが近道です。

Q10. 最新のUbuntuバージョン(例:24.04)でも使えますか?

A.
はい、Dockerは公式に最新のLTSバージョンもサポートしています。最新のリポジトリ情報やパッケージを使うことで、常に安定した運用が可能です。