Docker inspect — Easy Memory Trick


🐳 Docker inspect — Easy Memory Trick

Instead of memorizing dozens of docker inspect commands, remember:

CSNMH → ICEEP → FSRPET → PING → SD → CMR


1️⃣ Main Mnemonic — CSNMH

C → Config
S → State
N → NetworkSettings
M → Mounts
H → HostConfig

Think:

Config → State → Network → Mount → Host


2️⃣ Config → ICEEP 🧊

ICEEP = Ice P

I → Image
C → Cmd
E → Entrypoint
E → Env
P → ExposedPorts

Fields

.Config.Image
.Config.Cmd
.Config.Entrypoint
.Config.Env
.Config.ExposedPorts

3️⃣ State → FSRPET ⚙️

F → FinishedAt
S → Status
R → Running
P → PID
E → ExitCode
T → StartedAt

Fields

.State.FinishedAt
.State.Status
.State.Running
.State.Pid
.State.ExitCode
.State.StartedAt

4️⃣ NetworkSettings → PING 📡

Network = PING

P → Ports
I → IPAddress
N → Networks
G → Gateway

Fields

.NetworkSettings.Ports
.NetworkSettings.IPAddress
.NetworkSettings.Networks
.NetworkSettings.Gateway

⚠️ IP and Gateway are commonly nested inside Networks, so in practice use range:

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

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

5️⃣ Mounts → SD 💾

SD = SD Card

S → Source
D → Destination

Think:

Host Source → Container Destination

6️⃣ HostConfig → CMR 🖥️

CMR = CM Relief

C → CPU
M → Memory
R → RestartPolicy

😂 Your Full Story

“CSNMH ki shaadi hai — kidhar? Kaunse state mein? FSRPET mein! ICEEP brand ka ice cream hai, SD Syed biryani bana rahe hain, toh sab log CMR ko PING karke bole — Aao sab dabake khayenge!”

CSNMH → Main sections
FSRPET → State
ICEEP → Config
SD → Mounts
CMR → HostConfig
PING → NetworkSettings

🔑 How to Build Any Command

Remember:

Section → Field → Docker Path

Example:

C → Config → Image

becomes:

docker inspect container --format='{{.Config.Image}}'

⭐ JSON Rule

Simple → NO json

These return a single value:

Image
Status
Running
PID
ExitCode
FinishedAt
StartedAt
IPAddress
Gateway
CPU
Memory
Source
Destination

Example:

docker inspect container --format='{{.Config.Image}}'
docker inspect container --format='{{.State.Status}}'
docker inspect container --format='{{.State.Running}}'
docker inspect container --format='{{.State.Pid}}'
docker inspect container --format='{{.State.ExitCode}}'
docker inspect container --format='{{.HostConfig.Memory}}'

⭐ Complex → json is useful

These are objects/maps/lists:

Cmd
Entrypoint
Env
ExposedPorts
Ports
Networks
Mounts
RestartPolicy

Use:

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

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

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

docker inspect container --format='{{json .Config.ExposedPorts}}'

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

docker inspect container --format='{{json .NetworkSettings.Networks}}'

docker inspect container --format='{{json .Mounts}}'

docker inspect container --format='{{json .HostConfig.RestartPolicy}}'

🧠 Important

json does not mean:

NetworkSettings = JSON
HostConfig = JSON

Instead:

Complex object/list/map → json


📋 TOTAL COMMANDS TO REMEMBER

🟢 Config

docker inspect container --format='{{.Config.Image}}'
docker inspect container --format='{{json .Config.Cmd}}'
docker inspect container --format='{{json .Config.Entrypoint}}'
docker inspect container --format='{{json .Config.Env}}'
docker inspect container --format='{{json .Config.ExposedPorts}}'

🟡 State

docker inspect container --format='{{.State.FinishedAt}}'
docker inspect container --format='{{.State.Status}}'
docker inspect container --format='{{.State.Running}}'
docker inspect container --format='{{.State.Pid}}'
docker inspect container --format='{{.State.ExitCode}}'
docker inspect container --format='{{.State.StartedAt}}'

🔵 NetworkSettings

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

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

docker inspect container --format='{{json .NetworkSettings.Networks}}'

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

🟣 Mounts

docker inspect container --format='{{range .Mounts}}{{.Source}}{{end}}'

docker inspect container --format='{{range .Mounts}}{{.Destination}}{{end}}'

docker inspect container --format='{{json .Mounts}}'

🔴 HostConfig

docker inspect container --format='{{.HostConfig.CpuShares}}'

docker inspect container --format='{{.HostConfig.Memory}}'

docker inspect container --format='{{json .HostConfig.RestartPolicy}}'

⭐ Bonus Commands

These don't fit your main mnemonic but are useful:

docker inspect container --format='{{.Id}}'
docker inspect container --format='{{.Name}}'
docker inspect container --format='{{.Config.Hostname}}'
docker inspect container --format='{{.LogPath}}'
docker inspect container --format='{{.RestartCount}}'
docker inspect container --format='{{.Image}}'

Remember:

.Config.Image → Image NAME/TAG
.Image → Image ID

🧠 FINAL CHEAT SHEET

CSNMH
│
├── C → ICEEP 🧊
│ Image
│ Cmd*
│ Entrypoint*
│ Env*
│ ExposedPorts*
│
├── S → FSRPET ⚙️
│ FinishedAt
│ Status
│ Running
│ PID
│ ExitCode
│ StartedAt
│
├── N → PING 📡
│ Ports*
│ IP
│ Networks*
│ Gateway
│
├── M → SD 💾
│ Source
│ Destination
│
└── H → CMR 🖥️
CPU
Memory
RestartPolicy*

* = complex → json is useful

🔥 One sentence for tomorrow

“CSNMH ki shaadi hai — kidhar? Kaunse state mein? FSRPET mein! ICEEP brand ka ice cream hai, SD Syed biryani bana rahe hain, toh sab log CMR ko PING karke bole — Aao sab dabake khayenge!” 😂🍦🍛📡

CSNMH → ICEEP → FSRPET → PING → SD → CMR

That's your complete docker inspect mental map.

Comments

Popular posts from this blog

Managing Amazon EBS Volumes and Snapshots Across Regions

Git for Beginners: Complete Guide from Installation to First Push on GitHub

AWS - Amazon Web Services