メインコンテンツまでスキップ

Ubuntu にDocker Engineをインストールする

警告: Ubuntu に Docker をインストールするときは、apt を使用しないでください。Docker の APT リポジトリをしっかりと設定した上で、以下の手順に従ってインストールしてください。

前提条件

OSの要件

Dockerは、以下のバージョンのUbuntuをサポートしています。

  • Ubuntu Mantic 23.10
  • Ubuntu Jammy 22.04 (LTS)
  • Ubuntu Focal 20.04 (LTS)

Dockerは、64ビットx86プラットフォームまたはARMプラットフォームにインストールできます。プロダクション環境では、5年間のセキュリティアップデートを受けられるUbuntu LTS (Long-Term-Support)リリースを使用することをおすすめします。

古いバージョンのアンインストール

以前のDockerは docker または docker-engine という名前でした。インストールされている場合は、最初にアンインストールしてください。

$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker; do sudo apt-get remove $pkg; done

また、Docker Engineは containerd と runc に依存しているので、競合を避けるためにこれらもアンインストールしてください。

$ sudo apt-get remove containerd runc

APTリポジトリを使ったインストール

Dockerの apt リポジトリを設定する

apt パッケージインデックスを更新し、apt が HTTPS を介してリポジトリを利用できるようにパッケージをインストールします。

# Docker の公式 GPG キーを追加する:
sudo apt-get update
sudo apt-get install 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

# リポジトリを Apt ソースに追加する:
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 > /dev/null
sudo apt-get update

Ubuntu の派生ディストリビューション (Linux Mint など) を使っている場合は、VERSION_CODENAME の代わりに UBUNTU_CODENAME を使う必要があるかもしれません。

Dockerパッケージをインストールする

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

便利なスクリプトを使ったインストール

Dockerは、テストと開発環境向けのインストール手順を簡素化する便利なスクリプトを提供しています。Ubuntu では、このスクリプトを使用し、必要に応じて --mirror フラグを使ってミラーリポジトリからインストールできます。

# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

このスクリプトは、すべての前提条件を自動的に処理し、最新の安定板バージョンのDockerをインストールします。

Dockerを起動する

$ sudo systemctl enable docker
$ sudo systemctl start docker

rootユーザー以外のユーザーでDockerを管理する

デフォルトでは、docker コマンドは Unix ソケットを使ってDockerエンジンと通信します。Unix ソケットにアクセスできるのは rootdocker グループのユーザーのみです。

root を使わずにDockerを使うには、docker グループを作成し、ユーザーをそのグループに追加します。

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

ログアウトしてから再ログインすると、変更が有効になります。

Dockerのインストールをテストする

$ docker run --rm hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

...

上記の出力が表示されれば、Dockerが正しくインストールされています。

参考資料