Docker container command Tips & Tricks
Here my idea is to use the Unix/Linux 'alias' command for most those common docker container, network, volume commands to form as short-cuts. This trick work on bash shell.
First examine the docker container listing with the --format options as follows.
docker container ps -s \ --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Size}}"
docker ps command |
To get the logs of any applications that runs in container
alias dkrlogs='docker logs' alias dkrlogsf='docker logs -f '
docker logs with alias trick |
List of the images
alias dkri='docker image ls'
docker image list alias trick |
The container list
alias dkrcs='docker container ls'
docker container list alias trick |
Remove the 'Exited' status container
alias dkrrm='docker rm'
docker rm alias trick |
Docker top list to see the container inside process ID
alias dkrtop='docker top'
docker top alias trick |
All the above nice commands will be helpful for the pipelines, Containerization makes CI/CD seamless.
We could add the following alias lines to our .bashrc or .bashprofile where docker command executable:
alias dkrlogs='docker logs' alias dkrlogsf='docker logs -f ' alias dkri='docker image ls' alias dkrcs='docker container ls' alias dkrrm='docker rm' alias dkrtop='docker top' alias cleanall='docker container rm $(docker ps -a -q)' alias dkrps='docker ps --all --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}"'
How to know which docker volume connected to your container?
Let's create a container named as myweb with a docker volume attached as web-volume.
docker run -d --name myweb --mount source=web-volume,destination=/usr/share/nginx/html nginxUsing inspect sub-command on the container --format string with JSON forms is going to return a Json block:
docker container inspect --format '{{json .HostConfig.Mounts}}' myweb |jq alias knv2c="docker container inspect --format '{{json .HostConfig.Mounts}}' $1" kn2c myweb|jq
alias k2c="docker container inspect -f '{{json .HostConfig.Mounts }}'"
docker container inspect with -f option json format |
How to get a container IP from Docker Host?
Let's create a network as vybhava-net and add couple of containers to it as shown:docker network create vybhava-net docker run --net vybhava-net --name nginx -d nginx # same way create n1, n2, n3 etc. docker network inspect vybhava-net -f '{{json .Containers}}'|jqImage here shows you the filtered JSON output for containers which are attached to the network 'vybhava-net'
Docker network inspect filtered for containers |
How to get the network block and IPAddress of a given container?
Getting the IPaddress of a container is as follows:
Let's create an example container name as urweb.
docker run -d --name urweb \ --mount source=zing,destination=/usr/share/nginx/html nginx:alpineCommand execution related to alias using shell arguments:
docker container \ inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' urweb alias getip="docker container inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $1" getip urwebThe following is the execution of the alias command for the container within the default network.
How to get the User defined bridge network IPAddress?
Let's make user defined network as mynet.
docker network create mynet; docker network ls #create a mongo container docker run -d --rm --name mongodb01 --network mynet \ -e MONGO_INITDB_ROOT_USERNAME=admin \ -e MONGO_INITDB_ROOT_PASSWORD="vybhavatechnologies" mongo #Create a mongo-express container docker run -it --rm \ --network mynet \ --name mongo-express \ -p 8081:8081 \ -e ME_CONFIG_OPTIONS_EDITORTHEME="ambiance" \ -e ME_CONFIG_MONGODB_SERVER="mongodb01" \ -e ME_CONFIG_MONGODB_ADMINUSERNAME="admin" \ -e ME_CONFIG_MONGODB_ADMINPASSWORD="vybhavatechnologies" \ mongo-expressAfter adding two containers mongo, mongo-express to the mynet we can inspect the Network settings map to this user defined bridge network.
$ docker inspect -f '{{.Name}}-{{.NetworkSettings.Networks.mynet.IPAddress }}' 96bbda65987a /mongo-express-172.19.0.3 [node1] (local) root@192.168.0.8 ~ $ docker inspect -f '{{.Name}}-{{.NetworkSettings.Networks.mynet.IPAddress }}' e2ba199e8307 /mongodb01-172.19.0.2
No comments:
Post a Comment