バイナリからの Docker Engine インストール
読む時間の目安: 3 分
重要
このページでは、Docker のバイナリをインストールする方法について示しています。 テスト目的であれば、この手順でも問題ありません。 ただしこのバイナリを用いて、本番環境に Docker をインストールすることはお勧めしません。 そうしてしまうと、セキュリティアップデートが自動的に適用されないためです。 このページにおいて説明する Linux バイナリは、スタティックリンクが行われています。 これはつまり、ビルド時に依存するパッケージ内にぜい弱性があると、利用する Linux ディストリビューションがセキュリティアップデートを行っても、自動的にパッチ適用されないということです。
Docker インストールを、パッケージマネージャーから行っていたり、Docker Desktop を通じて行っている場合に比べると、バイナリのインストールでは、更新作業が少々面倒です。 Docker の新規リリースが行われた際には、インストール更新を (手動で) 行う必要があるためです。
またスタティックリンクによるバイナリでは、ダイナミックリンクに基づくパッケージが提供する機能が、すべて含まれていない場合があります。
Windows や Mac を利用する場合は、バイナリの代わりに Docker Desktop のインストールをお勧めします。 Linux の場合は、各ディストリビューションに固有のインストール手順に従うことをお勧めします。
Docker を利用したい、あるいはテスト環境で使いたいと思っても、お使いのプラットフォームでは Docker がサポートされていません。 そんなときはスタティックリンクされたバイナリをインストールしてみてください。 可能であれば、お使いのオペレーティングシステム用にビルドされたパッケージを使い、オペレーティングシステムのパッケージ管理方法に基づいて Docker のインストールやアップグレードを行ってください。
Docker デーモンに対するスタティックバイナリは、Linux (dockerd
) と Windows (dockerd.exe
) でのみ利用可能です。
Docker クライアントに対するスタティックバイナリは、Linux、Windows、macOS で利用可能です(docker
)。
ここでは Linux、Windows、macOS におけるバイナリモジュールのインストール方法を説明します。
Linux においてデーモンとクライアントのバイナリをインストール
前提条件
Docker のバイナリをインストールする場合には、ホストマシンが以下の前提条件を満たしていることを確認してください。
- 64 ビットシステム。
- Linux カーネルのバージョンは 3.10 またはそれ以上。 利用するプラットフォームが提供する最新カーネルを用いることを推奨。
iptables
のバージョンは 1.4 またはそれ以上。git
のバージョンは 1.7 またはそれ以上。ps
実行モジュールがあること。通常procps
あるいは類似パッケージが提供している。- XZ Utils のバージョンは 4.9 またはそれ以上。
cgroupfs
階層が適切にマウントされていること。 単純にすべてを取りまとめたcgroup
マウントポイントでは不十分です。 Github の 以下の issue を参考にしてください。 #2683、 #3485、 #4568
できるだけセキュアな環境を
OS に関すること
利用可能であれば SELinux や AppArmor を有効にしてください。
利用する Linux ディストリビューションが SELinux または AppArmor をサポートしている場合は、それらを利用することを推奨します。 これを有効にしていればセキュリティは向上し、ある種のセキュリティ攻撃を防ぐことにもつながります。 SELinux や AppArmor を設定し有効にする手順については、各 Linux ディストリビューションのドキュメントを参照してください。
セキュリティ警告
このセキュリティ機能を有効にしていた場合には、Docker やコンテナーを動作させたいからというので、機能を無効にするのはお止めください。 そのかわりに、正しく機能するように設定を適切に行ってください。
Docker デーモンに関すること
-
利用可能であれば、セキュリティプロファイル
seccomp
を有効にしてください。 Docker におけるseccomp
の利用 を参照。 -
利用可能であればユーザー名前空間を有効にしてください。 デーモンのユーザー名前空間に関するオプション を参照。
スタティックバイナリのインストール
-
スタティックバイナリのアーカイブをダウンロードします。 https://download.docker.com/linux/static/stable/ へ行き、対応するハードウェアプラットフォーム向けのものを選びます。 必要としている Docker Engine のバージョンに対応づいた
.tgz
ファイルをダウンロードします。 -
tar
ユーティリティーを使ってアーカイブを展開します。 バイナリdockerd
とdocker
が抽出されます。$ tar xzvf /path/to/<FILE>.tar.gz
-
任意の作業 上のバイナリを実行パスの通ったディレクトリ、たとえば
/usr/bin/
などに移動させます。 この作業を行わない場合、docker
やdockerd
コマンドを起動する際には、常に実行ファイルへのパスも指定する必要があります。$ sudo cp docker/* /usr/bin/
-
Docker デーモンを起動します。
$ sudo dockerd &
デーモンに追加のオプションをつけて実行する必要がある場合は、上記のコマンドそれぞれを修正するか、あるいは設定ファイル
/etc/docker/daemon.json
を生成編集します。そこに必要な設定オプションを追加します。 -
Docker が正しくインストールされたことを確認するために
hello-world
イメージを実行します。$ sudo docker run hello-world
このコマンドはテストイメージをダウンロードして、コンテナー内で実行します。 コンテナーが起動すると、メッセージを表示して終了します。
macOS においてクライアントのバイナリをインストール
メモ
以下に示す手順は、テスト目的であれば問題ありません。 macOS のバイナリには Docker クライアントのみが含まれています。 逆に、コンテナー起動に必要となる
dockerd
デーモンは含まれていません。 したがって、この代わりに Docker Desktop をインストールすることをお勧めします。
Mac 用のバイナリには、以下のものは含まれません。
- ランタイム環境。エンジンを機能させるためには、仮想マシンやリモートの Linux マシンを用意して環境設定を行う必要があります。
buildx
、docker scan
、docker compose
といった Docker コンポーネント。
クライアント用バイナリをインストールするには、以下の手順を行います。
-
スタティックバイナリのアーカイブをダウンロードします。 https://download.docker.com/mac/static/stable/ へ行って、
x86_64
(Intel チップの Mac の場合)、またはaarch64
(Apple シリコンの Mac の場合) を選びます。。 そして、必要としている Docker Engine のバージョンに対応づいた.tgz
ファイルをダウンロードします。 -
tar
ユーティリティーを使ってアーカイブを展開します。 バイナリdocker
が抽出されます。$ tar xzvf /path/to/<FILE>.tar.gz
-
拡張属性をクリアして実行できるようにします。
$ sudo xattr -rc docker
この後に以下のコマンドを実行すれば、Docker CLI の利用方法を示す出力が行われます。
$ docker/docker
-
任意の作業 上のバイナリを実行パスの通ったディレクトリ、たとえば
/usr/local/bin/
などに移動させます。 この作業を行わない場合、docker
やdockerd
コマンドを起動する際には、常に実行ファイルへのパスも指定する必要があります。$ sudo cp docker/docker /usr/local/bin/
-
Docker が正しくインストールされたことを確認するために
hello-world
イメージを実行します。<hostname>
にはホスト名かその IP アドレスを指定します。 このホストは Docker デーモンが起動しているマシンのことであり、クライアントからアクセス可能であるものです。$ sudo docker -H <hostname> run hello-world
このコマンドはテストイメージをダウンロードして、コンテナー内で実行します。 コンテナーが起動すると、メッセージを表示して終了します。
Windows においてサーバーとクライアントのバイナリをインストール
メモ
以下に示す節では、Windows Server 上に Docker デーモンをインストールする方法を説明します。 これは Windows コンテナーを動作させることしかできません。 Windows 用のバイナリには、
buildx
、docker scan
、docker compose
といった Docker コンポーネントは含まれません。 Windows 10 や 11 を利用している場合は、これの代わりに Docker Desktop をインストールすることをお勧めします。
Windows 用のバイナリパッケージにはdockerd.exe
とdocker.exe
の両方が含まれます。
Windows においてこのバイナリは、ネイティブな Windows コンテナー (つまり Linux コンテナーではない) だけを実行する機能を提供しています。
サーバーとクライアントのバイナリをインストールするには、以下の手順を行います。
-
スタティックバイナリのアーカイブをダウンロードします。 https://download.docker.com/win/static/stable/x86_64 へ行って、一覧の中から最新版を選択します。
-
以下の PowerShell コマンドを実行して、自マシンの program files にアーカイブを抽出、インストールします。
PS C:\> Expand-Archive /path/to/<FILE>.zip -DestinationPath $Env:ProgramFiles
-
サービス登録を行って Docker Engine を起動します。
PS C:\> &$Env:ProgramFiles\Docker\dockerd --register-service PS C:\> Start-Service docker
-
Docker が正しくインストールできたことを確認するため、
hello-world
イメージを実行します。PS C:\> &$Env:ProgramFiles\Docker\docker run hello-world:nanoserver
上のコマンドはテストイメージをダウンロードして、コンテナー内において実行します。 コンテナーが起動すると、メッセージを表示して終了します。
スタティックバイナリのアップグレード
Docker Engine を手動によりインストールしていて、これをアップデートする場合は、まずローカルで起動させているdockerd
あるいはdockerd.exe
のプロセスをすべて終了させます。
そして通常の手順により新しいバージョンをインストールします。
次のステップ
- Linux インストール後の作業 へ進む
- Docker をはじめよう に示すトレーニングを見てください。 イメージのビルド方法や、イメージをコンテナー化アプリケーションとして起動する方法を学んでいきます。
- Docker を用いた開発 における各項目を参照してください。 Docker を使ったアプリケーションの構築方法を学びます。