Docker

[Docker] 도커 파일 저장 위치

탑~! 2025. 2. 19. 11:12

[참고 사이트]​

- 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 디렉터리 구조

[root@docker]# tree -L 1
├── buildkit
├── containers
├── image
├── network
├── overlay2
├── plugins
├── runtimes
├── swarm
├── tmp
├── trust
└── volumes

macOS 및 Windows에서 Docker는 가상 환경에서 Linux 컨테이너를 실행합니다. 몇 가지 추가로 알아야 할 사항이 있습니다.

(1) Docker for Mac

Docker는 기본적으로 macOS와 호환되지 않으므로 Hyperkit을 사용하여 가상 이미지를 실행합니다. 가상 이미지 데이터는 다음 위치에 있습니다.

~/Library/Containers/com.docker.docker/Data/vms/0

가상 이미지 내에서 경로는 기본 Docker 경로 /var/lib/docker입니다.

가상 환경에서 셸을 만들어 Docker 루트 디렉터리를 조사할 수 있습니다.

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Ctrl+a를 누른 다음 k 및 y를 눌러 이 세션을 종료할 수 있습니다.

(2) Docker for Windows

Windows에서 Docker는 약간 세분화되어 있습니다. Linux 컨테이너와 유사하게 작동하는 기본 Windows 컨테이너가 있습니다. Linux 컨테이너는 최소한의 Hyper-V 기반 가상 환경에서 실행됩니다.

Linux 이미지를 실행하기 위한 구성 및 가상 이미지는 기본 Docker 루트 폴더에 저장됩니다.

C:\ProgramData\DockerDesktop

[도커 inspect]

예시로, nginx 도커 image를 실행합니다.

PS C:\Users\islove8587> docker run -it -d nginx
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

이미지를 검사하면 다음과 같은 경로가 표시됩니다.

PS C:\Users\islove8587> docker inspect nginx
...
        "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 이미지의 읽기 전용 레이어와 변경 사항이 포함된 그 위에 있는 레이어를 나타내는 다양한 파일을 찾을 수 있습니다.

예제를 사용하여 콘텐츠를 살펴보겠습니다.

PS C:\Users\islove8587> docker image inspect nginx
[
    {
        "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의 내부 디렉터리이며 비어 있어야 합니다.

 

출처 : https://blog.naver.com/islove8587/223472871819

728x90
반응형