Docker Inspect 사용법 총정리! 컨테이너·이미지·네트워크 상세 정보와 format 활용 방법

Docker 컨테이너를 운영하다 보면 컨테이너의 IP 주소, 환경 변수, 볼륨 연결 상태, 포트 매핑, 재시작 정책 등을 자세히 확인해야 하는 경우가 많습니다.

docker ps 명령은 컨테이너의 기본 상태를 빠르게 보여주지만, 세부 설정까지 모두 확인할 수는 없습니다.

이때 사용하는 명령어가 바로 docker inspect입니다.

Docker Inspect는 Docker가 관리하는 컨테이너, 이미지, 네트워크, 볼륨 등의 내부 정보를 JSON 형식으로 출력합니다. 특정 항목만 골라 확인할 수 있는 --format 옵션도 지원하므로 Docker 문제를 분석할 때 매우 유용합니다.

이번 글에서는 Docker Inspect의 기본 사용법부터 컨테이너 IP 주소, 환경 변수, 포트, 볼륨, 이미지 정보 확인 방법과 Go Template을 이용한 출력 형식 지정 방법까지 자세히 알아보겠습니다.

Table of Contents

Docker Inspect란?

docker inspectDocker 객체의 상세 정보를 확인하는 명령어입니다.

Docker 객체에는 다음 항목이 포함됩니다.

  • Container
  • Image
  • Network
  • Volume
  • Service
  • Node
  • Secret
  • Config

기본 사용법은 다음과 같습니다.

docker inspect 객체이름또는ID

예를 들어 web이라는 컨테이너를 확인하려면 다음 명령을 사용합니다.

docker inspect web

Docker Inspect는 기본적으로 결과를 JSON 배열 형태로 출력합니다.

Docker Inspect가 필요한 이유

Docker Inspect를 사용하면 다음과 같은 정보를 확인할 수 있습니다.

  • 컨테이너 상태
  • 컨테이너 IP 주소
  • 포트 매핑
  • 환경 변수
  • 볼륨 연결 경로
  • 네트워크 연결 정보
  • 재시작 정책
  • 실행 명령
  • 이미지 ID
  • 컨테이너 생성 시간
  • 로그 드라이버
  • 헬스 체크 상태

컨테이너가 실행되지 않거나 다른 컨테이너와 통신하지 못할 때 Inspect 결과에서 중요한 단서를 찾을 수 있습니다.

실행 중인 컨테이너 확인

먼저 컨테이너 이름을 확인합니다.

docker ps

중지된 컨테이너까지 모두 확인하려면 다음 명령을 사용합니다.

docker ps -a

확인한 컨테이너 이름이나 ID를 docker inspect에 전달합니다.

docker inspect web

컨테이너 상세 정보 확인

다음 명령은 컨테이너의 전체 정보를 출력합니다.

docker container inspect web

docker inspect web과 비슷하지만, docker container inspect는 확인 대상이 컨테이너라는 점을 명확하게 지정합니다. Docker 공식 CLI에서는 하나 이상의 컨테이너 정보를 확인하는 명령으로 제공됩니다.

출력 결과에는 다음과 같은 주요 항목이 포함됩니다.

Id
Created
Path
Args
State
Image
Config
NetworkSettings
Mounts
HostConfig

결과가 매우 길기 때문에 실무에서는 --format 옵션으로 필요한 정보만 조회하는 경우가 많습니다.

컨테이너 상태 확인

컨테이너의 실행 상태만 확인하려면 다음 명령을 사용합니다.

docker inspect \
--format='{{.State.Status}}' \
web

출력 예시는 다음과 같습니다.

running

가능한 상태에는 다음과 같은 값이 있습니다.

created
running
paused
restarting
exited
dead

컨테이너가 실행 중인지 간단히 확인할 때 유용합니다.

컨테이너 실행 여부 확인

실행 여부를 참 또는 거짓으로 확인할 수 있습니다.

docker inspect \
--format='{{.State.Running}}' \
web

실행 중이면 다음과 같이 출력됩니다.

true

중지된 상태라면 다음과 같이 출력됩니다.

false

셸 스크립트에서 컨테이너 상태를 자동으로 검사할 때 활용할 수 있습니다.

컨테이너 종료 코드 확인

컨테이너가 비정상적으로 종료됐다면 Exit Code를 확인합니다.

docker inspect \
--format='{{.State.ExitCode}}' \
web

출력 예시는 다음과 같습니다.

0

일반적으로 0은 정상 종료를 의미합니다.

1, 125, 126, 127, 137처럼 다른 코드가 출력되면 실행 실패, 명령어 오류, 강제 종료, 메모리 부족 등의 원인을 확인해야 합니다.

종료 원인은 로그와 함께 분석하는 것이 좋습니다.

docker logs web

컨테이너 오류 메시지 확인

Docker가 기록한 오류 내용을 확인합니다.

docker inspect \
--format='{{.State.Error}}' \
web

오류가 없다면 빈 값이 출력될 수 있습니다.

컨테이너 시작 자체가 실패한 경우에는 권한, 실행 파일, 볼륨 또는 포트 관련 오류가 표시될 수 있습니다.

컨테이너 시작 시간 확인

docker inspect \
--format='{{.State.StartedAt}}' \
web

출력 예시는 다음과 같습니다.

2026-07-22T01:30:15.123456789Z

컨테이너가 언제 시작됐는지 확인할 수 있습니다.

컨테이너 종료 시간 확인

docker inspect \
--format='{{.State.FinishedAt}}' \
web

컨테이너가 중지된 시각을 확인할 수 있습니다.

애플리케이션 장애가 발생한 시간과 컨테이너 종료 시간을 비교할 때 유용합니다.

컨테이너 IP 주소 확인

기본 네트워크의 IP 주소를 확인합니다.

docker inspect \
--format='{{.NetworkSettings.IPAddress}}' \
web

다만 사용자 정의 네트워크를 사용하는 경우 이 값이 비어 있을 수 있습니다.

이때는 네트워크별 IP 주소를 확인해야 합니다.

docker inspect \
--format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
web

네트워크 이름과 IP 주소를 함께 출력하려면 다음 명령을 사용할 수 있습니다.

docker inspect \
--format='{{range $name, $network := .NetworkSettings.Networks}}{{$name}} {{$network.IPAddress}}{{println}}{{end}}' \
web

출력 예시는 다음과 같습니다.

app-network 172.20.0.3
backend-network 172.21.0.4

Gateway 주소 확인

docker inspect \
--format='{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' \
web

출력 예시는 다음과 같습니다.

172.20.0.1

컨테이너의 기본 게이트웨이를 확인할 수 있습니다.

MAC 주소 확인

docker inspect \
--format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' \
web

컨테이너 네트워크 인터페이스의 MAC 주소를 확인합니다.

포트 매핑 확인

컨테이너에 설정된 전체 포트 매핑을 확인합니다.

docker inspect \
--format='{{json .NetworkSettings.Ports}}' \
web

출력 예시는 다음과 같습니다.

{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"8080"}]}

의미는 다음과 같습니다.

호스트 8080 포트

↓

컨테이너 80 포트

특정 포트만 조회하려면 index 함수를 사용할 수 있습니다.

docker inspect \
--format='{{(index (index .NetworkSettings.Ports "80/tcp") 0).HostPort}}' \
web

출력 결과는 다음과 같습니다.

8080

컨테이너 환경 변수 확인

컨테이너에 설정된 환경 변수 전체를 확인합니다.

docker inspect \
--format='{{json .Config.Env}}' \
web

한 줄씩 보기 쉽게 출력하려면 다음 명령을 사용합니다.

docker inspect \
--format='{{range .Config.Env}}{{println .}}{{end}}' \
web

출력 예시는 다음과 같습니다.

APP_ENV=production
APP_PORT=8080
DB_HOST=mysql
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

특정 환경 변수만 찾으려면 grep과 함께 사용할 수 있습니다.

docker inspect \
--format='{{range .Config.Env}}{{println .}}{{end}}' \
web | grep '^DB_HOST='

컨테이너 실행 명령 확인

컨테이너가 어떤 명령으로 실행됐는지 확인합니다.

docker inspect \
--format='{{json .Config.Cmd}}' \
web

출력 예시는 다음과 같습니다.

["node","server.js"]

ENTRYPOINT를 확인하려면 다음 명령을 사용합니다.

docker inspect \
--format='{{json .Config.Entrypoint}}' \
web

출력 예시는 다음과 같습니다.

["docker-entrypoint.sh"]

실제 실행 구조는 다음과 같이 구성될 수 있습니다.

ENTRYPOINT + CMD

↓

docker-entrypoint.sh node server.js

컨테이너 이미지 확인

컨테이너가 사용하는 이미지 이름을 확인합니다.

docker inspect \
--format='{{.Config.Image}}' \
web

출력 예시는 다음과 같습니다.

nginx:1.27

내부 이미지 ID를 확인하려면 다음 명령을 사용합니다.

docker inspect \
--format='{{.Image}}' \
web

컨테이너 이름 확인

docker inspect \
--format='{{.Name}}' \
web

출력 결과는 일반적으로 앞에 /가 붙습니다.

/web

컨테이너 호스트 이름 확인

docker inspect \
--format='{{.Config.Hostname}}' \
web

Docker 내부 DNS나 컨테이너 식별 문제를 확인할 때 사용할 수 있습니다.

컨테이너 작업 디렉터리 확인

Dockerfile의 WORKDIR 또는 실행 설정에서 지정된 작업 디렉터리를 확인합니다.

docker inspect \
--format='{{.Config.WorkingDir}}' \
web

출력 예시는 다음과 같습니다.

/app

컨테이너 사용자 확인

컨테이너가 어떤 사용자로 실행되도록 설정됐는지 확인합니다.

docker inspect \
--format='{{.Config.User}}' \
web

값이 비어 있으면 기본적으로 root 사용자로 실행되는 경우가 많습니다.

실제 실행 사용자는 다음 명령으로도 확인할 수 있습니다.

docker exec web whoami

볼륨과 Bind Mount 확인

컨테이너에 연결된 저장 공간을 확인합니다.

docker inspect \
--format='{{json .Mounts}}' \
web

읽기 쉽게 출력하려면 다음 명령을 사용할 수 있습니다.

docker inspect \
--format='{{range .Mounts}}{{println .Type .Source "->" .Destination}}{{end}}' \
web

출력 예시는 다음과 같습니다.

volume /var/lib/docker/volumes/mysql-data/_data -> /var/lib/mysql
bind /home/user/app/config -> /app/config

다음 정보를 확인할 수 있습니다.

  • Mount Type
  • 호스트 저장 경로
  • 컨테이너 내부 경로
  • 읽기 전용 여부
  • Volume 이름

읽기 전용 여부를 함께 확인하려면 다음 명령을 사용합니다.

docker inspect \
--format='{{range .Mounts}}{{println .Destination "RW:" .RW}}{{end}}' \
web

재시작 정책 확인

컨테이너의 Restart Policy를 확인합니다.

docker inspect \
--format='{{.HostConfig.RestartPolicy.Name}}' \
web

출력 예시는 다음과 같습니다.

unless-stopped

대표적인 재시작 정책은 다음과 같습니다.

no
always
on-failure
unless-stopped

재시작 횟수 제한도 확인할 수 있습니다.

docker inspect \
--format='{{.HostConfig.RestartPolicy.MaximumRetryCount}}' \
web

메모리 제한 확인

컨테이너에 설정된 메모리 제한을 확인합니다.

docker inspect \
--format='{{.HostConfig.Memory}}' \
web

출력값은 바이트 단위입니다.

예를 들어 다음과 같이 출력될 수 있습니다.

536870912

이는 약 512MB를 의미합니다.

사람이 읽기 쉬운 단위로 확인하려면 다음처럼 계산할 수 있습니다.

docker inspect \
--format='{{.HostConfig.Memory}}' \
web | awk '{print $1/1024/1024 " MB"}'

CPU 제한 확인

CPU 사용 제한과 관련된 값을 확인할 수 있습니다.

docker inspect \
--format='NanoCPUs={{.HostConfig.NanoCpus}} CPUQuota={{.HostConfig.CpuQuota}} CPUPeriod={{.HostConfig.CpuPeriod}}' \
web

실제 CPU 사용량은 docker stats 명령을 사용하는 것이 더 적합하고, Inspect는 설정된 제한값을 확인할 때 사용합니다.

로그 드라이버 확인

docker inspect \
--format='{{.HostConfig.LogConfig.Type}}' \
web

출력 예시는 다음과 같습니다.

json-file

로그 옵션도 확인할 수 있습니다.

docker inspect \
--format='{{json .HostConfig.LogConfig.Config}}' \
web

출력 예시는 다음과 같습니다.

{"max-file":"3","max-size":"10m"}

헬스 체크 상태 확인

Dockerfile이나 Compose에 Healthcheck가 설정된 경우 다음 명령으로 상태를 확인할 수 있습니다.

docker inspect \
--format='{{.State.Health.Status}}' \
web

출력 가능한 값은 다음과 같습니다.

starting
healthy
unhealthy

헬스 체크 기록을 확인하려면 다음 명령을 사용합니다.

docker inspect \
--format='{{json .State.Health.Log}}' \
web

Healthcheck가 설정되지 않은 컨테이너에서는 해당 필드가 없어 템플릿 오류가 발생할 수 있습니다.

OOMKilled 확인

컨테이너가 메모리 부족으로 종료됐는지 확인합니다.

docker inspect \
--format='{{.State.OOMKilled}}' \
web

출력 결과가 다음과 같다면 메모리 부족으로 강제 종료된 것입니다.

true

이 경우 다음 항목을 함께 확인해야 합니다.

docker logs web
docker inspect \
--format='{{.HostConfig.Memory}}' \
web
docker stats --no-stream web

Docker Image Inspect 사용법

이미지의 상세 정보를 확인하려면 다음 명령을 사용합니다.

docker image inspect nginx:1.27

Docker 공식 CLI에서는 하나 이상의 이미지 정보를 표시하는 명령으로 제공됩니다.

확인 가능한 정보는 다음과 같습니다.

  • Image ID
  • 생성 시간
  • Architecture
  • Operating System
  • Environment
  • Entrypoint
  • CMD
  • Exposed Ports
  • Layer 정보
  • 이미지 크기

이미지 생성 시간 확인

docker image inspect \
--format='{{.Created}}' \
nginx:1.27

이미지 아키텍처 확인

docker image inspect \
--format='{{.Architecture}}' \
nginx:1.27

출력 예시는 다음과 같습니다.

amd64

운영체제 정보를 함께 확인할 수 있습니다.

docker image inspect \
--format='OS={{.Os}} ARCH={{.Architecture}}' \
nginx:1.27

이미지 기본 명령 확인

docker image inspect \
--format='{{json .Config.Cmd}}' \
nginx:1.27

Entrypoint도 확인합니다.

docker image inspect \
--format='{{json .Config.Entrypoint}}' \
nginx:1.27

이미지 환경 변수 확인

docker image inspect \
--format='{{range .Config.Env}}{{println .}}{{end}}' \
nginx:1.27

이미지에 기본으로 포함된 환경 변수를 확인할 수 있습니다.

이미지에 공개된 포트 확인

docker image inspect \
--format='{{json .Config.ExposedPorts}}' \
nginx:1.27

출력 예시는 다음과 같습니다.

{"80/tcp":{}}

이는 이미지가 80번 포트를 사용한다는 정보이며, 실제 호스트 포트 공개 여부는 컨테이너 실행 설정을 확인해야 합니다.

Docker Network Inspect 사용법

네트워크 상세 정보를 확인합니다.

docker network inspect app-network

Docker Network Inspect는 네트워크의 서브넷, 게이트웨이, 옵션, 연결된 컨테이너 등의 정보를 제공합니다.

확인 가능한 정보는 다음과 같습니다.

  • Network Driver
  • Scope
  • Subnet
  • Gateway
  • 연결된 컨테이너
  • 컨테이너 IP
  • 네트워크 옵션

네트워크 드라이버 확인

docker network inspect \
--format='{{.Driver}}' \
app-network

출력 예시는 다음과 같습니다.

bridge

네트워크 서브넷 확인

docker network inspect \
--format='{{range .IPAM.Config}}{{.Subnet}}{{end}}' \
app-network

출력 예시는 다음과 같습니다.

172.20.0.0/16

네트워크 게이트웨이 확인

docker network inspect \
--format='{{range .IPAM.Config}}{{.Gateway}}{{end}}' \
app-network

연결된 컨테이너 확인

docker network inspect \
--format='{{range .Containers}}{{println .Name .IPv4Address}}{{end}}' \
app-network

출력 예시는 다음과 같습니다.

web 172.20.0.3/16
mysql 172.20.0.4/16
redis 172.20.0.5/16

Docker Volume Inspect 사용법

Volume 상세 정보를 확인합니다.

docker volume inspect mysql-data

Docker Volume Inspect는 볼륨 이름, 드라이버, 실제 Mountpoint 등의 정보를 출력합니다.

Volume 저장 위치 확인

docker volume inspect \
--format='{{.Mountpoint}}' \
mysql-data

Linux 환경의 출력 예시는 다음과 같습니다.

/var/lib/docker/volumes/mysql-data/_data

Docker Desktop에서는 Docker가 관리하는 가상 환경 내부 경로가 표시될 수 있습니다.

Volume Driver 확인

docker volume inspect \
--format='{{.Driver}}' \
mysql-data

출력 예시는 다음과 같습니다.

local

–format 옵션이란?

--format 옵션은 Docker Inspect 결과에서 원하는 값만 선택해 출력하는 기능입니다.

Docker CLI의 출력 형식 지정에는 Go Template 문법이 사용됩니다. Docker는 json, join, split, lower, upper, title, pad, truncate, println 등의 함수를 제공합니다.

기본 형식은 다음과 같습니다.

docker inspect \
--format='{{.필드이름}}' \
객체이름

예를 들어 컨테이너 상태를 확인하려면 다음과 같이 작성합니다.

docker inspect \
--format='{{.State.Status}}' \
web

json 함수 사용법

배열이나 객체를 JSON 형태로 출력합니다.

docker inspect \
--format='{{json .Config.Env}}' \
web

환경 변수, 포트, 볼륨처럼 구조가 복잡한 데이터를 확인할 때 유용합니다.

range 사용법

배열이나 여러 항목을 반복 출력합니다.

docker inspect \
--format='{{range .Config.Env}}{{println .}}{{end}}' \
web

출력 결과는 다음과 같습니다.

APP_ENV=production
APP_PORT=8080
DB_HOST=mysql

index 사용법

키 이름에 /와 같은 문자가 포함되면 일반적인 점 표기법으로 접근하기 어렵습니다.

이때 index를 사용합니다.

docker inspect \
--format='{{index .NetworkSettings.Ports "80/tcp"}}' \
web

Map이나 배열 안의 특정 값을 가져올 때 유용합니다.

여러 정보를 한 줄로 출력하기

컨테이너 이름, 상태, IP 주소를 함께 확인할 수 있습니다.

docker inspect \
--format='Name={{.Name}} Status={{.State.Status}} IP={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
web

출력 예시는 다음과 같습니다.

Name=/web Status=running IP=172.20.0.3

여러 컨테이너를 한 번에 Inspect하기

여러 컨테이너 정보를 동시에 조회할 수 있습니다.

docker inspect web mysql redis

Format 옵션과 함께 사용하면 간단한 상태표를 만들 수 있습니다.

docker inspect \
--format='{{.Name}} {{.State.Status}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
web mysql redis

출력 예시는 다음과 같습니다.

/web running 172.20.0.3
/mysql running 172.20.0.4
/redis exited 172.20.0.5

Docker Inspect 결과를 파일로 저장하기

전체 JSON 결과를 파일로 저장할 수 있습니다.

docker inspect web > web-inspect.json

나중에 비교하거나 장애 기록으로 보관할 수 있습니다.

jq가 설치되어 있다면 보기 쉽게 정리할 수 있습니다.

docker inspect web | jq

특정 항목만 조회할 수도 있습니다.

docker inspect web | jq '.[0].NetworkSettings.Networks'

실무에서 자주 사용하는 Docker Inspect 명령어

컨테이너 상태 확인

docker inspect \
--format='{{.State.Status}}' \
web

컨테이너 IP 확인

docker inspect \
--format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
web

환경 변수 확인

docker inspect \
--format='{{range .Config.Env}}{{println .}}{{end}}' \
web

포트 확인

docker inspect \
--format='{{json .NetworkSettings.Ports}}' \
web

볼륨 확인

docker inspect \
--format='{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}' \
web

재시작 정책 확인

docker inspect \
--format='{{.HostConfig.RestartPolicy.Name}}' \
web

종료 코드 확인

docker inspect \
--format='{{.State.ExitCode}}' \
web

메모리 부족 종료 확인

docker inspect \
--format='{{.State.OOMKilled}}' \
web

이미지 이름 확인

docker inspect \
--format='{{.Config.Image}}' \
web

Docker Inspect를 이용한 Linux 서버 문제 해결

Docker 컨테이너에 접속할 수 없는 상황을 가정해 보겠습니다.

먼저 컨테이너 상태를 확인합니다.

docker inspect \
--format='{{.State.Status}}' \
web

결과가 다음과 같다고 가정합니다.

exited

종료 코드를 확인합니다.

docker inspect \
--format='{{.State.ExitCode}}' \
web

결과가 137이라면 강제 종료 가능성을 확인해야 합니다.

OOMKilled 값을 확인합니다.

docker inspect \
--format='{{.State.OOMKilled}}' \
web

결과가 다음과 같다면 메모리 부족이 원인일 가능성이 높습니다.

true

설정된 메모리 제한을 확인합니다.

docker inspect \
--format='{{.HostConfig.Memory}}' \
web

마지막으로 로그를 확인합니다.

docker logs --tail 100 web

이처럼 Inspect 결과와 Logs를 함께 확인하면 컨테이너 종료 원인을 더 정확하게 분석할 수 있습니다.

컨테이너 통신 문제 해결 사례

애플리케이션 컨테이너가 MySQL에 연결되지 않는다고 가정해 보겠습니다.

먼저 두 컨테이너의 네트워크를 확인합니다.

docker inspect \
--format='{{json .NetworkSettings.Networks}}' \
app
docker inspect \
--format='{{json .NetworkSettings.Networks}}' \
mysql

두 컨테이너가 서로 다른 네트워크에 연결되어 있다면 이름 기반 통신이 되지 않을 수 있습니다.

MySQL 컨테이너의 IP 주소도 확인합니다.

docker inspect \
--format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
mysql

애플리케이션 환경 변수를 확인합니다.

docker inspect \
--format='{{range .Config.Env}}{{println .}}{{end}}' \
app | grep DB_HOST

결과가 다음과 같다면 설정이 잘못된 것입니다.

DB_HOST=localhost

컨테이너 환경에서는 localhost가 애플리케이션 컨테이너 자신을 의미하므로, 일반적으로 MySQL의 컨테이너 이름이나 Compose 서비스 이름을 지정해야 합니다.

DB_HOST=mysql

포트 접속 문제 해결 사례

Nginx 컨테이너가 실행 중이지만 브라우저에서 접속되지 않는 상황을 가정해 보겠습니다.

컨테이너 상태를 확인합니다.

docker inspect \
--format='{{.State.Status}}' \
nginx

포트 매핑을 확인합니다.

docker inspect \
--format='{{json .NetworkSettings.Ports}}' \
nginx

결과가 다음과 같다면 호스트 8080번 포트로 접속해야 합니다.

{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"8080"}]}

접속 주소는 다음과 같습니다.

http://서버IP:8080

포트 정보가 null로 표시된다면 컨테이너 포트가 호스트에 공개되지 않았을 수 있습니다.

이 경우 컨테이너를 다음처럼 다시 생성해야 합니다.

docker run -d \
--name nginx \
-p 8080:80 \
nginx

Docker Inspect 사용 시 주의사항

Docker Inspect 결과에는 환경 변수, 명령어, Mount 경로 등 민감할 수 있는 정보가 포함됩니다.

특히 다음 정보가 노출될 수 있습니다.

  • 데이터베이스 비밀번호
  • API Key
  • 내부 서버 주소
  • 호스트 디렉터리 경로
  • 네트워크 구성
  • 실행 명령 인수

따라서 Inspect 결과를 외부에 공유하거나 로그 파일로 저장할 때는 민감한 정보를 제거해야 합니다.

또한 Inspect는 Docker 객체의 설정과 상태를 보여주는 명령이므로 실제 성능 사용량은 docker stats, 실행 로그는 docker logs, 내부 파일과 프로세스는 docker exec로 확인하는 것이 좋습니다.

자주 묻는 질문

docker inspect와 docker ps의 차이는 무엇인가요?

docker ps는 컨테이너 목록과 기본 상태를 빠르게 확인하는 명령입니다. docker inspect는 특정 컨테이너의 네트워크, 볼륨, 환경 변수, 포트, 실행 설정 등 상세 정보를 확인하는 명령입니다.

Docker Inspect 결과가 너무 길게 나옵니다.

--format 옵션을 사용하여 필요한 필드만 출력하면 됩니다.

docker inspect \
--format='{{.State.Status}}' \
web

또는 jq를 이용해 JSON 결과를 필터링할 수 있습니다.

컨테이너 IP 주소가 빈 값으로 출력되는 이유는 무엇인가요?

사용자 정의 네트워크를 사용하는 경우 .NetworkSettings.IPAddress가 비어 있을 수 있습니다. 이때는 .NetworkSettings.Networks 아래의 네트워크별 IP 주소를 확인해야 합니다.

docker inspect \
--format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
web

docker inspect로 비밀번호를 확인할 수 있나요?

환경 변수나 실행 명령에 비밀번호가 포함되어 있다면 Inspect 결과에 표시될 수 있습니다. 따라서 민감한 값은 Docker Secrets 또는 별도의 보안 관리 시스템을 사용하는 것이 좋습니다.

중지된 컨테이너도 Inspect할 수 있나요?

네. 컨테이너가 삭제되지 않았다면 실행 중이 아니어도 Inspect가 가능합니다.

docker ps -a
docker inspect 컨테이너이름

Docker Inspect로 실시간 CPU 사용량을 볼 수 있나요?

아닙니다. Inspect는 객체의 설정과 상태 정보를 확인하는 명령입니다. 실시간 CPU와 메모리 사용량은 다음 명령을 사용합니다.

docker stats

마무리

Docker Inspect는 컨테이너, 이미지, 네트워크, 볼륨의 상세 정보를 확인하는 핵심 진단 명령어입니다.

전체 JSON 결과를 확인할 수도 있지만, 실무에서는 --format 옵션을 이용해 상태, IP 주소, 포트, 환경 변수, Mount, 재시작 정책과 같은 필요한 정보만 조회하는 방법을 자주 사용합니다.

컨테이너가 종료됐을 때는 State, ExitCode, OOMKilled를 확인하고, 네트워크 문제가 발생했을 때는 NetworkSettings, 포트 문제가 발생했을 때는 Ports를 확인하면 원인을 빠르게 좁힐 수 있습니다.

Docker Logs, Docker Exec, Docker Stats와 함께 사용하면 더욱 체계적인 Linux 서버 문제 해결이 가능합니다.

댓글 남기기