UbuntuにDockerをインストールする方法:完全なステップバイステップのチュートリアル

UbuntuでDockerを動かすのは、必ずしも簡単ではありません。特に、何かが壊れたり、箱から出してすぐには動かなかったりする場合はなおさらです。インストールしてみたものの、dockerなどのコマンドが認識されなかったり、コンテナが接続できなかったりと、イライラすることもあるでしょう。このガイドでは、公式リポジトリからのインストールからオフラインパッケージまで、最も一般的な方法を解説するとともに、トラブルシューティングや古いバージョンのクリーンアップに関するヒントも紹介します。Linuxは、当然ながら、必要以上に複雑にしてしまう性質があるからです。一度セットアップすれば、コンテナの実行、ローカルでのテスト、さらには本番環境へのデプロイも可能になります。手間をかけずに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" done 

これにより、混乱を避けることができます。古いバージョンや競合するツールが原因で、コマンドが見つからないエラーやデーモンの起動エラーが発生することがあります。設定によっては、再起動することでようやく同期が取れる場合もあります。

Ubuntuのバージョンとアーキテクチャを確認し、環境を把握しましょう

コマンドを実行する前に、OSとCPUアーキテクチャが想定どおりであることを確認してください。次のコマンドを実行してください。

source /etc/os-release && echo "Ubuntu codename: ${UBUNTU_CODENAME:-$VERSION_CODENAME}" dpkg --print-architecture 

これは、正しいリポジトリとパッケージ バージョンで作業していることを確認するだけです。アーキテクチャが間違っていると、インストールが壊れたり、パッケージが一致しなくなったりすることがあります。

方法1: 公式APTリポジトリからDockerをインストールする

安定的で管理しやすい環境を求める多くの人にとって、これは頼りになる選択肢です。最新の公式Dockerバージョンをソースから直接アップデートできるので、依存関係の悪化を回避できます。

必要なパッケージをインストールし、GPGキーを追加します

このステップでは、 ca-certificatescurlなどのツールがインストールされ、DockerのGPGキーも追加されます。非常に簡単ですが、ここで手順を1つでも省略すると、aptが正規のDockerパッケージを取得していることを検証できず、問題が発生します。

sudo apt-get update sudo apt-get install -y ca-certificates curl 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の公式リポジトリを追加する

ここで、Dockerパッケージの場所をシステムに指示します。これは単純なechoコマンドですが、$(./etc/os-release && echo “${UBUNTU_CODENAME}”)を適切に置き換えてください。特にOSが標準でない場合は、期待通りに展開されないことがあります。

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(./etc/os-release && echo "${UBUNTU_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update 

DockerエンジンとCLIツールをインストールする

あとはコンテナとCLIをインストールするだけです。通常は問題なく動作しますが、特殊な設定の場合は、特定のバージョン番号を指定したり、依存関係が壊れていないか確認したりする必要があるかもしれません。

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

Dockerがインストールされ実行されていることを確認する

エラーが発生しない場合は、デーモンのステータスを確認します。

sudo systemctl status docker --no-pager docker run hello-world 

このテストは小さなイメージをプルして実行します。動作すれば、Dockerの設定は基本的に問題ありません。一部のマシンでは、利便性のためにユーザーをDockerグループに追加する必要があるかもしれません。

sudo usermod -aG docker $USER newgrp docker docker run hello-world 

理由はわかりませんが、再起動せずにグループの変更を有効にするには、 newgrpまたは再ログインが必要になる場合があります。

特定のDockerバージョンのアップグレードまたはインストール

特定のバージョンが必要な場合は、次の方法で利用可能なバージョンを確認してください。

apt-cache madison docker-ce | awk '{ print $3 }' 

次に、次のように選択してインストールします。

sudo apt-get install -y docker-ce=<version> docker-ce-cli=<version> containerd.io 

場合によっては、互換性の理由から特定のビルドだけが必要になることがあります。リポジトリが更新されていない場合、一部のセットアップではダウングレードや特定のバージョンが問題になる可能性があることに注意してください。

方法2:.deb パッケージ経由でオフラインインストールする

サーバーが分離されている場合やインターネット接続が不安定な場合に最適です。まずすべてのファイルを取得し、ローカルにインストールする必要があります。

Dockerパッケージを手動でダウンロードする

DockerのUbuntuリポジトリにアクセスし、アーキテクチャ(amd64arm64など)を選択します。以下の.debファイルを取得します。

  • containerd.io_<version>_<arch>.deb
  • docker-ce_<version>_<arch>.deb
  • docker-ce-cli_<version>_<arch>.deb
  • docker-buildx-plugin_<version>_<arch>.deb
  • docker-compose-plugin_<version>_<arch>.deb

ダウンロードしたら、すべてを一度にインストールします。

sudo dpkg -i./containerd.io_*_*.deb \./docker-ce_*_*.deb \./docker-ce-cli_*_*.deb \./docker-buildx-plugin_*_*.deb \./docker-compose-plugin_*_*.deb 

これは少し扱いにくいように感じますが、インターネットがない場合にはこれが唯一の選択肢であり、一部のシステムではより確実に動作します。

方法3: Dockerの公式便利スクリプトを使用する

速度がセキュリティよりも重要な場合 (本番環境では推奨されません)、次のコマンドを実行します。

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh./get-docker.sh --dry-run # preview, then run without --dry-run sudo sh./get-docker.sh 

この方法では、すべてをダウンロードして、最小限の手間でセットアップできます。欠点は、バージョンや依存関係を制御できないことと、重要なシステムには少々不安があることです。

UbuntuにDockerデスクトップをインストールする

DockerのGUIエクスペリエンスを実現するため、Desktopはシステムトレイ上のDockerのような、使いやすさを向上させるレイヤーを追加します。GNOME以外のOSをお使いの場合は、Ubuntu 22.04以降とGNOMEターミナルが必要です。

デスクトップリポジトリをセットアップしてインストールする

基本的に方法 1 のリポジトリ設定を繰り返しますが、その後インストールします。

sudo apt-get install -y./docker-desktop-amd64.deb 

起動して自動起動を有効にします。

systemctl --user start docker-desktop systemctl --user enable docker-desktop 

インストール後のチェックと一般的なトラブルシューティング

docker run hello-world docker run -d -p 8080:80 --name web nginx docker ps sudo systemctl enable docker 

典型的な問題:

  • docker: command not found→ Docker CLI を再インストールするか、PATH に /usr/bin または /usr/local/bin が含まれていることを確認してください。
  • デーモンに接続できません→ Docker サービスが起動しており、ユーザーがdockerグループに属していることを確認してください。
  • イメージのプルに失敗する→ ネットワーク設定、プロキシ、DNS、または時刻同期(NTP)を確認してください。Docker が Docker Hub にアクセスできない場合があります。
  • ファイアウォールの問題→ コンテナ ポート トラフィックを許可するには、 DOCKER-USERチェーンまたはファイアウォールにルールを追加する必要がある場合があります。

必要に応じてDockerをアンインストールする

sudo apt-get purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.asc 

まとめ

UbuntuにDockerを導入するのは、カーネルバージョン、依存関係、ファイアウォールなど、様々な要素が絡み合うため、少し面倒に感じるかもしれません。しかし、一度動作してしまえば、コンテナ管理としては非常に安定しています。公式の方法は、オンラインインストールからオフラインセットアップまで、ほぼあらゆるシナリオに対応しており、トラブルシューティング手順を踏めば、たいていの問題は解決できます。セットアップがうまくいけば、ほっと一息です。すぐにコンテナの構築やデプロイを始められるでしょう。

まとめ

  • 競合するパッケージを最初に削除する
  • 環境に応じて適切なインストール方法を選択してください
  • 簡単なコンテナテストでDockerの実行を確認する
  • Docker を最新の状態に保ち、必要に応じてファイアウォール ルールを確認します。
  • 方法を切り替える場合は古い設定を完全に削除する

これが役に立つことを祈る