Container Storage 개요
이 항목에서는 컨테이너가 Windows에서 스토리지를 사용하는 다양한 방법에 대한 개요를 제공합니다. 컨테이너는 스토리지와 관련하여 가상 머신과 다르게 작동합니다. 기본적으로 컨테이너는 호스트의 파일 시스템 전체에서 해당 내에서 실행되는 앱이 상태를 작성하지 못하도록 빌드됩니다. 컨테이너는 기본적으로 "스크래치" 공간을 사용하지만 Windows는 스토리지를 유지하는 수단도 제공합니다.
스크래치 공간
Windows 컨테이너는 기본적으로 임시 스토리지를 사용합니다. 모든 컨테이너 I/O는 "스크래치 공간"에서 발생하며, 각 컨테이너는 자신만의 스크래치 공간을 갖습니다. 파일 만들기 및 파일 쓰기는 스크래치 공간에 캡처되며 호스트로 이스케이프되지 않습니다. 컨테이너 인스턴스가 중지되면 스크래치 공간에서 발생한 모든 변경 내용이 사라집니다. 새 컨테이너 인스턴스가 시작되면 인스턴스를 위한 새로운 임시 저장 공간이 제공됩니다.
계층 스토리지
컨테이너 개요설명한 대로 컨테이너 이미지는 일련의 계층으로 표현되는 파일의 번들입니다. 계층 스토리지는 컨테이너에 기본 제공되는 모든 파일입니다.
docker pull
때마다 해당 컨테이너를 docker run
하면, 그것들은 같습니다.
계층이 저장되는 위치 및 변경 방법
기본 설치에서 계층은 C:\ProgramData\docker
저장되고 "이미지" 및 "windowsfilter" 디렉터리 간에 분할됩니다. Windows 설명서의 Docker 엔진에 설명된 대로 docker-root
구성을 사용하여 레이어가 저장되는 위치를 변경할 수 있습니다.
메모
계층 스토리지에는 NTFS만 지원됩니다. ReFS 및 CSV(클러스터 공유 볼륨)는 지원되지 않습니다.
계층 디렉터리의 파일을 수정해서는 안 됩니다. 다음과 같은 명령을 사용하여 신중하게 관리됩니다.
- docker 이미지
- docker rmi
- docker 끌어오기
- docker 로드
- docker 저장
계층 스토리지에서 지원되는 작업
실행 중인 컨테이너는 트랜잭션을 제외한 대부분의 NTFS 작업을 사용할 수 있습니다. 여기에는 ACL 설정이 포함되며 모든 ACL이 컨테이너 내에서 확인됩니다. 컨테이너 내에서 여러 사용자로 프로세스를 실행하려면 RUN net user /create ...
사용하여 Dockerfile
사용자를 만들고, 파일 ACL을 설정한 다음, Dockerfile USER 지시문사용하여 해당 사용자와 함께 실행되도록 프로세스를 구성할 수 있습니다.
영구 스토리지
Windows 컨테이너는 바인딩 탑재 및 볼륨을 통해 영구 스토리지를 제공하는 메커니즘을 지원합니다. 자세한 내용은 컨테이너의 영구 스토리지 를 참조하세요.
스토리지 제한
Windows 애플리케이션의 일반적인 패턴은 새 파일을 설치하거나 만들기 전에 사용 가능한 디스크 공간의 양을 쿼리하거나 임시 파일을 정리하기 위한 트리거로 쿼리하는 것입니다. 애플리케이션 호환성을 최대화하기 위해 Windows 컨테이너의 C: 드라이브는 20GB의 가상 사용 가능한 크기를 나타냅니다.
일부 사용자는 이 기본값을 재정의하고 사용 가능한 공간을 더 작거나 더 큰 값으로 구성할 수 있습니다. 이 작업은 "storage-opt" 구성 내의 "크기" 옵션을 통해 수행할 수 있습니다.
예시
명령줄: docker run --storage-opt "size=50GB" mcr.microsoft.com/windows/servercore:ltsc2019 cmd
또는 Docker 구성 파일을 직접 변경할 수 있습니다.
"storage-opts": [
"size=50GB"
]
팁
이 메서드는 Docker 빌드에도 작동합니다. 자세한 내용은 docker 구성 파일을 수정하는 방법에 대한 docker 구성 문서를 참조하세요.