programing

WSL2에서 Windows 10 Home과 함께 Docker Desktop을 사용할 때 도커 이미지의 위치를 변경하려면 어떻게 해야 합니까?

skycolor 2023. 8. 20. 10:35
반응형

WSL2에서 Windows 10 Home과 함께 Docker Desktop을 사용할 때 도커 이미지의 위치를 변경하려면 어떻게 해야 합니까?

방금 Windows 10 Home May 2020으로 업그레이드하여 WSL2를 활성화하고 Docker Desktop을 설치했습니다.

WSL2는 소형 SSD인 내 시스템 디스크에 설치해야 합니다.도커 이미지로 채우고 싶지 않습니다.도커 이미지 경로를 변경하려면 어떻게 해야 합니까?큰 Windows 파일 시스템의 경로를 사용하고 싶습니다.

이미지 위치가 다소 혼란스럽습니다.에 있다고 생각합니다/mnt/wsl/docker-desktop-data/.

WSL2 내부의 도커 이미지 디렉토리를 변경하려면 어떻게 해야 합니까?하여 내부 할 수 ?/mnt/d또는 /mnt/d의 경로를 도커 데이터 dirs에 마운트하시겠습니까?

2 디스크 으로 다음 위치에 . WSL 2 도커톱데 VM 으로다음다있습니치위.%USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx

다음 절차에 따라 기존의 모든 도커 데이터가 보존된 상태에서 다른 드라이브/디렉토리로 재배치합니다(Docker Desktop 2.3.0.4(46911)). 3.1.0(51484)을 업데이트한 후에도 작업을 계속함).

먼저 Docker Desktop 아이콘을 마우스 오른쪽 단추로 클릭하여 Docker Desktop을 종료하고 Docker Desktop 종료를 선택합니다.

그런 다음 명령 프롬프트를 엽니다.

wsl --list -v

확인할 수 있을 것입니다. 둘 다 STATE가 Stopped인지 확인합니다.wsl --shutdown)

  NAME                   STATE           VERSION
* docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

도커-데스크톱-데이터를 파일로 내보내기

wsl --export docker-desktop-data "D:\Docker\wsl\data\docker-desktop-data.tar"

의 등록을 그 에는 wsl의 "-가 됩니다.ext4.vhdx파일이 자동으로 제거됩니다(기존의 중요한 이미지/이미지가 있는 경우 먼저 백업).

wsl --unregister docker-desktop-data

도커-데스크톱-데이터를 wsl로 다시 가져오지만 이제 ext4로 가져옵니다.VHDX는 다른 드라이브/디렉토리에 위치합니다.

wsl --import docker-desktop-data "D:\Docker\wsl\data" "D:\Docker\wsl\data\docker-desktop-data.tar" --version 2

Docker Desktop을 다시 시작하면 작동합니다.

삭할수있다니를 할 수 .D:\Docker\wsl\data\docker-desktop-data.tar 이름이 )ext4.vhdxfile) 확인 후 모든 것이 좋아 보이는 경우

  1. 도커 데스크톱 중지
  2. 를 도커재위에서 C:\Users\xxx\AppData\Local\Docker 길로
  3. ㅠㅠC:\Users\xxx\AppData\Local\Docker은 없습니다.
  4. 관리자 모드에서 cmd 열기
  5. 다음 명령을 실행하여 cmd 창에 적절한 시작 경로 및 종료 경로와 함께 심볼 링크를 생성합니다.
    mklink /j "C:\Users\xxx\AppData\Local\Docker" "path to where you relocated your docker folder"
  1. 도커 데스크톱 다시 시작

편집: docker-desktop을 다시 등록하면 기본 docker-data가 C 드라이브로 설정되므로 docker-data만 등록 취소해야 합니다.

할수있습니다

 wsl --unregister docker-desktop-data

 wsl --import docker-desktop-data D:\wsl\docker-desktop-data "C:\Program Files\Docker\Docker\resources\wsl\wsl-data.tar" --version=2

tar 파일은 설치에 사용되는 파일이며 새 대상이 되기 전에 사용됩니다.

이은항작동안는하동상 동안 합니다.move-wsl또는lxrunoffline빠른 링에서는 효과가 없었습니다. 도커를 경우도 .

@Atila Badi의 답변을 확장하는 것은 C:\ProgramData\Docker 폴더에도 동일한 처리를 제공하는 것이며, 이는 WSL/Windows 컨테이너에 사용되는 것으로 보입니다.Docker 데이터 폴더를 이동하더라도 부팅 드라이브 ProgramData\Docker 폴더가 상당히 많이 남아 있습니다. 특히 이미지를 치료할 수 없거나 치료할 의사가 없는 경우에는 더욱 그렇습니다.설치한 후에는 마이그레이션하거나 이동할 수 없습니다.Docker 엔진 고급 설정을 사용하면 Linux 컨테이너 모드에서는 작동하지만, Windows에서는 작동하지 않으며 그 반대의 경우 시작하는 데 문제가 있습니다.

수행한 단계:

  1. 도커를 제거합니다.알아요...필요한 내용을 저장했는지 확인합니다.

  2. 공간이 많은 위치에 기본 공간을 차지하는 도커 폴더를 만듭니다. 예:

    D:\Data\Docker\ProgramData_Docker&D:\Data\Docker\AppData_Local_Docker

  3. 관리자 모드에서 명령 창에서 다음을 실행하여 연결된 폴더를 만듭니다.

mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Data\Docker\ProgramData_Docker"
mklink /j "C:\ProgramData\Docker" "D:\Data\Docker\AppData_Local_Docker"
  1. 도커를 설치합니다.

Windows 서버 이미지를 즐겁게 풀 수 있어야 하지만 부팅 드라이브가 꽉 막혀서는 안 됩니다.

업데이트:

C:\ProgramData\Docker 폴더를 심볼릭 링크하려고 하면 원래 설치된 버전에 따라 실행 중인 버전에 따라 보안 오류가 발생할 수 있습니다.

4.13.0에 대한 릴리스 정보는 이 기능을 참조하며, 이를 해결할 수 있습니다(@bhagerty 및 @Oly for trail).

 start /w “” “Docker Desktop Installer.exe” install --installation-dir=G:\Docker

(출처: ungureanuovidu @ https://forums.docker.com/t/docker-installation-directory/32773/17 )

업데이트:

이는 4.17.1에서 작동하지만 ProgramData_Docker가 DockerDesktop으로 변경됩니다.깨짐 모든 것이 윈도우 재설정 및 윈도우 11에 도커 재설치가 필요했지만 위의 변경 사항은 여전히 작동/적용됩니다.NB 버전 중 하나 이후에 Docher Desktop이 변경되었음을 기억합니다.

나는 도커가 분기점에서 시작하지 않을 것입니다.

그런 다음 디렉터리 심볼릭 링크만 사용했습니다.

Docker stopped

Folder "wsl" moved to other location on disk "B"

RUben@AD-RUBEN C:\Users\RUben\AppData\Local\Docker
$ mklink /D wsl "B:\dev\wsl"
**symbolic link** created for wsl <<===>> B:\dev\wsl

enter image description here

용기 및 이미지를 사용할 준비가 되었습니다.

enter image description here

좋은 도구:

DDoSolitary/LxRunOffline: WSL(Windows Subsystem for Linux)을 관리하기 위한 모든 기능을 갖춘 유틸리티

https://github.com/DDoSolitary/LxRunOffline

LxRunOffline.exe move    Move a distribution to a new directory.
Options:
  -n arg                Name of the distribution
  -d arg                The directory to move the distribution to.

예:

도커 데스크톱을 종료한 다음:

wsl --shutdown
LxRunOffline.exe move -n docker-desktop-data -d D:\vm\dockerdesktop\wsl\data

가장 좋은 옵션은 레지스트리를 업데이트하는 것입니다.다음 단계를 수행합니다.

  1. wsl을 종료합니다.명령어 사용wsl --shutdown.
  2. 전체 C를 이동합니다.\사용자\%USERPROFILE%\AppData\Local\Docker 디렉토리를 다른 드라이브로 이동(예: D:\도커.
  3. 레지스트리 편집기 위치 컴퓨터로 이동\HKEY_CURRENT_USER\소프트웨어\마이크로소프트\Windows\현재 버전\Lxss.
  4. BasePath가 C:로 설정된 레지스트리 항목을 찾습니다.\사용자\%사용자 프로파일%\AppData\Local\Docker\wsl\data.업데이트 D:\Docker\wsl\data.
  5. BasePath가 C로 설정된 다른 레지스트리 항목 찾기:\사용자\%사용자 프로파일%\AppData\Local\Docker\wsl\distro.업데이트 D:\Docker\wsl\distro.
  6. 다음을 사용하여 wsl을 다시 시작합니다.wsl -d Ubuntu.

github에서 pxlrbt에서 이 도구를 찾았습니다.그것은 표준 wsl 수입/수출을 사용하고 있고 꽤 안전합니다.방금 도커-데스크톱-데이터 디스트리뷰터를 모두 다른 드라이브로 옮겼는데 잘 작동합니다.

현재(2023년 6월) 이 질문을 발견한 모든 사람에게 참고용으로 제공합니다.

  1. 8GB보다 큰 이미지의 경우 윈도우즈에서 내보내기-가져오기 방법이 실패합니다.이것은 기본적인 타르 구현의 버그입니다.

  2. 다행스럽게도, 한가지가 있습니다.--vhd내보내기 및 가져오기에 사용할 수 있는 wsl용 스위치입니다.더 중요한 것은,wsl --import-in-place볼륨이 클 때 유용한 명령입니다.

  3. wsl.vhdx 파일을 다른 위치로 이동하는 것은 wsl의 관점에서 작동하지만 Docker Desktop에는 여전히 문제가 있습니다.(작은) 분배기\ext4와 같은 "도커 데이터"를 변경한 후.VHDX 파일, Docker Desktop은 마침내 이 볼륨과 이전 버전의 백업 복사본을 삭제합니다(%APPDA).TA%\Docker\wsl\distro) 위치를 지정하고 오류 창을 엽니다.

대체적으로, 저는 찬성합니다.mklinkWindows의 방법은 1. 가장 번거롭지 않고 2. 작동합니다.

윈도우즈 10 홈에서 도커 데스크톱은 ""C:\Users\xxx\AppData\Local\Docker" 디렉토리이며 다운로드한 도커 이미지가 포함된 것은 이 VM입니다.VM 위치를 C:에서 다른 디렉토리로 변경하려면 아래와 같은 명령을 사용하여 윈도우즈(도커 데스크톱 설치 전)에 연결을 생성하여 이 작업을 수행할 수 있습니다.

mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Users\xxx\AppData\로컬\도커"

명령을 실행하기 전에 C:를 삭제하는 동안 대상 디렉터리 구조가 존재해야 합니다.\Users\xxx\AppData\Local\Docker 디렉터리가 이미 있는 경우 명령이 실패할 수 있습니다.이제 윈도우 10 홈에 도커 데스크톱을 설치하면 "D:\Users\xxx\AppData\Local\Docker" 디렉토리, 즉 다운로드한 모든 도커 이미지가 포함될 도커 VM 하드 디스크 이미지 파일입니다.

소형 SSD를 사용하는 경우에도 WSL 스왑 파일 위치를 재배치할 수 있습니다.

https://learn.microsoft.com/en-us/windows/wsl/wsl-config

언급URL : https://stackoverflow.com/questions/62441307/how-can-i-change-the-location-of-docker-images-when-using-docker-desktop-on-wsl2

반응형