事象
以下の記事を参考にdocker-composeでJupyter Labを起動させたい。
qiita.com
しかしながら、以下の様なエラーが発生してしまい、起動しない。
(一部ディレクトリ変更はしているが、その部分のエラーではない)
C:\dockerfile\JupyterLab>docker-compose up Creating network "jupyterlab_default" with the default driver Creating jupyterlab_jupyterlab_1 ... error ERROR: for jupyterlab_jupyterlab_1 Cannot start service jupyterlab: error while mounting volume '/var/lib/docker/volumes/jupyterlab_jupyterlab-dir/_data': failed to mount local volume: mount C:\c\jupyterlab:/var/lib/docker/volumes/jupyterlab_jupyterlab-dir/_data, flags: 0x1000: no such file or directory ERROR: for jupyterlab Cannot start service jupyterlab: error while mounting volume '/var/lib/docker/volumes/jupyterlab_jupyterlab-dir/_data': failed to mount local volume: mount C:\c\jupyterlab:/var/lib/docker/volumes/jupyterlab_jupyterlab-dir/_data, flags: 0x1000: no such file or directory ERROR: Encountered errors while bringing up the project.
発生している環境
- Windows10 pro
- WSL2
- Docker Desktop for Windows
原因
不明(調べきれなかった)
対応方法
パスを直接指定する事にした
[docker-compose.yml]
version: '3' services: jupyterlab: (中略) volumes: # - jupyterlab-dir:/home/JupyterLab/codes - c:\jupyterlab:/home/JupyterLab/codes (以下略)
共有ディスクとして設定した内容確認方法
ボリューム一覧 docker volume ls ボリューム詳細 docker volume inspect ボリューム名 ボリューム削除 docker volume rm ボリューム名
上記の例であれば、jupyterlab-dirというボリューム名が作成されているので、削除する。
なお、設定したボリュームの中身更新したい場合は、一度削除した方が良さげ。
分からなかった事
volumesで動くマシンと動かないマシンの違い
実は直接パスを指定しなくても動く端末もあった。
しかし、別の端末では同じエラーが発生し続けた。
dockerのバージョンから始まり、色々見比べたが差異が見つけれなかった。。
オプション指定とか今はしたい訳でもないので、一旦忘れる。
C:\c\jupyterlabとドライブレターが複数指定されている件
volumesでするとどうしてもドライブレターが二度表示され、c:\cフォルダが必要であった。
これも解決できておらず、動くマシンではc:\cフォルダを掘っていた。
driver_optsの"type: none"と"o: bind"の意味
docker-composeのマニュアルや仕様には、その様な記載は見つけれなかった。
Compose Specification(仕様) — Docker-docs-ja 24.0 ドキュメント
github.com
しかし、Issueの対応に同じ記載を見つける事はでき、またどちらかを削ると動かなかった。
github.com