1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker DesktopをWindows 10 HomeにインストールしてWSLからdockerコマンドを実行する。

Last updated at Posted at 2020-03-20

結論

インストール・起動は問題ないですが、WSL2からdockerコマンドが使えない場合は、
現状は以下の設定を ~/.bashrc などの設定ファイルに追記しておきましょう。

【2021年1月25日追記】
Docker Desktop 3.1.0 ではWSL2 Ubuntu側に /usr/bin/docker -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker* のシンボリックリンクが張られるようになったので、以下の設定は不要になりました。

~/.bashrc
alias docker='docker.exe'
alias docker-compose='docker-compose.exe'

前提

  • Windows 10 Home
  • WSL2 Ubuntu (他のDistroでもおそらく同じ)

WSL2環境のセットアップ

WSL2環境の準備については、以下の記事を参考にすると良いと思います。

Docker Desktop をインストール

2020/03/20 の時点ではWSL2自体が正式版ではないので、Docker DesktopもStableではなくEdgeチャンネルを使うことになります。
(2020/05頃にはおそらくWSL2もDocker Desktopも正式版が来るはず!)

以下の記事にEdgeチャンネルのDocker Desktopのダウンロードリンクが貼られているので、そちらからダウンロードします。

(Docker Desktop Edge 2.2.2.0) となっているところです。

以下の公式のDocker Desktop for Windowsの提供ページから Edgeチャンネルのものをダウンロードしても大丈夫です。

インストール作業は、特になにか設定等は必要なく、デフォルトのままインストールすれば問題なく入りました。

WSLからdockerコマンドを実行する

そのままインストールしただけだと、WSL2 から docker とコマンドを打ってもダメでした。

image.png

docker.exe はWindows側にインストールされていて、コマンドプロンプトやPowerShellから問題なく動きます。

image.png

それをWSL2からも実行したらどうなるか試してみました。

image.png

うん。動きます。

試しにnginxを起動してみましょう。

docker.exe run --rm -p 80:80 nginx

Windows セキュリティの重要な警告 ダイアログが表示されるので、アクセスを許可する を選択します。

この状態で docker ps を実行してみましょう。

WSL2側からも、Windows側からも、どちらも同じDocker Daemonに繋ぎにいっていることがわかります。

image.png

image.png

nginx はWindows側で起動しているので、ブラウザで http://localhost:80 にアクセスするとDockerで起動したnginxコンテナに繋がります。

image.png

WSL2からもlocalhostでWindows側にアクセス可能なので、問題なくnginxコンテナに繋がります。
image.png

エイリアスの設定

Windows 10 HomeにDocker Desktopをインストールして、WSL2からdockerを使用するのが問題なさそうだとわかりましたが、docker.exe とするのは面倒なので、エイリアスを設定しておきます。

~/.bashrc
alias docker='docker.exe'
alias docker-compose='docker-compose.exe'

これで他の環境やコマンドのサンプル通りに docker だけでコマンドが使えるようになります。
また、docker-compose についても、 docker-comopose.exe でインストールされているので、こちらにもエイリアスを設定しておきました。

image.png

補足

試したWindowsの環境は、次のようなコマンドで一度dockerを導入したことがあるので、もしかしたらそれがWSL2側にdockerコマンドがすんなり入らない原因かもしれません。
インストール済みの場合は apt remove で除去しておきましょう。

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose
 -y
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?