inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

147

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일간 외부 일정이라서 내일 중으로 관련 정보하고 답변 달아두겠습니다.

감사합니다!

혹시 강의 내용하면서 실습했던 것을 개인 깃에다 올려도 될까요?

0

12

1

npm 설치가 잘 안됐습니다. 보안 이슈인 것 같은데, 어떻게 해야 하나요?

0

17

2

VS CODE 설치 시 관리자 권한으로 해야하는지

0

20

1

Git 버젼 상이

0

29

2

Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면

1

48

1

스크립트에 대해 질문 있습니다.

1

40

1

같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!

2

34

1

코드 줄바꿈

0

36

2

vagrant up 설치 에러

0

30

2

vs code 프로그램 동기화 가능여부

0

40

1

이거 지금 부터 들어도 괜찮을까요 ?? 시간이 꽤지난거같은데 .. 뭐 최신하고 아에 안맞을까요 .

0

32

1

환경설정 스크립트에서 storageclass가 생성되지 않습니다.

0

40

2

자료를 다운로드후 압축을 풀때 오류납니다.

0

43

2

pod kubetm/app 에서 image를 갑자기 못가져 오는거 같습니다.

1

37

2

클로드 회원가입 전인데 perplexity 프로

0

47

2

supabase 설정하기 관련 문의사항이 있습니다.

0

52

2

이지지 생성 노드를 커스텀 햇는데 워드프레스에 이미지 업로드가 안됨

0

30

2

3. Node Schedule 중 pod-5가 마스터 노드에 배치됩니다.

1

46

2

실제 시험에서 링크

1

38

1

volume hostpath의 강의에 관해 질문이 있습니다.

1

36

2

Git 설치 문의

0

47

2

구글 드라이브 404

0

107

1

ZAP 자동화 context

0

145

2

apache2 접속 문제

0

182

2