본문 바로가기
가상화 - vmware, docker/docker

[Docker] Windows(WSL2) 환경에서 volume 생성 시 외부 드라이브 인식 방법

by 프룹 2021. 12. 30.
반응형

windows에서 wsl을 통한 docker 이용시 구조도

 

# WSL2를 이용해서 Docker를 사용중인 경우 (방법만 알려면 아래로 내려가세요!)

윈도우에서 gpu를 통한 딥러닝 학습 환경을 구축하기 위해서 ubuntu kernel을 사용할 수 있도록 하는 wsl2를 이용해 Docker를 설치하였다.

확실하진 않지만!

wsl을 통해서 docker를 사용한다는 것 자체가 파일이 ubuntu kernel에 설치되는 것 같다.

컨테이너를 생성할 때 외장하드에 볼륨을 연결했는데! 계속 실패해서 여러 가지 찾아보다가 다음과 같은 명령어를 통해서 도커 볼륨을 생성하고 inspect를 확인해 봤을 때 순간 아 이래서 ubuntu kernel을 설치했구나 싶었다.

docker volume의 mountpoint 경로

마운트포인트 경로를 보니 리눅스 경로임을 확인하면서 순간 '아 wsl이구나'를 떠올렸다.

 

아무튼 그래서 wsl2, docker를 설치하면서 딸려온건지 설치한건지 기억 안나는 ubuntu를 실행하였다.

시작메뉴에 있었다

경로를 /mnt로 옮기니 3개의 하드 드라이브가 잡혔다.

wsl2 - ubuntu에서 인식된 3개의 하드

 

Ubuntu에서 /mnt 디렉토리를 보면 3개의 하드는 인식되어 졌고, 나머지 3개의 하드는 인식되지 않은 걸 확인할 수 있다.
그래서 첫 번째 이미지처럼 Ubuntu에서 외장 하드를 마운팅시켜주면 컨테이너 생성 시 외장하드를 마운팅 할 수 있다.

 

# 방법

1. /mnt 경로에 마운트 할 드라이브에 대한 폴더를 생성한다

2. mount -t drvfs <외장하드 문자>: /mnt/<생성한 폴더명>

 

2개의 단계를 통해 마운트 할 수 있다.

 

# 추가적으로

일단은 다음과 같이 연결은 되는데, usb를 제거하고 다시 연결하면 바로 연결이 안되다.

이때, 컨테이너를 종료 후 재시작하면 다음과 같은 오류가 뜬다.

그런 경우에는 도커를 재시작하면 해결된다.

error while creating mount source path file exists

-> usb 연결 후 도커 재시작 후 컨테이너 실행하면 된다.

 

# 참고

https://www.scivision.dev/mount-usb-drives-windows-subsystem-for-linux/

 

WSL mount external and network drives

USB drives, CD drives, network drives, UNC paths and VHD images are accessible in Windows Subsystem for Linux.

www.scivision.dev

 

반응형

댓글