inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

116

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

7

2

Pull 방식 아키텍처3 문의

1

11

2

4. Container 빌드 & 저장하기 - 자료 관련

1

18

2

aws 로드 밸런서가 생성되지 않습니다.

0

17

2

쿠버네티스 어나더 클래스-Sprint 1, 2 강의 관련 질문이있습니다.

1

25

1

안녕하세요, Oracle Cloud Free Tier 가입 과정에서 계속 오류가 발생해 문의드립니다.

1

26

2

민구님 설치시 또 막혀서 질문드려요

0

29

2

node js 설치 시 npm이 계속 안됩니다.

0

29

1

git clone 명령어를 어디 터미널에다 붙여넣어야 하나요?

0

33

2

html 파일을 못 불러 옵니다.

0

32

2

twitterdb 연결이 안돼요

1

27

2

교안은 프린트가 안되나요?

0

22

1

배포 파이프라인 구축 후 마주하게 되는 고민들 (💻 실습)

1

29

2

macOS에서 Windows 실행하는 프로그램

1

23

2

이제 인프런에서 강의 더 안산다. 후져....

0

42

1

7.5 강의에서 settings.json 붙여 넣기 내용이 영상과 다릅니다

0

54

2

소스코드 어디서 다운받아요?

0

52

5

가상머신, Jenkins 등의 설치, 설정

0

23

1

왜 클로드.md 파일에 프롬프트를 넣는건지 궁금합니다

0

59

1

Docker 환경

0

66

2

쿠버네티스에서의 스토리지 사용

1

45

2

구글 드라이브 404

0

96

1

ZAP 자동화 context

0

125

2

apache2 접속 문제

0

167

2