[Docker] Windows10 에서 /var/lib/docker 경로 찾기

HyeJin Jeon·2021년 2월 26일
2
post-thumbnail
post-custom-banner

1. docker info

docker info 명령을 사용하면 Docker Root Dir 가 표시된다. 해당 경로 하위에 컨테이너/이미지 등이 저장된다.
docker info

2. Advanced Setting 사용

Docker for Windows 설정화면의 Advanced 탭에서 Disk Image location 을 원하는 경로로 바꿀 수 있다.
docker for windows advanced setting

windows10 home 버전에서 도커 설치 시 wsl 위에서 동작하기 때문에 위 방법들이 소용 없는 경우가 많다.
Docker Root Dir 가 /var/lib/docker 로 나오는데 windows cmd 에서는 접근할 수 없다던가, docker for windows 설정 화면에 advanced 탭이 존재하지 않는다던가...

그럴 때에는 아래 방법들을 시도해보자

3. 기본 경로 탐색

설치 환경마다 경로에 차이가 있을 수 있으나, 기본적으로 도커 데이터는 %AppData%\Local\Docker\wsl\data 경로에 vhdx 형식으로 저장된다.
루트 경로 내 vhdx 파일

4. /var/lib/docker 를 마운트한 컨테이너 생성

어디에 저장되는지는 알았어도 vhdx 내부 파일을 확인하고 수정할 수는 없을까?
container 폴더를 확인한다던가, container log 파일을 지우는 등의 작업을 하기 위해서는 vhdx 내부에 접근할 필요성이 있다.

이럴 경우, wsl 내부에서 컨테이너를 생성해 /var/lib/docker 폴더를 마운트하면 컨테이너 내부에서 도커 루트 폴더에 접근할 수 있다.

$ docker run -v/:/data -it ubuntu /bin/bash
# chroot /data
# cd /var/liv/docker

컨테이너 내부에서 /var/lib/docker 접근
이렇게 생성된 컨테이너 id 폴더나 컨테이너 폴더 내 로그 파일 등을 직접 확인할 수 있다.
컨테이너 내부에서 /var/lib/docker 내 파일을 변경할 경우, 변경 사항이 도커에 적용되는 것을 확인할 수 있다.

ex)
컨테이너 폴더 삭제 -> 컨테이너 삭제
컨테이너 로그 파일 삭제 -> 컨테이너 로그 초기화


출처:
https://stackoverflow.com/questions/42250222/where-is-docker-image-location-in-windows-10
https://stackoverflow.com/questions/60408574/how-to-access-var-lib-docker-in-windows-10-docker-desktop

profile
Backend Developer
post-custom-banner

1개의 댓글

comment-user-thumbnail
2021년 6월 15일

chroot 로 들어가게 되면 vi 나 vim 을 사용할 수 없어서 다이렉트로 수정하고 도커 restart 해도 적용이 되더라구요.

답글 달기