Get Docker container id from container name

Docker

Docker Problem Overview


What is the command to get the Docker container id from the container name?

Docker Solutions


Solution 1 - Docker

In Linux:

sudo docker ps -aqf "name=containername"

Or in OS X, Windows:

docker ps -aqf "name=containername"

where containername is your container name.

To avoid getting false positives, as @llia Sidorenko notes, you can use regex anchors like so:

docker ps -aqf "name=^containername$"

explanation:

  • -q for quiet. output only the ID
  • -a for all. works even if your container is not running
  • -f for filter.
  • ^ container name must start with this string
  • $ container name must end with this string

Solution 2 - Docker

You can try this:

docker inspect --format="{{.Id}}" container_name

This approach is OS independent.

Solution 3 - Docker

  1. Get container Ids of running containers ::

     $docker ps -qf "name=IMAGE_NAME"
    
         -f: Filter output based on conditions provided
         -q: Only display numeric container IDs
    
  2. Get container Ids of all containers ::

     $docker ps -aqf "name=IMAGE_NAME"
    
         -a: all containers
    

Solution 4 - Docker

The following command:

docker ps --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | Image:  {{.Image}} |  Ports: {{.Ports}}'

Gives this output:

CONTAINER ID : d8453812a556 | Name: peer0.ORG2.ac.ae | Image:  hyperledger/fabric-peer:1.4 |  Ports: 0.0.0.0:27051->7051/tcp, 0.0.0.0:27053->7053/tcp
CONTAINER ID : d11bdaf8e7a0 | Name: peer0.ORG1.ac.ae | Image:  hyperledger/fabric-peer:1.4 |  Ports: 0.0.0.0:17051->7051/tcp, 0.0.0.0:17053->7053/tcp
CONTAINER ID : b521f48a3cf4 | Name: couchdb1 | Image:  hyperledger/fabric-couchdb:0.4.15 |  Ports: 4369/tcp, 9100/tcp, 0.0.0.0:5985->5984/tcp
CONTAINER ID : 14436927aff7 | Name: ca.ORG1.ac.ae | Image:  hyperledger/fabric-ca:1.4 |  Ports: 0.0.0.0:7054->7054/tcp
CONTAINER ID : 9958e9f860cb | Name: couchdb | Image:  hyperledger/fabric-couchdb:0.4.15 |  Ports: 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp
CONTAINER ID : 107466b8b1cd | Name: ca.ORG2.ac.ae | Image:  hyperledger/fabric-ca:1.4 |  Ports: 0.0.0.0:7055->7054/tcp
CONTAINER ID : 882aa0101af2 | Name: orderer1.o1.ac.ae | Image:  hyperledger/fabric-orderer:1.4 |  Ports: 0.0.0.0:7050->7050/tcp

Solution 5 - Docker

If you want to get complete ContainerId based on Container name then use following command

 docker ps --no-trunc -aqf name=containername

Solution 6 - Docker

You could use the following command to print the container id:

docker container ls  | grep 'container-name' | awk '{print $1}'

As a bonus point, if you want to login to the container with a container name:

docker exec -it $(docker container ls  | grep 'container-name' | awk '{print $1}') /bin/bash

Solution 7 - Docker

In my case I was running Tensorflow Docker container in Ubuntu 20.04 :Run your docker container in One terminal , I ran it with

docker run -it od

And then started another terminal and ran below docker ps with sudo:

sudo docker ps

I successfully got container id:

CONTAINER ID        IMAGE               COMMAND             CREATED             
STATUS              PORTS               NAMES
e4ca1ad20b84        od                  "/bin/bash"         18 minutes ago      
Up 18 minutes                           unruffled_stonebraker

Solution 8 - Docker

Thanks for the answer of https://stackoverflow.com/a/65513726/889126, it gave me an idea to make a complete bash script as it is

export api_image_id=$(docker inspect --format="{{.Id}}" <image-name> | sed '/^[[:space:]]*$/d')

sudo docker exec -i -t ${api_image_id} /bin/bash

I need a specific container and make a script to extract some info from it in a quick sight.

Hope this would help others.

Solution 9 - Docker

I tried sudo docker container stats, and it will give out Container ID along with details of memory usage and Name, etc. If you want to stop viewing the process, do Ctrl+C. I hope you find it useful.

Solution 10 - Docker

I also need the container name or Id which a script requires to attach to the container. took some tweaking but this works perfectly well for me...

export svr=$(docker ps --format "table {{.ID}}"| sed 's/CONTAINER ID//g' | sed '/^[[:space:]]*$/d')
docker exec -it $svr bash

The sed command is needed to get rid of the fact that the words CONTAINER ID gets printed too ... but I just need the actual id stored in a var.

Solution 11 - Docker

To have container id and image Id -

$ docker container ls -a | awk 'NR>1 {print $1, $2}'

Solution 12 - Docker

Docker image inspect ImageName\ImageId --format={{'.ConatinerConfig.Hostname'}}

Solution 13 - Docker

The simplest way I can think of is to parse the output of docker ps

Let's run the latest ubuntu image interactively and connect to it

docker run -it ubuntu /bin/bash

If you run docker ps in another terminal you can see something like

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8fddbcbb101c        ubuntu:latest       "/bin/bash"         10 minutes ago      Up 10 minutes                           gloomy_pasteur

Unfortunately, parsing this format isn't easy since they uses spaces to manually align stuff

$ sudo docker ps | sed -e 's/ /@/g'
CONTAINER@ID@@@@@@@@IMAGE@@@@@@@@@@@@@@@COMMAND@@@@@@@@@@@@@CREATED@@@@@@@@@@@@@STATUS@@@@@@@@@@@@@@PORTS@@@@@@@@@@@@@@@NAMES
8fddbcbb101c@@@@@@@@ubuntu:latest@@@@@@@"/bin/bash"@@@@@@@@@13@minutes@ago@@@@@@Up@13@minutes@@@@@@@@@@@@@@@@@@@@@@@@@@@gloomy_pasteur@@@@@@

Here is a script that converts the output to JSON.

https://gist.github.com/mminer/a08566f13ef687c17b39

Actually, the output is a bit more convenient to work with than that. Every field is 20 characters wide. [['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDimitri KopriwaView Question on Stackoverflow
Solution 1 - Dockercode_monkView Answer on Stackoverflow
Solution 2 - DockerRosberg LinharesView Answer on Stackoverflow
Solution 3 - Dockerkalyani chaudhariView Answer on Stackoverflow
Solution 4 - DockerSidharth SrivastavaView Answer on Stackoverflow
Solution 5 - DockerGirdhar Singh RathoreView Answer on Stackoverflow
Solution 6 - Dockersrth12View Answer on Stackoverflow
Solution 7 - DockerImranView Answer on Stackoverflow
Solution 8 - DockerOsifyView Answer on Stackoverflow
Solution 9 - Dockerhp77View Answer on Stackoverflow
Solution 10 - DockerSaabir MohamedView Answer on Stackoverflow
Solution 11 - DockerSaurav KarmakarView Answer on Stackoverflow
Solution 12 - Dockerrajat shuklaView Answer on Stackoverflow
Solution 13 - DockerGreg NisbetView Answer on Stackoverflow