20. Ubuntu Server に Docker をインストールする方法:コンテナ化のステップバイステップガイド

コンテナ化は、ソフトウェアを分離された軽量な環境にパッケージ化することでアプリケーションデプロイを変革し、異なるシステム間での一貫性を確保しています。 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

09. Ubuntu サーバーの監査とロギング

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 と入力する手間を省くには、次の手順に従います。

  1. Docker グループの作成 (存在しない場合): sudo groupadd docker
  2. ユーザーをグループに追加します: sudo usermod -aG docker $USER
  3. 変更の適用: 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-OKubernetes ランタイム– 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 システムコンテナの世界をさらに深く探求してみましょう! 近日公開予定のガイドにご期待ください 。

“Linux コンテナのための LXD 入門:軽量仮想化をシンプルに“

2 thoughts on “20. How to Install Docker on Ubuntu Server: A Step-by-Step Guide to Containerization”

コメントを残す