성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
[이승준] 완전히 잘못 짚었습니다. 댓글 지우고 싶네요. 검색을 해보...
[정성태] 우선 답글 감사합니다. ^^ 그런데, 사실 저 예제는 (g...
[이승준] 수정이 안되어서... byteArray는 BYTE* 타입입니다...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>WSL 2 - docker-desktop-data, docker-desktop (%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx) 파일을 다른 디렉터리로 옮기는 방법</h1> <p> Docker Desktop이 사용하는 리눅스 인스턴스는 원래 Hyper-V의 "DockerDesktopVM"에서 호스팅되므로 만약 해당 vhdx의 파일 크기가 커져 C 드라이브에 있는 것이 부담스럽다면 Hyper-V 레벨에서 변경만 해주면 됩니다.<br /> <br /> 하지만, "<a target='tab' href='https://www.sysnet.pe.kr/2/0/12751#enable_wsl2'>Use the WSL 2 based engine</a>" 옵션을 켜면 Hyper-V가 아닌 별도의 vhdx로 빠져 WSL 2 인스턴스와 연동이 됩니다. 실제로 WSL 2로 활성화하면 다음과 같이 docker-desktop-data, docker-desktop 항목이 생성됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>wsl -l -v</span> NAME STATE VERSION * Ubuntu20.04 Running 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2 </pre> <br /> 현재 Stopped로 나오는데요, 왜냐하면 "Docker Desktop"을 실행하지 않았기 때문입니다. 따라서 그걸 실행시킨 후에 다시 확인하면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>wsl -l -v</span> NAME STATE VERSION * Ubuntu20.04 Running 2 docker-desktop-data Running 2 docker-desktop Running 2 </pre> <br /> Running으로 나오고, WSL 2 backend로 지정된 인스턴스(위의 경우 Ubuntu20.04)는 이렇게 /mnt/wsl로 추가 마운팅이 이뤄집니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>df</span> Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb 263174212 5592496 244143560 3% / <span style='color: blue; font-weight: bold'>tmpfs 13092504 410040 12682464 4% /mnt/wsl</span> tools 248984568 223661284 25323284 90% /init ...[생략]... <span style='color: blue; font-weight: bold'>/dev/sdd 263174212 8056920 241679136 4% /mnt/wsl/docker-desktop-data/isocache none 13092504 12 13092492 1% /mnt/wsl/docker-desktop/shared-sockets/host-services /dev/sdc 263174212 134176 249601880 1% /mnt/wsl/docker-desktop/docker-desktop-proxy /dev/loop0 404596 404596 0 100% /mnt/wsl/docker-desktop/cli-tools</span> </pre> <br /> 참고로, "Docker Desktop"이 실행되지 않으면 다음과 같이 마운팅 결과가 나옵니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>df</span> Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb 263174212 5591704 244144352 3% / tmpfs 13092504 0 13092504 <span style='color: blue; font-weight: bold'>0%</span> /mnt/wsl tools 248984568 223664044 25320524 90% /init ...[생략]... </pre> <br /> <hr style='width: 50%' /><br /> <br /> docker-desktop 볼륨의 물리적인 파일 위치는 "%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx"에 해당합니다. 그리고 docker 운영이 커질수록 이 파일의 크기는 그에 맞게 증가합니다. 문제는, docker-desktop-data와 docker-desktop의 크기가 무시 못 할 정도로 커질 수 있는데요, 가령 제 경우에는 8GB까지 육박했습니다.<br /> <br /> 상황에 따라서는 C 드라이브에 8GB를 점유하는 것이 부담스러울 수 있는데요, 다행히 ext4.vhdx 파일을 다른 드라이브로 옮길 수 있는 방법이 있고 이에 대해서는 전에 한 번 설명했던 것과 같습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > WSL 인스턴스 export/import 방법 및 단축 아이콘 설정 방법 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12569'>https://www.sysnet.pe.kr/2/0/12569</a> </pre> <br /> 정리하면 다음과 같이 하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > wsl --shutdown wsl --export docker-desktop-data e:\temp\docker-desktop-data.tar wsl --unregister docker-desktop-data wsl --import docker-desktop-data e:\wsl2\data e:\temp\docker-desktop-data.tar --version 2 del e:\temp\docker-desktop-data.tar </pre> <br /> 위와 같이 실행하면 "%LOCALAPPDATA%\Docker\wsl\data"에 있던 ext4.vhdx 파일이 e:\wsl2 디렉터리로 이동합니다. 그리고 docker-desktop 인스턴스의 경우 용량은 작지만 그래도 일관성을 위해 함께 이전하는 것이 좋을 듯합니다. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > wsl --export docker-desktop e:\temp\docker-desktop.tar wsl --unregister docker-desktop wsl --import docker-desktop e:\wsl2\docker e:\temp\docker-desktop.tar --version 2 </pre> <br /> 이렇게 되면 (제 경우에) 8GB가 C 드라이브에 확보가 됩니다. ^^<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1818
(왼쪽의 숫자를 입력해야 합니다.)