2019年1月15日火曜日

wsl + Docker for Windows でdocker-compose を動作させる際の Volume設定について


SYSTEM_KDです。
年初はブログ更新を頑張るけど、すぐに力尽きます。。^^;

docker-compose.yml の Volume 設定について

前回、環境をCygwinから wsl へ変更したという記事を書きましたが、docker-compose up してみると、volume部分で問題が発生することが判明しました。
ディレクトリは相対パスで指定していたので、問題ないだろうと思っていたのですが甘かったです。

※wsl + Docker for Windows は、tcp://localhost:2375 経由で動かすようにしてます。

具体的には、docker-compose up 自体は成功するのですが、windows側のマウントが行えていない(ディレクトリ空っぽ)状態になっていました。

調べてみると、wsl 側でホストのドライブは 「/mnt/ドライブ」 という感じで、マウントされているために上手くマウントできていない状態とのことでした。

解決策としては、設定ファイルを追加してマウントの場所を変えるということでした。
設定ファイルの追加場所は、
/etc/
で、ファイル名は
wsl.conf
になります。
中身は、
[automount]
enabled = true
root = /
options = "metadata,umask=22,fmask=11"
mountFsTab = false

こんな感じです。
マウントの場所を/mnt から / に変更している状態となります。

設定ができたら、wsl を一旦終了させます。

これで、/c/ とか /d/ とかでアクセスできるようになり、上手くマウントできるようになるかと思います。

wsl-terminal が起動しない

上記でマウント問題が解決させ、wsl を起動させたところ、起動しないという問題発生。

設定ファイル追加を、wsl-terminal 以外から実施していたので気づきませんでしたが、wsl-terminalから実施してたら、終了させた後に起動できなくなるかと思います。

ちょっと焦りました ^^;

おそらく /mnt/ 配下にドライブがマウントされていること前提で動作しているのだろう(勝手な憶測)ということで、他のターミナルとか、コマンドプロンプト経由でubuntuを起動して、ちょろっと変更します。

変更といっても、/mnt/ドライブ から /ドライブ にシンボリックリンクをはるだけです。

ln -s /c /mnt/c

Cドライブだとこんな感じですね。

これで、wsl-terminal も起動できるようになります。

以上、wsl + Docker for Windows でdocker-compose を動作させる際の Volume設定について でした。

0 件のコメント:

コメントを投稿