MAGAZINE
ルーターマガジン
インフラ/運用
UbuntuでのDocker環境構築方法を全パターン試す
2024.07.30
はじめに
Dockerは軽量なコンテナ仮想環境で、アプリケーションを構築、テスト、デプロイできるプラットフォームです。 このプラットフォームには、Docker Engine, Docker CLI, Docker Compose, Docker Build等、様々な要素が含まれています。Docker Engineはコンテナ仮想環境の核となる要素です。Docker Desktopは、これら全ての要素が搭載されたGUIアプリケーションです。WindowsやMacでは、Docker Desktopのインストールが推奨されます。一方で、Linuxでは限られたバージョンのディストリビューションでしかDocker Desktopをインストールできず、Docker Engineの方がより広く対応しています。 本記事では、UbuntuでのDocker Engine環境構築方法を紹介します。開発環境
- 64 ビット オペレーティング システム、x64 ベース プロセッサ
- Windows11 + WSL2
- Ubuntu 20.04.6 LTS (Focal Fossa)
UbuntuでのDocker環境構築方法一覧
以下4つの方法で、Docker Engineをインストールできます。- aptリポジトリからインストールする。
- debファイルをダウンロードしてインストールする。
- githubで提供されているスクリプトを実行してインストールする。
- バイナリをダウンロードしてインストールする。
1. aptリポジトリからインストールする
以下コマンドで最新版のDocker Engineをインストールできます。$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
$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
$sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
最終行のインストールコマンドを以下の二行に変更することで、特定のバージョンのDocker Engineをインストールできます。VERSION_STRINGで指定できるバージョンは、$apt-cache madison docker-ce | awk '{ print $3 }'
の出力により確認できます。
$VERSION_STRING=5:26.1.3-1~ubuntu.20.04~focal
$sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
Docker runを実行し、動作確認をします。このコマンドはhello-worldのimageをダウンロードし、コンテナ内で実行します。正常な動作を示したことから、インストールの成功を確認できました。
$sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:266b191e926f65542fa8daaec01a192c4d292bff79426f47300a046e1bc576fd
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
2. debファイルをダウンロードしてインストールする
aptリポジトリからインストールできない場合は、こちらのリンクからDocker Engine, CLI, containerd, Docker Composeのdebファイルをダウンロードしてインストールします。今回は私の開発環境に一致した最新版をダウンロードしました(2024/05/30時点)。実際にこの方法でインストールする際は、適宜debファイルと、インストールの際のファイル指定を変更する必要があります。#debファイルをダウンロード
$wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.6.31-1_amd64.deb
$wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-buildx-plugin_0.14.0-1~ubuntu.20.04~focal_amd64.deb
$wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce-cli_26.1.3-1~ubuntu.20.04~focal_amd64.deb
$wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce_26.1.3-1~ubuntu.20.04~focal_amd64.deb
$wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-compose-plugin_2.27.0-1~ubuntu.20.04~focal_amd64.deb
ダウンロードしたファイルを以下コマンドでインストールします。一部パッケージで古いバージョンを選択するとインストールに失敗します。
$sudo dpkg -i ./containerd.io_1.6.31-1_amd64.deb \
./docker-buildx-plugin_0.14.0-1~ubuntu.20.04~focal_amd64.deb \
./docker-ce-cli_26.1.3-1~ubuntu.20.04~focal_amd64.deb \
./docker-ce_26.1.3-1~ubuntu.20.04~focal_amd64.deb \
./docker-compose-plugin_2.27.0-1~ubuntu.20.04~focal_amd64.deb
インストールの成功は、$sudo docker run hello-world
で確認します。
3. github上のスクリプトを実行してインストールする
Dockerは、環境構築のためのスクリプト を提供しています。このスクリプトを実行すると、最新版の安定リリースをインストールできます。簡単な方法ですが、バージョン等の指定ができません。従って、このスクリプトを使用して実稼働システムをデプロイする際に、予期しないDockerのアップグレードが起こるリスクがあります。テスト環境でアップグレードの有無を確認するなど、気を付けて使用する必要があります。 インストールの際は以下コマンドでスクリプトを取得し、実行します。$curl -fsSL https://get.docker.com -o get-docker.sh
$sudo sh get-docker.sh
インストールの成功は、$sudo docker run hello-world
で確認します。
4. バイナリをダウンロードしてインストールする
バイナリからのインストールは、テスト目的の場合に適しています。バイナリを使用した場合は、自動セキュリティ更新がないことから、本番環境へのインストールは推奨されません。インストールの際は、こちらのリンクから、静的バイナリアーカイブをダウンロードします。今回は最新(2024/05/30時点)のdocker-26.1.3.tgzをダウンロードしました。#バイナリのダウンロード
$wget https://download.docker.com/linux/static/stable/x86_64/docker-26.1.3.tgz
以下コマンドで圧縮されたアーカイブを解凍、展開し、dockerおよびdockerdバイナリを実行可能なパスに移動します。
$tar xzvf docker-26.1.3.tgz
$sudo cp docker/* /usr/bin/
$sudo dockerd &
でDockerデーモンを起動します。インストールの成功は、$sudo docker run hello-world
で確認します。
まとめ
- UbuntuでDocker Engineをインストールする方法を検証しました。
- バージョンの管理、セキュリティの観点から、「aptリポジトリからインストールする方法」がおすすめです。
CONTACT
お問い合わせ・ご依頼はこちらから