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

Docker はコンテナ仮想化技術を用いてアプリケーションを開発、配布、実行するためのオープンソースプラットフォームです。

開発環境をコンテナ化することで、環境構築の手間を省くことができ、開発効率を向上できます。 Docker はエンジニアにとって必須の技術です。

本記事では Ubuntu に Docker Engine をインストールする方法を解説します。 インストール方法は公式の dockerdocs/Manuals/Docker Engine をもとにしているので、詳細を知りたい方はそちらを参考に。

目次

Ubuntu のセットアップ

私は Windows に WSL を入れて、開発環境にしています。

WSL は Windows 上で Linux を直接実行できる機能です。 WSL をインストールすることで Windows のデスクトップ環境を使いながら、Linux のコマンドラインツールや開発環境を利用できます。

非常に便利なので、まだの人は WSL をインストールしましょう。 WSL のインストールは以下の記事で解説しています。

あわせて読みたい
Python プログラミングの始め方 本記事では Python の開発環境の構築方法を紹介します。 Python の開発環境の作り方はいくつかの方法がありますが、おすすめは WSL を使った方法です。 私はプログラミ...

Docker のインストール

ではさっそくインストールしていきましょう。

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

Docker も日々進化しています。 過去に Docker を入れている場合は、これから入れる最新の Docker Engine と競合するので、アンインストールしておきます。

「入れたことなきいけどなぁ」という人も念のため実行しておけばよいです。

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

では、インストールしていきましょう。

インストールの準備

インストールには apt-get を使います。

まず、これからダウンロードする Docker のパッケージの正しさをチェックするために GPG key をセットアップします。

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

GPG key がセットアップできたら、apt でインストール更新できるように、apt のリポジトリに 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

これで準備は終わりです。

インストール

続いて apt でインストールします。

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

これでインストールも終わりです。

Docker が使えるか確認してみましょう。

sudo docker run hello-world

以下のような結果が出力されればインストール成功しています。

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

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

docker を sudo で実行しているのに気づくでしょう。 一般ユーザで実行するには、もう少し手順を進める必要があります。

インストール後のセットアップ

インストール後のおすすめのセットアップです。

sudo なしで実行できるよに

Docker デーモンは、TCP ポートではなく Unix ソケットにバインドします。 デフォルトでは、Unix ソケットを所有するのは root ユーザーであり、他のユーザーは sudo を使用してのみアクセスできます。 Docker デーモンは常に root ユーザーとして実行されます。

docker コマンドの先頭に sudo を付けたくない場合は、docker という Unix グループを作成し、そこにユーザーを追加します。

以下のコマンドです。

sudo groupadd docker
sudo usermod -aG docker $USER

Ubuntu ではインストール時に docker グループが作成されていたので、sudo groupadd dockeralready existsで不要でした。

docker グループに追加できたら、一度ログアウトしログインしなおします。

インストール時に実行してみた helloworld を一般ユーザで実行してみましょう。 成功するはずです。

docker run hello-world

ログの設定

デフォルトは json ファイルでログを吐き出すので非効率的かつ肥大になります。 開発用途であれば、長期間残す必要もないので、軽量な local ロギングかつ、サイズやローテーション回数も小さくしておくとよいです。

/etc/docker/daemon.jsonに以下のような設定を追加します。 インストール直後はファイルないので、以下の内容で作成すればよいです。

{
  "log-driver": "local",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

おわりに

本記事では Ubuntu に Docker Engine をインストールする方法を解説しました。

以上です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

システム開発の経歴が20年のエンジニアです。
フロントエンド(Ajax,...,React,SPA)からバックエンド(Database,...,Hadoop,PaaS)まで幅広く経験し、現在は企業に勤め、社内のITアーキテクトに就いています。

コメント

コメントする

CAPTCHA


目次