inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

도커 마스터즈! CI/CD, DevSecOps로 자동화 보안 실무까지!

이미지 매니페스트 파일과 레이어 구조 확인

docker inspect 명령 결과에서 GraphDriver 항목을 찾을 수 없습니다.

해결된 질문

193

taeho Kim

작성한 질문수 5

0

안녕하세요. 강의 내용 알차게 잘 듣고 있습니다.
다만, 강사님과 같이 docker inspect nginx:1.28.0-alpine3.21-slim 명령을 실행했을 경우 GraphDrvier 항목을 찾을 수 없고 바로 RootFS 항목만 확인되어 질문 드립니다.

root@vagrant:~# docker images
                                                                                i Info →   U  In Use
IMAGE                          ID             DISK USAGE   CONTENT SIZE   EXTRA
nginx:1.28.0-alpine3.21-slim   ce2bd4775ed6       20.6MB         6.29MB        
root@vagrant:~# docker inspect nginx:1.28.0-alpine3.21-slim
[
    {
        "Id": "sha256:ce2bd4775ed6859d35f47d65401ee9f35f1dd00b32ed05f0ce38b68aa1830195",
        "RepoTags": [
            "nginx:1.28.0-alpine3.21-slim"
        ],
        "RepoDigests": [
            "nginx@sha256:ce2bd4775ed6859d35f47d65401ee9f35f1dd00b32ed05f0ce38b68aa1830195"
        ],
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2025-08-13T16:03:17Z",
        "Config": {
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.28.0",
                "PKG_RELEASE=1",
                "DYNPKG_RELEASE=1"
            ],
            "Entrypoint": [
                "/docker-entrypoint.sh"
            ],
            "Cmd": [
                "nginx",
                "-g",
                "daemon off;"
            ],
            "WorkingDir": "/",
            "Labels": {
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
            },
            "StopSignal": "SIGQUIT"
        },
        "Architecture": "arm64",
        "Variant": "v8",
        "Os": "linux",
        "Size": 5802435,
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:982780712fdf5e22c7ed01172785fd7059a9ec11cb375c7133dc5b06c24250ff",
                "sha256:0d43a52040463d2c8abf5dbcfdf7494c64098f7eab47f4499e759d796c66d90c",
                "sha256:b81791db8dfbab361faf2ce24c74cf8da607971931576b0ba83e2dc8755af4e8",
                "sha256:098b681d959ad46239860f217c74a463292b5262fe004da34aa0414fe885a78e",
                "sha256:12d33c2f4dc442cbdfb0c830f359cfd92e0560c34678a1198ea68f281ada2d21",
                "sha256:76a1ff61253d86aafba3fd803cc79eb75dd573fb1ee00c6f716a8ea44dcfc414",
                "sha256:734a6dcc0d105722be038d38341a5f9c30a119082eaac2fa45fb8d51eb335451"
            ]
        },
        "Metadata": {
            "LastTagTime": "2025-12-02T04:04:23.335181057Z"
        },
        "Descriptor": {
            "mediaType": "application/vnd.oci.image.index.v1+json",
            "digest": "sha256:ce2bd4775ed6859d35f47d65401ee9f35f1dd00b32ed05f0ce38b68aa1830195",
            "size": 10293
        }
    }
]

docker kubernetes ci/cd devsecops 보안-교육

답변 2

0

CLOUD SECURITY LAB

안녕하세요 김태호님

오래기다려주셔서 감사합니다.

 

현재 상태를 다음과 같이 정리해보았습니다.


현재 매니페스트 파일 변경 사유

최근의 BuildKit 빌더의 도입, 컨테이너 런타임(Containerd/snapshotter 기반) 내부 구조 개선에 따라 기존의 GraphDriver 관련 속성 일부가 deprecated(사용 중단 예정) 및 내부적으로 제거되었습니다.

https://docs.docker.com/engine/deprecated/#graphdriver-plugins-experimental

도커의 스토리지 아키텍처가 GraphDriver 방식에서 containerd 및 Snapshotter 기반으로 완전히 전환되었습니다.

이로 인해 docker inspect에서 제공하던 GraphDriver 데이터(MergedDir 등)는 deprecated(폐기)되거나 비활성화되었습니다.

따라서 이제는 과거 명령어 대신 컨테이너 ID를 기반으로 한 경로나 mount 명령어를 통해 파일 시스템 위치를 확인해야 합니다.



실습 정리

최근에 업데이트로 인해 graphdriver로 보는 방법이 막혀서 다른 방법으로 보는 방법을 아래 블로그로 정리했습니다.

https://gasbugs.tistory.com/385

그리고 이전 댓글에서 주신 것처럼 /var/lib/docker/rootfs/overlayfs/{컨테이너ID} 경로 또한 merged 디렉토리로 이해하시면 되겠습니다.


 

 

위 실습은 빠른 시일내로 영상 및 실습 내용도 업데이트하도록 하겠습니다!

감사합니다!

0

CLOUD SECURITY LAB

안녕하세요 김태호님

최근에 도커 이미지 정책에서 그래프 드라이버 정보를 삭제하는 방향으로 가닥을 잡았다고 확인했습니다.

다른 방법으로 조회하는 방법이 있는지 확인하고 답변 드리겠습니다.

추후 영상 교체도 진행해보도록 하겠습니다.

감사합니다!

1

taeho Kim

네, 답변 주셔서 감사합니다!

root@vagrant:~# ls /var/lib/docker/rootfs/overlayfs/e0a9125f7839adef94c3cd78cae349db1508c4f31d210f677ac5ff2e8648e53c/
bin  docker-entrypoint.d   etc   lib    mnt  proc  run   srv  tmp  var
dev  docker-entrypoint.sh  home  media  opt  root  sbin  sys  usr

혹시 그럼 이 경로를 컨테이너의 파일 시스템이라고 생각해도 되는 걸까요?

0

CLOUD SECURITY LAB

네 docker-entrypoint.sh 이 있는 것으로 보아 rootfs가 맞는 것 같습니다. 제가 3일간 외부 일정이라서 내일 중으로 관련 정보하고 답변 달아두겠습니다.

감사합니다!

Deployment 업데이트-2 해결 방식 문의

1

10

1

미션 진행 방식에 대한 질문입니다.

0

16

1

파킹 페이지와 대기열 큐 질문입니다.

0

37

1

virtualbox 설치시

1

39

1

실행중인 컨테이너를 모두 삭제하는 방법(윈도우버전)

0

63

2

winpty docker 설정

0

54

2

vs code설치했는데도, easy docker 파일 열기에서 vs code 아이콘은 안보여요

0

39

1

aws 계정 생성 질문

1

63

1

verify.sh 4단계 실패 — Jenkins 컨테이너에서 127.0.0.1:6443 connection refused

0

58

2

아무 수정도 안하고 주어진 소스로 그대로 했는데 패스워드 에러가 남

0

72

1

처음 실행 시 계속 패스워드가 틀리다고 나옴. 수정하고 해도 마찬가지임

1

86

2

섹션 2 - 9강. API 관련 질문

0

69

2

11강 [실습] Docker로 MySQL1 분만에 실행하기

0

84

2

11강 [실습] Docker로 MySQL1 분만에 실행하기

0

63

2

설치 가이드대로 해도 안되는 경우가 있더라고요

0

63

2

구현 방법에 대한 문의

0

72

2

Github repo 404 not found

0

53

1

MSA 통신방식에 대해서 질문 있습니다.

0

50

1

코드 깃허브는 없을까요?

1

61

2

4. ArgoCD설치---Base64 디코딩 부분만 PowerShell 방식으로 바꾸어서 설치 필요

0

56

1

안녕하세요 질문있습니다.!

0

64

2

구글 드라이브 404

0

128

1

ZAP 자동화 context

0

179

2

apache2 접속 문제

0

212

2