MAGAZINE

ルーターマガジン

インフラ/運用

UbuntuでのDocker環境構築方法を全パターン試す

2024.07.30
Pocket

はじめに

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をインストールできます。
  1. aptリポジトリからインストールする。
  2. debファイルをダウンロードしてインストールする。
  3. githubで提供されているスクリプトを実行してインストールする。
  4. バイナリをダウンロードしてインストールする。
インストールのためのOS要件は、公式ページ から確認する必要があります。バージョン指定、アップグレード等容易であることから、aptリポジトリからインストールする。」がおすすめです。

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ファイルのダウンロード
#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で確認します。

まとめ

Pocket

CONTACT

お問い合わせ・ご依頼はこちらから