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

Blog

以下のバージョンのUbuntuにDockerをインストールしていきます

frees@frees:~$ cat /etc/issue
Ubuntu 24.04.1 LTS \n \l

apt update

まずは、リポジトリをアップデートします。以下のコマンドを実行します

sudo apt update

以下は実行結果です

frees@frees:~$ sudo apt update
[sudo] frees のパスワード: 
ヒット:1 https://packages.microsoft.com/repos/code stable InRelease
取得:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]                                                                                                               
ヒット:3 http://jp.archive.ubuntu.com/ubuntu noble InRelease                                                                                                                             
取得:4 https://pkgs.tailscale.com/stable/ubuntu noble InRelease                                                                                                
取得:5 http://jp.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]                    
取得:6 http://security.ubuntu.com/ubuntu noble-security/main amd64 Components [7200 B]
取得:7 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B]     
取得:8 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Components [52.0 kB]
取得:9 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [212 B]                
取得:10 http://jp.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
取得:11 http://jp.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB]
取得:12 http://jp.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
取得:13 http://jp.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [310 kB]
取得:14 http://jp.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
取得:15 http://jp.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [208 B]
取得:16 http://jp.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
取得:17 http://jp.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [11.7 kB]
取得:18 http://jp.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
919 kB を 3秒 で取得しました (283 kB/s)                                   
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
アップグレードできるパッケージが 5 個あります。表示するには 'apt list --upgradable' を実行してください。

既存のdockerをアンインストール

以下のコマンドですでにインストールしてあるdockerをアンインストールします。

dockerをすでにインストールしていない場合は不要ですが、実行しても問題ありません

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


frees@frees:~$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'docker.io' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'docker-doc' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'docker-compose' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'docker-compose-v2' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'podman-docker' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'containerd' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'runc' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。
frees@frees:~$ sudo apt-get install ca-certificates curl
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
ca-certificates はすでに最新バージョン (20240203) です。
ca-certificates は手動でインストールしたと設定されました。
curl はすでに最新バージョン (8.5.0-2ubuntu10.6) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 5 個。

Key

aptでインストールする際にパッケージが信頼できることを証明するために公開鍵を登録をします

/etc/apt/keyrings作成

「/etc/apt/keyrings」ディレクトリを作成します

sudo install -m 0755 -d /etc/apt/keyrings

gpgダウンロード

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

chmod

sudo chmod a+r /etc/apt/keyrings/docker.asc

sourceリストに追加

aptのsourceリストにdockerを追加します

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

以下は実行した結果です


frees@frees:~$ sudo apt-get update
取得:1 https://download.docker.com/linux/ubuntu noble InRelease [48.8 kB]
ヒット:2 https://packages.microsoft.com/repos/code stable InRelease                                                                                                                                                                          
取得:3 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages [17.2 kB]                                                                                                                                                        
ヒット:4 http://jp.archive.ubuntu.com/ubuntu noble InRelease                                                                                                                                                              
ヒット:5 http://jp.archive.ubuntu.com/ubuntu noble-updates InRelease                                                                                                                               
ヒット:6 http://security.ubuntu.com/ubuntu noble-security InRelease                         
取得:7 https://pkgs.tailscale.com/stable/ubuntu noble InRelease                             
ヒット:8 http://jp.archive.ubuntu.com/ubuntu noble-backports InRelease
72.6 kB を 1秒 で取得しました (69.1 kB/s)
パッケージリストを読み込んでいます... 完了

Dockerインストール

以下のコマンドでdockerをインストールします

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

以下は実行結果です

frees@frees:~$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下の追加パッケージがインストールされます:
  docker-ce-rootless-extras libslirp0 pigz slirp4netns
提案パッケージ:
  aufs-tools cgroupfs-mount | cgroup-lite
以下のパッケージが新たにインストールされます:
  containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin libslirp0 pigz slirp4netns
アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 5 個。
124 MB のアーカイブを取得する必要があります。
この操作後に追加で 445 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 https://download.docker.com/linux/ubuntu noble/stable amd64 containerd.io amd64 1.7.24-1 [29.5 MB]
取得:2 http://jp.archive.ubuntu.com/ubuntu noble/universe amd64 pigz amd64 2.8-1 [65.6 kB]                    
取得:3 https://download.docker.com/linux/ubuntu noble/stable amd64 docker-buildx-plugin amd64 0.19.3-1~ubuntu.24.04~noble [30.7 MB]
取得:4 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 libslirp0 amd64 4.7.0-1ubuntu3 [63.8 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu noble/universe amd64 slirp4netns amd64 1.2.1-1build2 [34.9 kB]
取得:6 https://download.docker.com/linux/ubuntu noble/stable amd64 docker-ce-cli amd64 5:27.4.1-1~ubuntu.24.04~noble [15.1 MB]
取得:7 https://download.docker.com/linux/ubuntu noble/stable amd64 docker-ce amd64 5:27.4.1-1~ubuntu.24.04~noble [25.9 MB]
取得:8 https://download.docker.com/linux/ubuntu noble/stable amd64 docker-ce-rootless-extras amd64 5:27.4.1-1~ubuntu.24.04~noble [9589 kB]
取得:9 https://download.docker.com/linux/ubuntu noble/stable amd64 docker-compose-plugin amd64 2.32.1-1~ubuntu.24.04~noble [12.8 MB]
124 MB を 4秒 で取得しました (32.8 MB/s)        
以前に未選択のパッケージ pigz を選択しています。
(データベースを読み込んでいます ... 現在 416083 個のファイルとディレクトリがインストールされています。)
.../0-pigz_2.8-1_amd64.deb を展開する準備をしています ...
pigz (2.8-1) を展開しています...
以前に未選択のパッケージ containerd.io を選択しています。
.../1-containerd.io_1.7.24-1_amd64.deb を展開する準備をしています ...
containerd.io (1.7.24-1) を展開しています...
以前に未選択のパッケージ docker-buildx-plugin を選択しています。
.../2-docker-buildx-plugin_0.19.3-1~ubuntu.24.04~noble_amd64.deb を展開する準備をしています ...
docker-buildx-plugin (0.19.3-1~ubuntu.24.04~noble) を展開しています...
以前に未選択のパッケージ docker-ce-cli を選択しています。
.../3-docker-ce-cli_5%3a27.4.1-1~ubuntu.24.04~noble_amd64.deb を展開する準備をしています ...
docker-ce-cli (5:27.4.1-1~ubuntu.24.04~noble) を展開しています...
以前に未選択のパッケージ docker-ce を選択しています。
.../4-docker-ce_5%3a27.4.1-1~ubuntu.24.04~noble_amd64.deb を展開する準備をしています ...
docker-ce (5:27.4.1-1~ubuntu.24.04~noble) を展開しています...
以前に未選択のパッケージ docker-ce-rootless-extras を選択しています。
.../5-docker-ce-rootless-extras_5%3a27.4.1-1~ubuntu.24.04~noble_amd64.deb を展開する準備をしています ...
docker-ce-rootless-extras (5:27.4.1-1~ubuntu.24.04~noble) を展開しています...
以前に未選択のパッケージ docker-compose-plugin を選択しています。
.../6-docker-compose-plugin_2.32.1-1~ubuntu.24.04~noble_amd64.deb を展開する準備をしています ...
docker-compose-plugin (2.32.1-1~ubuntu.24.04~noble) を展開しています...
以前に未選択のパッケージ libslirp0:amd64 を選択しています。
.../7-libslirp0_4.7.0-1ubuntu3_amd64.deb を展開する準備をしています ...
libslirp0:amd64 (4.7.0-1ubuntu3) を展開しています...
以前に未選択のパッケージ slirp4netns を選択しています。
.../8-slirp4netns_1.2.1-1build2_amd64.deb を展開する準備をしています ...
slirp4netns (1.2.1-1build2) を展開しています...
docker-buildx-plugin (0.19.3-1~ubuntu.24.04~noble) を設定しています ...
containerd.io (1.7.24-1) を設定しています ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /usr/lib/systemd/system/containerd.service.
docker-compose-plugin (2.32.1-1~ubuntu.24.04~noble) を設定しています ...
docker-ce-cli (5:27.4.1-1~ubuntu.24.04~noble) を設定しています ...
libslirp0:amd64 (4.7.0-1ubuntu3) を設定しています ...
pigz (2.8-1) を設定しています ...
docker-ce-rootless-extras (5:27.4.1-1~ubuntu.24.04~noble) を設定しています ...
slirp4netns (1.2.1-1build2) を設定しています ...
docker-ce (5:27.4.1-1~ubuntu.24.04~noble) を設定しています ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /usr/lib/systemd/system/docker.socket.
man-db (2.12.0-4build2) のトリガを処理しています ...
libc-bin (2.39-0ubuntu8.3) のトリガを処理しています ...
frees@frees:~$

動作確認

以下のコマンドでdockerが正常にインストールしたか確認できます

sudo docker run hello-world

以下は上記コマンドの実行結果です。「Hello from Docker!」が出力されたらインストール成功です

frees@frees:~$ sudo docker run hello-world

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/

参考

Ubuntu
Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multip...

コメント

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