WSLからDocker Desktop for Windowsを使う
WSL2では、デフォルトでDocker Desktop for Windowsを利用することができるようで、この手順は不要になりそうです。
ただ、仕事で使用するPCなどをpreview版にするにはちょっと、、、という場合はまだまだwsl1で行くしかないので備忘録として。
前提条件
・Windows10 Pro
・Docker Desktop for Windows インストール済み
WSLインストール
Powershellを管理者権限で起動し下記コマンドを実行します。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
実行後PCを再起動。
Ubuntu インストール
Microsoft StoreからUbuntu 18.04 LTSをインストールします。
Docker Desktop for Windowsの設定
外部(WSL)から操作できるようにDocker Desktopの設定を変更します。
「General」メニューのExpose daemon on tcp://localhost:2375 にチェックを入れます。
UbuntuからのDocker Desktopを操作できるように設定
ここからはWSL側の操作です。WindowsのメニューからUbuntuを選択するとターミナルが開くのでそちらで操作します。
環境変数にDOCKER_HOSTを追加
先ほど有効にしたDocker Desktopのホスト設定を追加します。
※ここではシェル起動時に自動で環境変数に設定するようにbashrcに設定を追加しています。
echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc
Ubuntuにdocker関連をインストール
docker-ceのインストール
dockerのドキュメントを見ながら進めます。
https://docs.docker.com/install/linux/docker-ce/ubuntu/
必要なパッケージをインストールしていきます。
まずはcurlや証明書関連のインストール
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
sudo apt-key fingerprint 0EBFCD88
docker用のリポジトリを追加。
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
おきまりのupdate
sudo apt-get update
docker関連のインストール
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker-compose インストール
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
マウントパスを/mnt/c → c/へ
Docker DesktopとUbuntu側のdockerではパスがずれてしまうので、合わせます。
/etc/wsl.conf
を作成し、マウント位置を変更します。(デフォルトでwsl.confは存在しませんでした)
sudo vi /etc/wsl.conf
wsl.conf
の中身
[automount]
root = /
変更を適用するにはWSLの再起動が必要ですが、単純にターミナルを落とすだけではできません。
再起動するには、Windowsのコマンドプロンプトで一旦停止し、再度メニューからUbuntuを選択します。
WSL停止はWindowsのコマンドプロンプトでコマンド実行
wslconfig /t Ubuntu-18.04
ここまで問題なくできれば、めでたくWSLからDocker Desktopを操作できるようになりました。
Windowsのコマンドプロンプトでもいいですが、Linuxのコマンドの方が手馴れてるので断然こちらの方が楽!
ディスカッション
コメント一覧
まだ、コメントがありません