コンテナ化は、ソフトウェアを分離された軽量な環境にパッケージ化することでアプリケーションデプロイを変革し、異なるシステム間での一貫性を確保しています。 Ubuntu Server 上の Docker は、このプロセスを簡素化する強力な組み合わせであり、開発者やシステム管理者がアプリケーションをシームレスに構築、出荷、実行できるようにします。業界をリードするコンテナ化プラットフォームとして、Docker はワークフローを合理化し、最新のアプリケーション開発のスケーラビリティを向上させます。
このガイドでは、Ubuntu Server に Docker をインストールし、最初のコンテナ化アプリケーションを実行する手順を説明します。Docker を初めて使う方でも、デプロイプロセスを最適化したい方でも、このチュートリアルは Ubuntu Server でのコンテナ化を始めるのに役立ちます。
過去の記事:
01. Ubuntu Server 入門 – SysOSX: AI & Cloud
02. 初めての Ubuntu サーバーのセットアップ方法:初心者向けガイド – SysOSX: AI & Cloud
03. Ubuntu Server 向け Linux コマンドラインの習得 – SysOSX: AI & Cloud
04. Ubuntu Server でのユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud
05. Ubuntu Server のネットワークの基礎:包括的ガイド – SysOSX: AI & Cloud
06. Ubuntu Server へのソフトウェアのインストールと管理:完全ガイド – SysOSX: AI & Cloud
07.Ubuntu Server のパッチ適用と更新:包括的ガイド – SysOSX: AI & Cloud
08. Ubuntu サーバーのセキュリティ確保:強化と保護のための実践的な手順 – SysOSX: AI & Cloud
10. Ubuntu Server のシステム監視ツール:包括的ガイド – SysOSX: AI & Cloud
11. Ubuntu サーバーの集中ロギング:必読ガイド – SysOSX: AI & Cloud
12. Ubuntu Server の監査とコンプライアンス:ベストプラクティス – SysOSX: AI & Cloud
13. ホスティングと Web アプリケーションのための Ubuntu サーバーのセットアップ:究極ガイド – SysOSX: AI & Cloud
14. 1 台の Ubuntu サーバーで複数の Web サイトをホストする:役立つヒント – SysOSX: AI & Cloud
15. Ubuntu Server のストレージとディスクの管理:シンプルガイド – SysOSX: AI & Cloud
16. Ubuntu Server でのファイル共有サービスのセットアップ:完全ガイド – SysOSX: AI & Cloud
17. Ubuntu でのセキュアなデータベースサーバーのセットアップ:MySQL と MariaDB の比較 – SysOSX: AI & Cloud
18. Ubuntu Server での LVM の設定と使用方法:包括的ガイド – SysOSX: AI & Cloud
19. KVM による仮想化入門:Ubuntu Server 向け初心者ガイド – SysOSX: AI & Cloud
目次
前提条件
Docker をインストールする前に、Ubuntu サーバーが次の要件を満たしていることを確認してください。
- Ubuntu 20.04 LTS 以降 (64 ビット)。
- sudo 権限 または root アクセス。
- 安定したインターネット接続 (パッケージのダウンロードに必要)。
ステップ 1:Ubuntu Server に Docker をインストールする
システムパッケージの更新
sudo apt update && sudo apt upgrade -y
必要な依存関係のインストール
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Docker の公式 GPG キーの追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Docker リポジトリのセットアップ
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker Engine のインストール
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
インストールの確認
sudo docker run hello-world
成功すると、以下のような確認メッセージが表示されます 。

ステップ 2:非 root ユーザーとして Docker を管理する
デフォルトでは、Docker には sudo 権限が必要です。毎回 sudo と入力する手間を省くには、次の手順に従います。
- Docker グループの作成 (存在しない場合):
sudo groupadd docker - ユーザーをグループに追加します:
sudo usermod -aG docker $USER - 変更の適用:
newgrp docker
ステップ 3:最初のコンテナを実行する
数秒で Nginx Web サーバー を起動します。
docker run -d -p 8080:80 --name my-nginx nginx
-d:デタッチモードで実行します。-p 8080:80:ホストのポート 8080 をコンテナのポート 80 にマッピングします。--name:コンテナにカスタム名を割り当てます。
アクセスの確認:
curl http://localhost:8080

ステップ 4:基本的な Docker コマンド
| コマンド | 説明 |
|---|---|
docker ps | 実行中のコンテナを一覧表示する |
docker images | ダウンロードしたイメージを表示する |
docker stop <container-id> | コンテナを停止する |
docker rm <container-id> | コンテナを削除する |
docker rmi <image-id> | イメージを削除する |
ステップ 5:Docker Compose でワークフローを自動化する
マルチコンテナアプリケーションには、 Docker Compose:
- Docker Compose のインストール:
sudo apt install docker-compose -y
-
docker-compose.ymlファイルを作成します:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
- スタックの起動:
docker-compose up -d

Ubuntu での Docker のベストプラクティス
- Docker を定期的に更新する:
sudo apt update && sudo apt upgrade docker-ce -y
- 未使用のリソースをクリーンアップする:
docker system prune -a
- 公式イメージを使用します。取得元は Docker Hub です。セキュリティと信頼性が確保されます。
一般的な問題のトラブルシューティング
- 権限が拒否されました:ユーザーが
dockerグループに属していることを確認してください。 - ポートの競合:同じポートを使用している他のサービスがないか確認します。
- イメージのプルエラー:インターネット接続とイメージ名のスペルを確認します。
Docker と他のコンテナ化ツールの比較
Docker がコンテナ化の分野を支配している一方で、代替手段を理解することは、ユースケースに適したツールを選択するのに役立ちます。
| ツール | 種類 | 主な機能 | 最適な用途 |
|---|---|---|---|
| Docker | アプリケーションコンテナ | – ポータブルでアプリ中心のパッケージ化に重点<br>- 巨大なエコシステム (Docker Hub)<br>- シンプルな CLI と Compose | 開発者、マイクロサービス、CI/CD ワークフロー |
| LXD | システムコンテナ | – 完全な OS 環境(軽量 VM のようなもの)<br>- LXC/Linux との緊密な統合<br>- 高度なリソース管理 | IaaS、ハイパーバイザーの代替 |
| Podman | アプリケーションコンテナ | – デーモンレスアーキテクチャ<br>- デフォルトでルートレス<br>- Docker 互換の CLI | セキュリティ重視のワークロード、エッジコンピューティング |
| containerd | コンテナランタイム | – 低レベルランタイム(Docker/Kubernetes で使用)<br>- ミニマリスト設計<br>- スケーラビリティを重視 | Kubernetes クラスタ、大規模デプロイ |
| CRI-O | Kubernetes ランタイム | – Kubernetes CRI 向けに最適化<br>- 軽量で安全<br>- Red Hat によるサポート | OpenShift/OKD クラスタ、Kubernetes ネイティブ運用 |
Docker が依然として優れている理由
- 初心者に優しい:アプリの開発とテストのためのワークフローがシンプルです。
- 移植性:コンテナは macOS、Windows、Linux でまったく同じように実行されます。
- コミュニティサポート:800 万を超える Docker Hub イメージと豊富なドキュメント。
代替手段を検討すべき場合
- LXD:完全な OS 分離が必要な場合(例:異なるユーザーで複数のサービスをホストする場合)。
- Podman:セキュリティを優先する場合(例:政府機関や医療機関のワークロード)。
- containerd/CRI-O:Kubernetes ネイティブのインフラを構築する場合。
結論
このガイドに従うことで、Ubuntu Server に Docker をインストールし、最初のコンテナ化アプリケーションをデプロイしました。Docker の柔軟性により、DevOps、クラウドネイティブ開発、ハイブリッド環境には欠かせないものとなっています。次のような高度な機能、たとえば Docker Swarm または Kubernetes との統合 を活用して、コンテナワークロードをスケールさせましょう。
参考: Docker 公式ドキュメント
次は?Linux コンテナのための LXD を探求する準備をしましょう
アプリケーションのコンテナ化のための Docker を習得したところで、Linux システムコンテナの世界をさらに深く探求してみましょう! 近日公開予定のガイドにご期待ください 。
2 thoughts on “20. How to Install Docker on Ubuntu Server: A Step-by-Step Guide to Containerization”