[Docker] 도커 파일 저장 위치
[참고 사이트]
1. 도커 이미지와 컨테이너 저장소 위치
Docker 컨테이너는 네트워크 설정, 볼륨 및 이미지로 구성됩니다. Docker 파일의 위치는 운영 체제에 따라 다릅니다. 다음은 가장 많이 사용되는 운영 체제에 대한 개요입니다.
- Ubuntu : /var/lib/docker/
- Fedora : /var/lib/docker/
- Debian : /var/lib/docker/
- Windows : C:\ProgramData\DockerDesktop, C:\Program Files\Docker\Docker
- MacOS : ~/Library/Containers/com.docker.docker/Data/vms/0/
[참고] docker 디렉터리 구조
macOS 및 Windows에서 Docker는 가상 환경에서 Linux 컨테이너를 실행합니다. 몇 가지 추가로 알아야 할 사항이 있습니다.
(1) Docker for Mac
Docker는 기본적으로 macOS와 호환되지 않으므로 Hyperkit을 사용하여 가상 이미지를 실행합니다. 가상 이미지 데이터는 다음 위치에 있습니다.
가상 이미지 내에서 경로는 기본 Docker 경로 /var/lib/docker입니다.
가상 환경에서 셸을 만들어 Docker 루트 디렉터리를 조사할 수 있습니다.
Ctrl+a를 누른 다음 k 및 y를 눌러 이 세션을 종료할 수 있습니다.
(2) Docker for Windows
Windows에서 Docker는 약간 세분화되어 있습니다. Linux 컨테이너와 유사하게 작동하는 기본 Windows 컨테이너가 있습니다. Linux 컨테이너는 최소한의 Hyper-V 기반 가상 환경에서 실행됩니다.
Linux 이미지를 실행하기 위한 구성 및 가상 이미지는 기본 Docker 루트 폴더에 저장됩니다.
[도커 inspect]
예시로, nginx 도커 image를 실행합니다.
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
09f376ebb190: Already exists
5529e0792248: Pull complete
9b3addd3eb3d: Pull complete
57910a8c4316: Pull complete
7b5f78f21449: Pull complete
b7923aa4e8a6: Pull complete
785625911f12: Pull complete
Digest: sha256:0f04e4f646a3f14bf31d8bc8d885b6c951fdcf42589d06845f64d18aec6a3c4d
Status: Downloaded newer image for nginx:latest
9e9d5041f076c2a5d334132e74d80432fecbac649ed8ebfbe1c97c54f36afe61
이미지를 검사하면 다음과 같은 경로가 표시됩니다.
...
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/9570846358ab2fc8ea59bffb492274a504100db9521925c771e4521a920edb84/diff:/var/lib/docker/overlay2/2e86980cd724d25df62b02f7a549b52922897bacb36a1f6b87405aaf29f0afb7/diff:/var/lib/docker/overlay2/0415b0408bb2225651263c1dc6fed613fcff38ebe0fc373e4c97ead3d7cda57a/diff:/var/lib/docker/overlay2/32bb135f2559eaab2b9cb0497be236a2e1f1c6431d4108bc77818aadcf98595c/diff:/var/lib/docker/overlay2/c662f1e93127fea6f3c17174eed6ca629807e32130416fb4e5a6bf2ac6671ccf/diff:/var/lib/docker/overlay2/b5517742a3b04df8af89e49ddbc21fd7ac198ae766c3f13f95e558cdf142c1b8/diff",
"MergedDir": "/var/lib/docker/overlay2/78dda834648d30d6a34b8f925d3eeb3d79a6d94866dd0fe3ff1f29153af69667/merged",
"UpperDir": "/var/lib/docker/overlay2/78dda834648d30d6a34b8f925d3eeb3d79a6d94866dd0fe3ff1f29153af69667/diff",
"WorkDir": "/var/lib/docker/overlay2/78dda834648d30d6a34b8f925d3eeb3d79a6d94866dd0fe3ff1f29153af69667/work"
},
"Name": "overlay2"
},
...
Docker root 디렉터리 구조를 확인하는 방법은 '[Docker] 윈도우 WSL 설정을 통한 도커 데스크탑 데이터 저장 위치 접근 방법' 포스트를 참조하세요.
(3) Docker images
기본 스토리지 드라이버 오버레이 2를 사용하는 경우 Docker 이미지는 /var/lib/docker/overlay2에 저장됩니다. 여기에서 Docker 이미지의 읽기 전용 레이어와 변경 사항이 포함된 그 위에 있는 레이어를 나타내는 다양한 파일을 찾을 수 있습니다.
예제를 사용하여 콘텐츠를 살펴보겠습니다.
[
{
"Id": "sha256:4f67c83422ec747235357c04556616234e66fc3fa39cb4f40b2d4441ddd8f100",
"RepoTags": [
"nginx:latest"
],
"RepoDigests": [
"nginx@sha256:0f04e4f646a3f14bf31d8bc8d885b6c951fdcf42589d06845f64d18aec6a3c4d"
],
"Parent": "",
...
"Architecture": "amd64",
"Os": "linux",
"Size": 187667860,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/9570846358ab2fc8ea59bffb492274a504100db9521925c771e4521a920edb84/diff:/var/lib/docker/overlay2/2e86980cd724d25df62b02f7a549b52922897bacb36a1f6b87405aaf29f0afb7/diff:/var/lib/docker/overlay2/0415b0408bb2225651263c1dc6fed613fcff38ebe0fc373e4c97ead3d7cda57a/diff:/var/lib/docker/overlay2/32bb135f2559eaab2b9cb0497be236a2e1f1c6431d4108bc77818aadcf98595c/diff:/var/lib/docker/overlay2/c662f1e93127fea6f3c17174eed6ca629807e32130416fb4e5a6bf2ac6671ccf/diff:/var/lib/docker/overlay2/b5517742a3b04df8af89e49ddbc21fd7ac198ae766c3f13f95e558cdf142c1b8/diff",
"MergedDir": "/var/lib/docker/overlay2/78dda834648d30d6a34b8f925d3eeb3d79a6d94866dd0fe3ff1f29153af69667/merged",
"UpperDir": "/var/lib/docker/overlay2/78dda834648d30d6a34b8f925d3eeb3d79a6d94866dd0fe3ff1f29153af69667/diff",
"WorkDir": "/var/lib/docker/overlay2/78dda834648d30d6a34b8f925d3eeb3d79a6d94866dd0fe3ff1f29153af69667/work"
},
...
- LowerDir은 이미지의 읽기 전용 레이어를 포함합니다. 변경 사항을 나타내는 읽기-쓰기 계층은 UpperDir의 일부입니다.
- MergedDir은 Docker에서 컨테이너를 실행하는 데 사용하는 UpperDir 및 LowerDir의 결과를 나타냅니다.
- WorkDir은 오버레이 2의 내부 디렉터리이며 비어 있어야 합니다.