inflearn logo
강의

Course

Instructor

Docker Masters! From CI/CD to DevSecOps Automation Security Practice!

Check the image manifest file and layer structure

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

96

taeho Kim

4 asked

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 보안-교육

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

감사합니다!

docker compose에 대해 질문드립니다.

0

6

1

Ingress 생성하기 ingressclass 질문

1

20

2

받을 수도 없는 수업 자료들이 올라와 있고, 이것들 때문에 강의를 수료할 수도 없습니다.

0

14

1

deployment 업데이트 및 롤백 실행하기 -2

1

23

2

강사님 Sprint6 은 언제쯤 나오나요?

1

17

1

JPA Repository 질문이 있습니다!

1

33

2

페이지네이션 처리를 쿼리에서 하는 방식 질문

1

36

1

젠킨스버전과 플러그인설치

1

35

2

디바이스 페어링 문의

0

32

2

cpu&memory 재설정하기에 질문이 있습니다.

1

50

2

침해사고 샘플분석 첫번째 파일 다운로드 불가

0

28

1

시험 시작하기 전에 한 가지 질문 있습니다.

1

51

2

yml 작성하다가 에러 발생해서 문의 드립니다.

0

39

2

(강의 6분 50초 부분) Workspace 안에 index.html이 비어있음

0

34

2

섹션2. 1.5쿠버네티스_컨트롤플레인_노드와_워커_노드_그리고 kubeadm으로 쿠버네티스 직접 구성하기-v1.30 오류

0

36

2

강의순서가 바뀌어 있습니다.

0

36

1

설치수업중에 질문드립니다.

1

57

2

섹션 4의 14번 3개의 샘플파일

0

31

2

build.zip 퍄일이 없습니다.

0

41

1

18강 http리퀘스트 부분 오류

0

50

2

무중단 배포

0

58

2

구글 드라이브 404

0

78

1

ZAP 자동화 context

0

107

2

apache2 접속 문제

0

148

2