Skip to content

Cmder for Docker

Video

docker command

github setting

Lable Command Description
docker:images:digests:docker_image docker images --digests ${input:docker_image_name}
docker:image:inspect docker image inspect ${input:docker_image_name} Inspect and see volume
docker:help docker Show commands & management commands
docker:version docker version Docker version info
docker:info docker info Show info like number of containers, etc
docker:container:ls docker container ls List running containers
docker:ps docker ps
docker:container:ls:all docker container ls -a List all containers (Even if not running)
docker:container:ls:name-only docker ps --format "{{.Names}}" --all List all containers (Name Only)
docker:container:logs docker container logs ${select:docker_container_name} Get logs (Use name or ID)
docker:container:top docker container top ${select:docker_container_name} List processes running in container
docker:image:ls docker image ls List the images we have pulled
docker:images:grep_by_name docker images ${input:docker_image_name} List the images we have pulled
docker:pull docker pull ${input:docker_image_name} We can also just pull down images
docker:image:remove docker image rm ${input:docker_image_name_or_id} Remove image
docker:stop:all docker stop $(docker ps -aq) Stop all running containers, Work in linux
docker:container:rm:all docker rm $(docker ps -aq) Remove all containers, Work in linux
docker:image:remove:all docker rmi $(docker images -a -q) Remove all images, Work in linux
docker:container:inspect docker container inspect ${select:docker_container_name} Inspect and View info on container
docker:container:inspect:format docker container inspect --format '{{ .NetworkSettings.IPAddress }}' ${select:docker_container_name} Specific property (--format)
docker:container:stats docker container stats ${select:docker_container_name} Performance stats (cpu, mem, network, disk, etc)
docker:container:start docker container start ${select:docker_container_name} Start container
docker:container:start:attach docker container start -ai ${select:docker_container_name} Access an already created container, start with -ai
docker:container:restart docker container restart ${select:docker_container_name} Restart container
docker:container:stop docker container stop ${select:docker_container_name} Stop container
docker:container:rm docker container rm ${select:docker_container_name} Remove container (Can not remove running containers, must stop first)
docker:container:rm:force docker container rm -f ${select:docker_container_name} To remove a running container use force(-f)
docker:container:exec:attach:shell docker container exec -it ${select:docker_container_name} /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh" attach shell
docker:container:create docker container run -it -d --name ${input:new_docker_container_name} ${input:exist_docker_image} Create and run a container in background
docker:container:create:include_network docker container run -it -d --name ${input:docker_container} --network ${input:docker_network_name} ${input:docker_image} Create container on network
docker:container:create:example docker container run -it -d --name ${input:new_docker_container_name} ${select:docker_image} Some docker container example, Alpine is a very small Linux distro good for docker
docker:container:create:nginx docker container run -it -d -p 9090:80 --name nginx nginx NGINX container
docker:container:create:ubuntu docker container run -it -d --name ubuntu ubuntu ubuntu container
docker:container:create:alpine docker container run -it -d --name alpine alpine Alpine container
docker:container:create:apache docker container run -it -d -p 8080:80 --name apache httpd APACHE container
docker:container:create:mongodb docker container run -it -d -p 27017:27017 --name mongo mongo MONGODB container
docker:example:mysql docker container run -it -d -p 3306:3306 --name mysql --env MYSQL_ROOT_PASSWORD=123456 mysql MYSQL container
docker:container:port docker container port ${select:docker_container_name} Get port
docker:network:ls docker network ls List networks
docker:network:inspect docker network inspect ${input:docker_network_name} Inspect network
docker:network:create docker network create ${input:docker_network_name} Create network
docker:network:connect:container docker network connect ${input:docker_network_name} ${select:docker_container_name} Connect existing container to network
docker:network:disconnect:container docker network disconnect ${input:docker_network_name} ${select:docker_container_name} Disconnect container from network
docker:image:tag:retag docker image tag ${input:old_docker_image_name} ${input:new_docker_image_name} Retag existing image
docker:image:push:to_dockerhub docker image push ${input:docker_image_tag} Upload to dockerhub
docker:login docker login docker login
docker:image:build docker image build -t ${input:REPONAME} . build image build
docker:volume:ls docker volume ls Check volumes
docker:volume:prune docker volume prune Cleanup unused volumes
docker-compose:up:background docker-compose up -d run in background
docker-compose:up docker-compose up run in front
docker-compose:down docker-compose down To cleanup

docker config

this is the setting of Cmder For Sublime

{
    "tasks" : [
    //////////////////////////Docker Command Start/////////////////////////////////
        {
            "desc" : "",
            "label" : "docker:images:digests:docker_image",
            "encoding" : "UTF-8",
            "command": "docker images --digests ${input:docker_image_name}"
        },
        {
            "desc" : "Inspect and see volume",
            "label" : "docker:image:inspect",
            "encoding" : "UTF-8",
            "command": "docker image inspect ${input:docker_image_name}"
        },

        // Docker Commands, Help & Tips
        {
            "desc" : "Show commands & management commands",
            "label" : "docker:help",
            "encoding" : "UTF-8",
            "command" : "docker"
        },
        {
            "desc" : "Docker version info",
            "label" : "docker:version",
            "encoding" : "UTF-8",
            "command" : "docker version"
        },
        {
            "desc" : "Show info like number of containers, etc",
            "label" : "docker:info",
            "encoding" : "UTF-8",
            "command" : "docker info"
        },

        // WORKING WITH CONTAINERS
        {
            "desc" : "List running containers",
            "label" : "docker:container:ls",
            "encoding" : "UTF-8",
            "command" : "docker container ls"
        },
        {
            "label" : "docker:ps",
            "encoding" : "UTF-8",
            "command" : "docker ps"
        },
        {
            "desc" : "List all containers (Even if not running)",
            "label" : "docker:container:ls:all",
            "encoding" : "UTF-8",
            "command" : "docker container ls -a"
        },
        {
            "desc" : "List all containers (Name Only)",
            "label" : "docker:container:ls:name-only",
            "encoding" : "UTF-8",
            "command" : "docker ps --format \"{{.Names}}\" --all"
        },
        {
            "desc" : "Get logs (Use name or ID)",
            "label" : "docker:container:logs",
            "encoding" : "UTF-8",
            "command" : "docker container logs ${select:docker_container_name}"
        },
        {
            "desc" : "List processes running in container",
            "label" : "docker:container:top",
            "encoding" : "UTF-8",
            "command" : "docker container top ${select:docker_container_name}"
        },
        // IMAGE COMMANDS
        {
            "desc" : "List the images we have pulled",
            "label" : "docker:image:ls",
            "encoding" : "UTF-8",
            "command" : "docker image ls"
        },
        {
            "desc" : "List the images we have pulled",
            "label" : "docker:images:grep_by_name",
            "encoding" : "UTF-8",
            "command" : "docker images ${input:docker_image_name}"
        },
        {
            "desc" : "We can also just pull down images",
            "label" : "docker:pull",
            "encoding" : "UTF-8",
            "command" : "docker pull ${input:docker_image_name}"
        },
        {
            "desc" : "Remove image",
            "label" : "docker:image:remove",
            "encoding" : "UTF-8",
            "command" : "docker image rm ${input:docker_image_name_or_id}"
        },
        // only work in linux/mac
            {
                "desc" : "Stop all running containers, Work in linux",
                "label" : "docker:stop:all",
                "encoding" : "UTF-8",
                "command" : "docker stop $(docker ps -aq)"
            },
            {
                "desc" : "Remove all containers, Work in linux",
                "label" : "docker:container:rm:all",
                "encoding" : "UTF-8",
                "command" : "docker rm $(docker ps -aq)"
            },
            {
                "desc" : "Remove all images, Work in linux",
                "label" : "docker:image:remove:all",
                "encoding" : "UTF-8",
                "command" : "docker rmi $(docker images -a -q)"
            },
        // only work in linux/mac


        // CONTAINER INFO
        {
            "desc" : "Inspect and View info on container",
            "label" : "docker:container:inspect",
            "encoding" : "UTF-8",
            "command" : "docker container inspect ${select:docker_container_name}"
        },
        {
            "desc" : "Specific property (--format)",
            "label" : "docker:container:inspect:format",
            "encoding" : "UTF-8",
            "command" : "docker container inspect --format '{{ .NetworkSettings.IPAddress }}' ${select:docker_container_name}"
        },
        {
            "desc" : "Performance stats (cpu, mem, network, disk, etc)",
            "label" : "docker:container:stats",
            "os_termial" : true,
            "command" : "docker container stats ${select:docker_container_name}"
        },

        // ACCESSING CONTAINERS
        {
            "desc" : "Start container",
            "label" : "docker:container:start",
            "command" : "docker container start ${select:docker_container_name}"
        },
        {
            "desc" : "Access an already created container, start with -ai",
            "label" : "docker:container:start:attach",
            "os_termial" : true,
            "command" : "docker container start -ai ${select:docker_container_name}"
        },
        {
            "desc" : "Restart container",
            "label" : "docker:container:restart",
            "command" : "docker container restart ${select:docker_container_name}"
        },
        {
            "desc" : "Stop container",
            "label" : "docker:container:stop",
            "encoding" : "UTF-8",
            "command" : "docker container stop ${select:docker_container_name}"
        },
        {
            "desc" : "Remove container (Can not remove running containers, must stop first)",
            "label" : "docker:container:rm",
            "encoding" : "UTF-8",
            "command" : "docker container rm ${select:docker_container_name}"
        },
        {
            "desc" : "To remove a running container use force(-f)",
            "label" : "docker:container:rm:force",
            "encoding" : "UTF-8",
            "command" : "docker container rm -f ${select:docker_container_name}"
        },
        {
            "desc" : "attach shell",
            "label" : "docker:container:exec:attach:shell",
            "os_termial" : true,
            "command" : "docker container exec -it ${select:docker_container_name} /bin/sh -c \"[ -e /bin/bash ] && /bin/bash || /bin/sh\""
        },

        {
            "desc" : "Create and run a container in background",
            "label" : "docker:container:create",
            "encoding" : "UTF-8",
            "command" : "docker container run -it -d --name ${input:new_docker_container_name} ${input:exist_docker_image}"
        },
        {
            "desc" : "Create container on network",
            "label" : "docker:container:create:include_network",
            "encoding" : "UTF-8",
            "command" : "docker container run -it -d --name ${input:docker_container} --network ${input:docker_network_name} ${input:docker_image}"
        },
        {
            // (use sh because it does not include bash)
            // (alpine uses apk for its package manager - can install bash if you want)
            "desc" : "Some docker container example, Alpine is a very small Linux distro good for docker",
            "label" : "docker:container:create:example",
            "encoding" : "UTF-8",
            "command" : "docker container run -it -d --name ${input:new_docker_container_name} ${select:docker_image}"
        },
        {
            "desc" : "NGINX container",
            "label" : "docker:container:create:nginx",
            "encoding" : "UTF-8",
            // (-p 80:80 is optional as it runs on 80 by default)
            // -it : Allocate a pseudo-TTY
            // Error starting userland proxy: mkdir /port/tcp:0.0.0.0:9090:tcp:172.17.0.2:80: input/output error.
            // please restart docker
            // http://127.0.0.1:9090
            "command" : "docker container run -it -d -p 9090:80 --name nginx nginx"
        },
        {
            "desc" : "ubuntu container",
            "label" : "docker:container:create:ubuntu",
            "encoding" : "UTF-8",
            "command" : "docker container run -it -d --name ubuntu ubuntu"
        },
        {
            "desc" : "Alpine container",
            "label" : "docker:container:create:alpine",
            "encoding" : "UTF-8",
            "command" : "docker container run -it -d --name alpine alpine"
        },
        {
            "desc" : "APACHE container",
            "label" : "docker:container:create:apache",
            "encoding" : "UTF-8",
            // http://127.0.0.1:8080
            "command" : "docker container run -it -d -p 8080:80 --name apache httpd"
        },
        {
            "desc" : "MONGODB container",
            "label" : "docker:container:create:mongodb",
            "encoding" : "UTF-8",
            "command" : "docker container run -it -d -p 27017:27017 --name mongo mongo"
        },
        {
            "desc" : "MYSQL container",
            "label" : "docker:example:mysql",
            "encoding" : "UTF-8",
            // docker container run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=True mysql
            "command" : "docker container run -it -d -p 3306:3306 --name mysql --env MYSQL_ROOT_PASSWORD=123456 mysql"
        },

        // NETWORKING
        {
            "desc" : "Get port",
            "label" : "docker:container:port",
            "encoding" : "UTF-8",
            "command" : "docker container port ${select:docker_container_name}"
        },
        {
            "desc" : "List networks",
            "label" : "docker:network:ls",
            "encoding" : "UTF-8",
            "command" : "docker network ls"
        },
        {
            // "bridge" is default
            "desc" : "Inspect network",
            "label" : "docker:network:inspect",
            "encoding" : "UTF-8",
            "command" : "docker network inspect ${input:docker_network_name}"
        },
        {
            "desc" : "Create network",
            "label" : "docker:network:create",
            "encoding" : "UTF-8",
            "command" : "docker network create ${input:docker_network_name}"
        },
        {
            "desc" : "Connect existing container to network",
            "label" : "docker:network:connect:container",
            "encoding" : "UTF-8",
            "command" : "docker network connect ${input:docker_network_name} ${select:docker_container_name}"
        },
        {
            "desc" : "Disconnect container from network",
            "label" : "docker:network:disconnect:container",
            "encoding" : "UTF-8",
            "command" : "docker network disconnect ${input:docker_network_name} ${select:docker_container_name}"
        },

        // IMAGE TAGGING & PUSHING TO DOCKERHUB

        // tags are labels that point ot an image ID

        {
            "desc" : "Retag existing image",
            "label" : "docker:image:tag:retag",
            "command" : "docker image tag ${input:old_docker_image_name} ${input:new_docker_image_name}"
        },

        {
            "desc" : "Upload to dockerhub",
            "label" : "docker:image:push:to_dockerhub",
            "command" : "docker image push ${input:docker_image_tag}"
        },

        {
            "desc" : "docker login",
            "label" : "docker:login",
            "os_termial" : true,
            "command" : "docker login"
        },
        {
            "desc" : "build image build",
            "label" : "docker:image:build",
            "command" : "docker image build -t ${input:REPONAME} ."
        },
        // VOLUMES
        {
            "desc" : "Check volumes",
            "label" : "docker:volume:ls",
            "encoding" : "UTF-8",
            "command" : "docker volume ls"
        },
        {
            "desc" : "Cleanup unused volumes",
            "label" : "docker:volume:prune",
            "os_termial" : true,
            "command" : "docker volume prune"
        },
        // DOCKER COMPOSE
        {
            "desc" : "run in background",
            "label" : "docker-compose:up:background",
            "encoding" : "UTF-8",
            "command" : "docker-compose up -d"
        },
        {
            "desc" : "run in front",
            "label" : "docker-compose:up",
            "os_termial" : true,
            "command" : "docker-compose up"
        },
        {
            "desc" : "To cleanup",
            "label" : "docker-compose:down",
            "encoding" : "UTF-8",
            "command" : "docker-compose down"
        },

    //////////////////////////Docker Command End/////////////////////////////////


    ],
    "custom_env" : {

        "docker_container_name" :[  "nginx", "ubuntu", "alpine", "mongo", "mysql", "apache",
                                    // please add your docker container!
                                ],
        "docker_image" : [  "nginx", "ubuntu", "alpine", "mongo", "mysql", "apache",],
        "docker_port" : "-p 80:80",
    }
}

Docker base command

docker:version

docker version

Client: Docker Engine - Community
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        6247962
 Built:             Sun Feb 10 04:12:31 2019
 OS/Arch:           windows/amd64
 Experimental:      false
Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun Feb 10 04:13:06 2019
  OS/Arch:          linux/amd64
  Experimental:     false

docker image ls

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
alpine                     latest              4d90542f0623        41 hours ago        5.58MB
n-app1                     latest              691ebed3c301        4 weeks ago         1.03GB
mongo                      latest              5976dac61f4f        5 weeks ago         411MB
mongo-express              latest              85c118fcceb3        5 weeks ago         96.9MB
node                       latest              502d06d3bfdf        6 weeks ago         906MB
adminer                    latest              72d8abcace43        3 months ago        83.2MB
mysql                      5.7                 e47e309f72c8        4 months ago        372MB
docker4w/nsenter-dockerd   latest              2f1c802f322f        8 months ago        187kB

docker:container:ls

[2019-06-21 23:05:09][info] docker container ls
[2019-06-21 23:05:09][info] ********************************************************************************
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
328b3bd12a48        mongo               "docker-entrypoint.s…"   4 weeks ago         Up 35 minutes       0.0.0.0:27017->27017/tcp            nodejsapp_mongo_1
b11eb4786e4e        mongo-express       "tini -- /docker-ent…"   4 weeks ago         Up 35 minutes       0.0.0.0:8081->8081/tcp              nodejsapp_mongo-express_1
ffad5a94bb4c        mysql:5.7           "docker-entrypoint.s…"   3 months ago        Up 35 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql_db_1

docker:container:ls:name-only

nginx
n-app1
nodejsapp_mongo_1
nodejsapp_mongo-express_1
mysql_db_1

docker:container:create:nginx

[2019-06-21 23:05:09][info] ********************************************************************************
[2019-06-21 23:05:26][info] docker container run -it -d -p 9090:80 --name nginx nginx
[2019-06-21 23:05:26][info] ********************************************************************************
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
fc7181108d40: Pulling fs layer
c4277fc40ec2: Pulling fs layer
780053e98559: Pulling fs layer
780053e98559: Verifying Checksum
780053e98559: Download complete
c4277fc40ec2: Verifying Checksum
c4277fc40ec2: Download complete
fc7181108d40: Verifying Checksum
fc7181108d40: Download complete
fc7181108d40: Pull complete
c4277fc40ec2: Pull complete
780053e98559: Pull complete
Digest: sha256:bdbf36b7f1f77ffe7bd2a32e59235dff6ecf131e3b6b5b96061c652f30685f3a
Status: Downloaded newer image for nginx:latest
c010a31f462e4259af2b6ad97b270903c8b72324c518e9ccc6b843b2f6df2958

check container and image

docker container ls and docker images nginx

[2019-06-21 23:06:02][info] ********************************************************************************
[2019-06-21 23:06:10][info] docker container ls
[2019-06-21 23:06:10][info] ********************************************************************************
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
c010a31f462e        nginx               "nginx -g 'daemon of…"   9 seconds ago       Up 8 seconds        0.0.0.0:9090->80/tcp                nginx
328b3bd12a48        mongo               "docker-entrypoint.s…"   4 weeks ago         Up 36 minutes       0.0.0.0:27017->27017/tcp            nodejsapp_mongo_1
b11eb4786e4e        mongo-express       "tini -- /docker-ent…"   4 weeks ago         Up 36 minutes       0.0.0.0:8081->8081/tcp              nodejsapp_mongo-express_1
ffad5a94bb4c        mysql:5.7           "docker-entrypoint.s…"   3 months ago        Up 36 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql_db_1
[2019-06-21 23:06:29][info] ********************************************************************************
[2019-06-21 23:06:40][info] docker images nginx
[2019-06-21 23:06:40][info] ********************************************************************************
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              719cd2e3ed04        10 days ago         109MB

docker:container:exec:attach:shell

[2019-06-21 23:06:40][info] ********************************************************************************
[2019-06-21 23:06:49][info] docker container exec -it nginx /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh"

Comments