docker info
명령을 사용하면 Docker Root Dir 가 표시된다. 해당 경로 하위에 컨테이너/이미지 등이 저장된다.
Docker for Windows 설정화면의 Advanced 탭에서 Disk Image location 을 원하는 경로로 바꿀 수 있다.
windows10 home 버전에서 도커 설치 시 wsl 위에서 동작하기 때문에 위 방법들이 소용 없는 경우가 많다.
Docker Root Dir 가 /var/lib/docker
로 나오는데 windows cmd 에서는 접근할 수 없다던가, docker for windows 설정 화면에 advanced 탭이 존재하지 않는다던가...
그럴 때에는 아래 방법들을 시도해보자
설치 환경마다 경로에 차이가 있을 수 있으나, 기본적으로 도커 데이터는 %AppData%\Local\Docker\wsl\data
경로에 vhdx 형식으로 저장된다.
어디에 저장되는지는 알았어도 vhdx 내부 파일을 확인하고 수정할 수는 없을까?
container 폴더를 확인한다던가, container log 파일을 지우는 등의 작업을 하기 위해서는 vhdx 내부에 접근할 필요성이 있다.
이럴 경우, wsl 내부에서 컨테이너를 생성해 /var/lib/docker
폴더를 마운트하면 컨테이너 내부에서 도커 루트 폴더에 접근할 수 있다.
$ docker run -v/:/data -it ubuntu /bin/bash
# chroot /data
# cd /var/liv/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
chroot 로 들어가게 되면 vi 나 vim 을 사용할 수 없어서 다이렉트로 수정하고 도커 restart 해도 적용이 되더라구요.