それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

WSL (v1)からdocker を使う

WSL (v1)からdocker を使う

WSL から Docker を使うには、TCPでローカルホストに接続するのが楽ちん

docker ( windows ) のインストール

まずは、Windows にDocker-Desktop をインストール

choco install docker-desktop

port 2575 を有効にする。

インストールしたら、Dockerが外部からの接続を受け付けるように設定する。

f:id:takuya_1st:20210304070117p:plain

WSL 側で docker-client を使えるようにインストール。

WSL v1 ( ubuntu / debian )で docker コマンドをインストール ( cli だけでいい)

sudo apt install docker-ce-cli

DOCKER_HOST の環境変数を用意する。

docker-desktop がリッスンしているポートを指定する。

export DOCKER_HOST=tcp://localhost:2375

あとは通常通り使える

WSL v2 じゃないとだめってわけじゃなく、TCP接続すれば別に問題なく動く。

docker ps 

たとえば、php を動かす。

php のコードを docker 内部で動作させる。

wsl v1 のパスを 明示的に変換する必要がある。とくにボリュームを接続するときは、 wslpath を使ってwindowsC:\ のパスに変換して上げる必要ある。

docker run --rm -it -v "$(wslpath -m ${PWD})":/app -w /app -u www-data php:7.4-cli php test.php

ボリュームの接続先はどこでも動きそうだ。