Windows への Docker CLI のインストール

| 3 min read
Author: shigeki-shoji shigeki-shojiの画像

庄司です。

Docker は背後で Docker デーモンが実行されて、Docker コマンドは Unix ドメインソケット (Linux や macOS の場合) または tcp ソケットで Docker デーモンと通信します。

Linux にインストールした Docker デーモンは設定により Unix ドメインではなく tcp で外部マシンからのアクセスもできます。これは、Windows Subsystem for Linux 2 にインストールした Docker デーモンの場合も同様です。

この記事では、ローカルの WSL2 またはリモートの Amazon Linux 2 などで動作している Docker デーモンにリモートで接続して、Docker を利用するために、Windows 環境に Docker クライアントの Docker CLI をインストールする手順を説明します。また、Docker デーモンへのアクセスには暗号化されていない tcp/2375 を使用する場合について記述しています。

Information

Linux 環境の Docker Engine を外部に公開する場合は、次のような /etc/docker/daemon.json ファイルを作成します。

{
     "tls": false,
     "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}

Windows Package Manager のインストール

#

Windows のパッケージマネージャの Chocolatey を最初にインストールします。

Power Shell を管理者権限で起動して、次のコマンドを実行します。

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Docker CLI のインストール

#

Docker CLI をインストールするため、次のコマンドを実行します。

choco install docker-cli

環境変数の設定

#

Docker デーモンを WSL2 にインストールし公開している場合は、環境変数 DOCKER_HOST を次のように設定します。

コマンドプロンプトの場合。

set DOCKER_HOST=tcp://localhost:2375

PowerShellの場合。

$Env:DOCKER_HOST="tcp://localhost:2375"

リモートサーバで公開している場合は Linux の Docker デーモンのホストまたは IP アドレス (例では 192.168.1.3) を環境変数 DOCKER_HOST に設定します。

コマンドプロンプトの場合。

set DOCKER_HOST=tcp://192.168.1.3:2375

PowerShellの場合。

$Env:DOCKER_HOST="tcp://192.168.1.3:2375"

確認

#

以下のコマンドの実行が成功すれば、リモートの Docker デーモンへの接続できています。

docker run -it --rm hello-world

何に役立つか

#

Docker Engine への接続に外部から tcp を使って接続できる知識は、コンテナを利用するタイプの CI/CD を活用する場合に役立ちます。

例えば、GitLab CI/CD の中で Docker in Docker を使う場合は、tcp://docker:2375 で Docker デーモンと接続されます。

docker の IP アドレスは getent hosts docker コマンド等で知ることができます。

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。