WSL2上のDockerからWindows上のファイルを読み込みたい

表題の件について質問させていただきます。

Docker Desktopが条件次第で有料化したので、WLS2上でDockerを立ち上げてPython環境を構築しました。
(ここらへんを参考にしています)

Windows11上にWLS2のubuntuを立ち上げて、Dockerをスタートさせてvisual studio code上で「print("test")」が出力される状態になりました。
今度はDocker上で動くVisual Studio CodeからWindowsのファイルを読み込みたいと思っています。

実現したいこと

Windows11上にWLS2を立ち上げてからDockerを立ち上げて、そこからvisual studio codeを起動します。この状態からWindows上のファイルを読み込みたいです。
例えば、Dドライブ上の"test"というフォルダーにある"test_csv.csv"というファイルを読み込みたいとします。
つまり下記のコードが動くようにしたいです。

python

1import pandas as pd 2 3path ='D:/test/test_csv.csv' 4 5df = pd.read_csv(path)6print(df)

しかし、これはDocker上に起動したvisual studio codeなので、Windows上のファイルは当然認識しません。

試したこと

色々調べたところ、DockerにWindows上ののフォルダーをマウントするという方法があるようです。(下記参照)

参考もとによれば、例えばCドライブならば

/mnt/c/

からパスをつなげるとWindows上のフォルダーをマウントできるようです。
試しにWLS2のubuntuで下記のように入力してみます。(コマンドと各種オプションをちゃんと理解していないので、誤りがあればご指摘いただけるとありがたいです)

docker run -it -v /mnt/D/test://new_dir ubuntu

この状態で下記のように入力してみます。

ls new_dir

このディレクトリの中には"test_csv.csv"があるはずなのに何も表示されません。
一方で、参考もとのように「\wsl.localhost\Ubuntu-20.04\mnt\D\test」というディレクトリが作成されていて、こちらを読み込んでいるようです。Windows上の「'D:/test」は読み込めていないようです。

このように、Windows上のファイルを読み込む手段が分かりません。ご教示いただけるとありがたいです。

コメントを投稿

0 コメント