Lab 6.2 - Container Operations with Docker - alternatives
Lab 6.2 is really nice - so many options to try out. But also so many syntax details to memorize.
A particularly mind-boggling example is this:sudo docker container inspect --format=’{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ web-on-failure
Not a chance in the world I'll memorize that (I wonder who came up with this json syntax - must be a lonely fellow).
Turns out it's not so hard to parse the json file:sudo docker container inspect web-on-failure | grep \"IPAddress\": | cut -d '"' -f4 | uniq
And here a one-liner for the exercise:
heiko@ubuntu:~# curl $(sudo docker container inspect web-on-failure | grep \"IPAddress\": | cut -d '"' -f4 | uniq) Welcome to Container Fundamentals
The grep & cut works also with other parameters:
sudo docker container inspect web-on-failure | grep \"Gateway\": | cut -d '"' -f4 | uniq sudo docker container inspect web-on-failure | grep \"Runtime\": | cut -d '"' -f4 | uniq
Guess what's the runtime for the docker containers?
Unfortunately it fails when the value isn't quoted (""). For some incongruous reason many values are quoted, others are not. Example:
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
Hope this is useful.
Comments
-
Hello @heiko_s,
Thank you for providing the grep/cut alternatives.
The JSON syntax assumes you are familiar with navigating the fields of the JSON file, while grep/cut requires you to know the position of the desired field. In both cases some some reconnaissance is required prior to extracting the desired value.
Regards,
-Chris0 -
Thanks for the reply! Reconnaissance is definitely needed. But a simple grep gets me what I'm looking for, the rest is for scripting/automation.
Have been doing some other exercises using Podman and realised what was written in the lessons - no networking out of the box in unprivileged mode. The pod doesn't even get an IP. Looking forward to the container networking chapter.
0
Categories
- All Categories
- 177 LFX Mentorship
- 177 LFX Mentorship: Linux Kernel
- 755 Linux Foundation IT Professional Programs
- 375 Cloud Engineer IT Professional Program
- 170 Advanced Cloud Engineer IT Professional Program
- 74 DevOps IT Professional Program - Discontinued
- 5 DevOps & GitOps IT Professional Program
- 100 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- 2 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 5 Cloud & Containers Training
- 1 Cybersecurity Training
- 2 DevOps & Site-Reliability Training
- 1 Linux Kernel Development Training
- 1 Networking Training
- 2 Open Source Best Practice Training
- 2 System Administration Training
- 1 System Engineering Training
- 1 Web & Application Development Training
- 794 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 89 Storage
- 769 Linux Distributions
- 81 Debian
- 68 Fedora
- 22 Linux Mint
- 13 Mageia
- 24 openSUSE
- 150 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 465 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 78 Network Management
- 101 System Management
- 46 Web Management
- 112 Mobile Computing
- 20 Android
- 77 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 393 Off Topic
- 121 Introductions
- 182 Small Talk
- 29 Study Material
- 980 Programming and Development
- 310 Kernel Development
- 652 Software Development
- 995 Software
- 387 Applications
- 182 Command Line
- 5 Compiling/Installing
- 68 Games
- 317 Installation
- Archived
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)