Windows Tips

WSL から Docker Desktop の docker.exe が普通に実行できました

投稿日:2020年2月6日 更新日:

1. Docker for Windows から Docker Desktop へ

2018年に WSL の docker client から、Docker for Windows の docker daemon を使う手順 という記事を書いたのですが、その後についてです。

当時 Docker for Windows と呼ばれていたツールは、現在では Docker Desktop という名前になっており、Mac用のツールと同じ名前で扱われるようになりました。

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

以前の記事にも書いたように、Docker for Windows で提供されていたクライアント側コマンド docker.exe は WSL からだとインタラクティブな処理でエラーが発生していました。

しかし、現在ではインタラクティブな処理であってもエラーにならないようです。こうなると、WSL 側で Docker のパッケージをインストールする必要もないということになります。

実際に WSL 側から docker.exe コマンドを実行しているスクリーンショットを載せておきます。パスも通っているので、docker.exe という名前そのままでコマンドが実行できます。

3. Docker Desktop 側の設定について

Docker Desktop 側の設定についてですが、以前の記事で説明していた「Expose daemon on tcp://localhost:2375 without TLS」という設定項目にチェックを入れる必要もありませんし、~/.profile ファイルに DOCKER_HOST を書いておく必要もありません。

4. おわりに

現時点では Docker Desktop をそれほど使っていないため、問題に気付いていないということも考えられます。その場合は本記事に追記する予定です。

随分と便利になりました。

5. パスについての補足

WSL 側から docker.exe を実行する際のパラメータに、パスを指定する必要がある場合についての補足です。

例えば `pwd`$(pwd) と記述してコマンドを展開したい場合(pwd は現在いるパスを出力するコマンドです)、Linux上のシェルで展開されるため Linux用のパスが出力されますが、docker.exe は Windows 用のプログラムなので、Windows 用のパスを渡さないとエラーになります。この場合は、`wslpath -w $(pwd)`$(wslpath -w $(pwd)))と書き換えるとうまくいきます。

📂-Windows Tips

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Windows 10 で「Web ブラウザ」の「既定のアプリ」を変更する方法

Windows 10 で「Web ブラウザ」の「既定のアプリ」を変更する手順を説明します。 [設定] – [システム] – [既定のアプリ] の画面で簡単に変更できそうですが、 …

Windows

Windows には Sysinternals Suite を導入しておくと便利です

目次1. Sysinternals Suite とは?2. Sysinternals Suite の導入3. Sysinternals Suite を利用する4. コマンド(ツール)の種類5. おわり …

Windows

Alt + Tab キーでEdgeの個別タブを切り替え候補にしない設定手順(Windows 10 20H2)

目次1. はじめに2. 20H2 で Alt + Tab の何が変わったのか従来20H2 での変更3. 以前の挙動に戻す4. 問題点5. おわりに 1. はじめに Windows 10 バージョン 2 …

docker

WSL の docker client から、Docker for Windows の docker daemon を使う手順

Windows 10 Pro (Hyper-V) で、WSL から Docker を使う環境を構築する手順について説明します。 目次前提とする知識1. Docker とは?Docker の思想新たなエ …

Windows

存在しているはずのホームグループが見つからない場合の対処法 (Windows 10)

Windows 7 以降では「ホームグループ」という機能を使い、複数のパソコンでファイルを共有することができます。 1つのネットワーク内で誰かがホームグループを「作成」しておけば、共有する1つのパスワ …