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 → ConfigS → StateN → NetworkSettingsM → MountsH → HostConfig
Think:
Config → State → Network → Mount → Host
2️⃣ Config → ICEEP 🧊
ICEEP = Ice P
I → ImageC → CmdE → EntrypointE → EnvP → ExposedPorts
Fields
.Config.Image.Config.Cmd.Config.Entrypoint.Config.Env.Config.ExposedPorts
3️⃣ State → FSRPET ⚙️
F → FinishedAtS → StatusR → RunningP → PIDE → ExitCodeT → StartedAt
Fields
.State.FinishedAt.State.Status.State.Running.State.Pid.State.ExitCode.State.StartedAt
4️⃣ NetworkSettings → PING 📡
Network = PING
P → PortsI → IPAddressN → NetworksG → 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 → SourceD → Destination
Think:
Host Source → Container Destination
6️⃣ HostConfig → CMR 🖥️
CMR = CM Relief
C → CPUM → MemoryR → 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 sectionsFSRPET → StateICEEP → ConfigSD → MountsCMR → HostConfigPING → 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:
ImageStatusRunningPIDExitCodeFinishedAtStartedAtIPAddressGatewayCPUMemorySourceDestination
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:
CmdEntrypointEnvExposedPortsPortsNetworksMountsRestartPolicy
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 🖥️CPUMemoryRestartPolicy*
* = 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
Post a Comment