Ubuntu 22.04 LTSへの最新版Dockerのインストール

Ubuntu 22.04 LTSへの最新版Dockerのインストール サーバー

「OS標準のDockerが古すぎる・・・」
「Ubuntu 22.04 LTSに最新版Dockerをインストールしたい」

このような場合には、この記事の内容が参考となります。
この記事では、Ubuntu 22.04 LTSに最新版Dockerをインストールする方法を解説しています。

本記事の内容

  • Ubuntu 22.04におけるOS標準のDocker
  • Ubuntu 22.04における最新版Dockerのパッケージ取得
  • Ubuntu 22.04への最新版Dockerのインストール
  • Dockerの動作確認

それでは、上記に沿って解説していきます。

Ubuntu 22.04におけるOS標準のDocker

Ubuntuには、OS標準のソフトウェアが存在しています。
ApacheやNginxなどには、OS標準のソフトウェアが存在します。

そして、DockerにもOS標準のソフトウェアは存在しています。

$ sudo apt info docker 
Package: docker 
Version: 1.5-2 
Priority: optional 
Section: universe/x11 
Origin: Ubuntu 
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> 
Original-Maintainer: Paul Tagliamonte <paultag@debian.org> 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug 
Installed-Size: 9,216 B 
Depends: wmdocker 
Download-Size: 1,316 B 
APT-Sources: http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 
Description: 移行用パッケージ 
 This is a transitional package for system tray docking application. It can 
 safely be removed.

上記の「Version」をよく見てください。
Docker 1.5.2と記載されています。

このバージョンのDockerは、なんと2015年12月3日にリリースされているのです。

利用中のOSはUbuntu 22.04であり、決して古いわけではありません。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=22.04 
DISTRIB_CODENAME=jammy 
DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS"

さすがに、Docker 1.5.2は古過ぎですよね。
古過ぎるDockerが登録されている理由は、わかりません。

ただ、Dockerが2017年に有償版をリリースしたことが関係していると思われます。
それ以降は、無償版と有償版とで明確に区別するようになっています。

無償版のDockerは、Docker-CEと呼ばれています。
パッケージ名は、docker-ceとなります。

では、これがOS標準として存在するのかを確認してみましょう。

$ sudo apt info docker-ce 
Package: docker-ce 
State: 実際のパッケージではありません (仮想) 
N: 候補が存在しないので、パッケージ docker-ce の候補バージョンを選べません 
N: 純粋な仮想パッケージのため、パッケージ 'docker-ce' のバージョンを選べません 
N: パッケージが見つかりません

パッケージ自体が、存在していませんね。

とりあえず、OS標準のDockerはインストールしてはいけません。
パッケージ名で言うと、「docker」のインストールはやめましょう。

以上、Ubuntu 22.04におけるOS標準のDockerについて説明しました。
次は、Ubuntu 22.04における最新版Dockerのパッケージ取得について説明します。

Ubuntu 22.04における最新版Dockerのパッケージ取得

現時点(2022年5月)でのDockerの最新版は、20.10.16となります。

Docker 20.10.16は、2022年5月12日にリリースされています。
この最新版Docker は、PPAを利用してインストール可能です。

Dockerに関しては、Dockerの公式がリポジトリを公開しています。
それを利用して、最新版Dockerのパッケージ取得します。

そのために必要なモノをインストールしておきます。
リポジトリへの追加処理に必要なツールと言えばよいかもしれません。

$ sudo apt-get update 
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

準備が整ったら処理を進めていきます。
まずは、Dockerの公式GPGキーを追加します。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

そして、リポジトリへの追加を行います。

$ 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

上記が実行できたら、ファイルを確認します。

$ cat /etc/apt/sources.list.d/docker.list 
deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu   jammy stable

22.04 LTSのコードネームである「jammy」を確認できます。
あと、「stable」で安定版ということも確認しておきます。

ここまで確認できたら、パッケージリストを更新します。

$ sudo apt-get update

では、取得できたパッケージを確認してみましょう。
ここで注意が必要です。

再度、「docker」を調べても何も変わりません。
追加したのは、Dockerの無償版であるDocker-CEでした。

よって、「docker-ce」の情報を確認します。

$ sudo apt info docker-ce 
Package: docker-ce 
Version: 5:20.10.16~3-0~ubuntu-jammy 
Priority: optional 
Section: admin 
Maintainer: Docker <support@docker.com> 
Installed-Size: 100 MB 
Depends: containerd.io (>= 1.4.1), docker-ce-cli, iptables, libseccomp2 (>= 2.3.0), libc6 (>= 2.34), libdevmapper1.02.1 (>= 2:1.02.97), libsystemd0 
Recommends: apparmor, ca-certificates, docker-ce-rootless-extras, git, libltdl7, pigz, procps, xz-utils 
Suggests: aufs-tools, cgroupfs-mount | cgroup-lite 
Conflicts: docker (<< 1.5~), docker-engine, docker-engine-cs, docker.io, lxc-docker, lxc-docker-virtual-package 
Replaces: docker-engine 
Homepage: https://www.docker.com 
Download-Size: 21.0 MB 
APT-Sources: https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages 
Description: Docker: the open-source application container engine 
 Docker is a product for you to build, ship and run any application as a 
 lightweight container 
 . 
 Docker containers are both hardware-agnostic and platform-agnostic. This means 
 they can run anywhere, from your laptop to the largest cloud compute instance and 
 everything in between - and they don't require you to use a particular 
 language, framework or packaging system. That makes them great building blocks 
 for deploying and scaling web apps, databases, and backend services without 
 depending on a particular stack or provider.

デフォルトでは、Docker-CEのパッケージを確認できませんでした。
しかし、リポジトリに追加することでDocker-CEのパッケージを確認できるようになりました。

以上、Ubuntu 22.04における最新版Dockerのパッケージ取得について説明しました。
次は、Ubuntu 22.04への最新版Dockerのインストールを説明します。

Ubuntu 22.04への最新版Dockerのインストール

Dockerのインストールは、次のコマンドを用います。
必要なモノをまとめてインストールします。

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

インストールは、結構すぐに終わります。
インストールが完了したら、バージョンを確認しましょう。

$ sudo docker version 
Client: Docker Engine - Community 
 Version:           20.10.16 
 API version:       1.41 
 Go version:        go1.17.10 
 Git commit:        aa7e414 
 Built:             Thu May 12 09:18:18 2022 
 OS/Arch:           linux/amd64 
 Context:           default 
 Experimental:      true 
Server: Docker Engine - Community 
 Engine: 
  Version:          20.10.16 
  API version:      1.41 (minimum version 1.12) 
  Go version:       go1.17.10 
  Git commit:       f756502 
  Built:            Thu May 12 09:16:22 2022 
  OS/Arch:          linux/amd64 
  Experimental:     false 
 containerd: 
  Version:          1.6.4 
  GitCommit:        212e8b6fa2f44b9c21b2798135fc6fb7c53efc16 
 runc: 
  Version:          1.1.1 
  GitCommit:        v1.1.1-0-g52de29d 
 docker-init: 
  Version:          0.19.0 
  GitCommit:        de40ad0

最新バージョンが確認できます。
なお、root権限で実行しないとパーミッションで以下の文句を言われます。

Got permission denied while trying to connect to the Docker daemon socket at unix

文句を言われないためには、利用中のユーザーをdockerグループに追加することもありです。
dokcerグループへの追加は、以下のコマンドで行います。

sudo usermod -aG docker <your-user>

上記を反映するには、再ログインが必要です。

以上、Ubuntu 22.04への最新版Dockerのインストールについて説明しました。
最後に、Dockerの動作確認を説明します。

Dockerの動作確認

動作確認の王道である「hello world」を実行します。
Dockerには、専用のアプリケーションが用意されています。

それを利用して、Dockerの動作確認を行います。
root権限で以下を実行。

sudo docker run hello-world

実行した結果は、以下となります。

$ sudo docker run hello-world 
Unable to find image 'hello-world:latest' locally 
latest: Pulling from library/hello-world 
2db29710123e: Pull complete 
Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17 
Status: Downloaded newer image for hello-world:latest 
Hello from Docker! 
This message shows that your installation appears to be working correctly. 
To generate this message, Docker took the following steps: 
 1. The Docker client contacted the Docker daemon. 
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 
    (amd64) 
 3. The Docker daemon created a new container from that image which runs the 
    executable that produces the output you are currently reading. 
 4. The Docker daemon streamed that output to the Docker client, which sent it 
    to your terminal. 
To try something more ambitious, you can run an Ubuntu container with: 
 $ docker run -it ubuntu bash 
Share images, automate workflows, and more with a free Docker ID: 
 https://hub.docker.com/ 
For more examples and ideas, visit: 
 https://docs.docker.com/get-started/

上記のようなメッセージを確認できたら、Dockerの動作確認は問題ありません。

以上、Dockerの動作確認を説明しました。

タイトルとURLをコピーしました