質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

2258閲覧

[Docker] WSLを用いて目的のフォルダをマウントしたい。Windows10

PolymetisOutis7

総合スコア16

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/12/10 09:40

編集2021/12/11 13:16

前提・実現したいこと

Windows10でWSL2を用いてDockerを使おうとしています。
コマンドプロンプトでwslを起動し、目的のフォルダをマウントしたいです。
ですが上手くフォルダをマウント出来ません。
Dockerでフォルダをマウントする際には、

docker run -it -v //C/Users/<username>/Desktop/mounted_folder://new_dir <image> bash docker run -it -v /C/Users/<username>/Desktop/mounted_folder:/new_dir <image> bash

このように実行しています。
マウントされるフォルダとマウントするフォルダの表記については、Docker Toolbox: Error response from daemon: invalid mode: /root/docker 
を参考にしています。

発生している問題・エラーメッセージ

mounted_folderの中には、file_at_hostファイルがあります。
wslでrunしてコンテナに入り、

cd new_dir ls

とコマンドを打つと、何も表示されず、マウント出来ていません。
イメージ説明

一方で、コマンドプロンプトで、

docker run -it -v C:\Users\<username>\Desktop\mounted_folder:/new_dir <image> bash

このようにrunして、コンテナの中に入って同様の操作をすると、file_at_hostファイルが見れるので、マウントされています。
イメージ説明

試したこと

他にも、次のように実行してマウントしようとしました。

docker run -p 8888:8888 -v /c/Users/<username>/Desktop/ds_python:/work --name my-lab <image>

コンテナの中でsomething.ipynbファイルを作ったのですが、Windows10のGUIにて、~/Desktop/ds_pythonフォルダの中を見ても何もありません。
一方で、再度、次のコマンドでコンテナを作り、コンテナの中でマウントするフォルダの中を見ると、something.ipynbファイルがありました。

docker run -it -v /C/Users/<username>/Desktop:/new_dir <image> bash

イメージ説明

要するに

Windows上では、
コマンドプロンプトで表記する
"C:\Users<username>\Desktop<folder>"
と、
WSL上で表記する
"/c/Users/<username>/Desktop/<folder>"
は全く別のフォルダになるのではないでしょうか?

だとしたら、どうすればWSLを用いてWindows上の目的のフォルダをDockerでマウントできるようになりますか?

また、WSL上で表記する"/c/Users//Desktop/"の場所をWindows上のGUIで閲覧する方法はありますでしょうか?

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2021/12/12 10:22

そもそもだけど、WSL上で/c にWindows側のC:\をマウントしてるの? ふつう何もしなけりゃ/mnt/c とかだと思うけど。
PolymetisOutis7

2021/12/12 15:16 編集

コメントありがとうございます。仰る通り、マウントするフォルダを/c/Users/~ではなく、/mnt/c/Users/~のように指定することで目的のフォルダをマウントすることが出来るようになりました! ありがとうございます。 Yahoo知恵袋でも同様の質問をし、解決されました。⇒https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13253796073 どうやら参照したStack Overflowで/c/とするようにとあったのですが、これはDocker Toolboxがあった時の情報だったようで今では役に立たないとのことでした。 因みに、/c/Users/~のように記述した場合でも、何かしらのフォルダにマウントされているような挙動をしています。Windows上でGUIでそのフォルダを確認する方法はご存知ないでしょうか?
guest

回答1

0

自己解決

解決しましたので報告致します。

まず最初に、Windows上のフォルダをマウントしたい場合、

docker run -it -v /mnt/c/Users/'username'/desktop/mounted_folder:/new_dir bash

のようにする必要があります。

私が参照していたStack Overflowのソリューションは古いものであり、尚且つ、Docker Toolboxに関するものでしたので、今回、私がしたいことにはあてはまらないとのことでした。

次に、マウントしたいフォルダを、

/c/Users/'username'/desktop/mounted_folder

のように指定した場合、WindowsのGUIではExplorerで次のようにパスを指定すると、閲覧できます。

\wsl$\Ubuntu\c\Users\ 'username'\desktop\mounted_folder

Explorerでの閲覧

\wsl$\Ubuntu~のように記述したのは、LinuxのディストリビューションがUbuntuだったからです。

既定のディストリビューションの確認方法は、

wsl --list -v

で確認できます。
wsl --list -vの結果

もし、マウントしたいフォルダを、

/mnt/c/Users/'username'/desktop/mounted_folder

このように指定した場合、Explorerで確認できるフォルダへのパスは

C:\Users\'username'\Desktop\mounted_folder

となります。

マウントしたいフォルダを、

/c/Users/'username'/Desktop/mounted_folder

のように指定した場合、コマンドラインでそのフォルダを参照したければ、Windows上のコマンドラインとしてはPowerShellを使ってください。

コマンドプロンプトだとエラーが出ます。

エラー

以上、解決として報告させて頂きます。

ご協力ありがとうございました。

宜しくお願い致します。

投稿2021/12/19 06:31

PolymetisOutis7

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問