컨테이너 이름에서 도커 컨테이너 ID 가져 오기


112

컨테이너 이름에서 도커 컨테이너 ID를 가져 오는 명령은 무엇입니까?


4
지금 시도 중입니다. 온라인에서 샘플을 찾을 수 없습니다. 투표 해주셔서 감사합니다. 저는 행복한 사람들을 좋아합니다.
Dimitri Kopriwa 2015

How to Ask를 읽고 재현 가능한 최소한의 예를 제공 해야합니다 . 어떻게 docker --list생겼습니까? 새 컨테이너를 만드는 명령은 무엇입니까? 기타
fedorqui 'SO stop harming'dec.

1
내 질문이 꽤 분명하다고 생각합니다. 투표 해주세요. 최대한 빨리 답변 해 드리겠습니다.
Dimitri Kopriwa 2015

1
내가 bash에서 알고있는 "컨테이너"와 같은 것은 없습니다. 아마도 당신은 도커 컨테이너 를 의미 합니까? 그렇다면 "bash"태그를 보는 사람들은 혼란 스러울 수 있습니다. 그러나 이름에서 컨테이너 ID를 얻습니다. 실제 명령이며 bash 프로그래밍 언어와 관련이 없다고 확신합니다.
djhaskin987 2015

답변:


196

Linux에서 :

sudo docker ps -aqf "name=containername"

또는 OS X, Windows :

docker ps -aqf "name=containername"

containername컨테이너 이름은 어디에 있습니까 ?

@llia Sidorenko가 지적했듯이 오탐을 피하기 위해 다음과 같이 정규식 앵커를 사용할 수 있습니다.

docker ps -aqf "name=^containername$"

설명:

  • -q조용히. ID 만 출력
  • -a모든. 컨테이너가 실행되고 있지 않아도 작동합니다.
  • -f대한 필터 .
  • ^컨테이너 이름은 이 문자열로 시작 해야 합니다.
  • $컨테이너 이름은 이 문자열로 끝나야 합니다.

7
당신이 경우 sudo는 더 이상 리눅스에 필요 :이시 실수를 한단다없는 사람에게 메모 고정 표시기 그룹에 자신을 추가 (추천)
code_monk

9
(. *) 컨테이너 이름 이름 = 컨테이너 이름이 실제로 와일드 카드이며이 이름으로 아무 것도 일치로,이 답변에주의하시기 바랍니다 (*.)
일리아하기 Sidorenko

5
@ekkis는 --no-trunc플래그를 사용합니다 . 그래서docker ps --no-trunc -aqf "name=containername"
code_monk

3
2019-01-07 현재 이것은 저에게 효과가 없었습니다. docker v17.06.0을 사용하고 있습니다. 명령 docker inspect --format="{{.Id}}" imageName은 나를 위해 일했습니다.
PatS

1
@code_monk, 확인 주셔서 감사합니다. 나는 아이디어를 얻은 Rosberg Linhares 답변에 댓글을 추가하고 그의 답변을 정답으로 변경하도록 제안했습니다.
PatS

37

이것을 시도 할 수 있습니다.

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

이 접근 방식은 OS에 독립적입니다.


5
이것은 IMAGE ID NOT CONTAINER ID를 반환합니다
vijay

2
: @vijay, 나를 위해이 컨테이너 ID 제공 https://i.ibb.co/BPwyxDj/Docker-Container-Id.png
로즈버그 리냐 레스

이것은 또한 나에게 컨테이너 ID를 제공합니다. 잘린 처음 12 자뿐만 아니라 전체 컨테이너 ID입니다.
cowlinator

이것을 사랑하십시오! 감사. 👍
GollyJer

@vijay @RosbergLinhares 컨테이너 이름 ( NAMES열에 docker ps)을 제공하면 컨테이너 ID가 제공됩니다. 대신 이미지 이름 (가있는 IMAGE열에 docker ps제공됨)이 제공되면 대신 이미지 ID가 출력됩니다.
Wolfson

12
  1. 실행중인 컨테이너의 컨테이너 ID 가져 오기 ::

    $docker ps -qf "name=IMAGE_NAME"
    
        -f: Filter output based on conditions provided
        -q: Only display numeric container IDs
    
  2. 모든 컨테이너의 컨테이너 ID 가져 오기 ::

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

2
docker ps -fq 그러나 작동하지 docker ps -qf않았다 (플래그 순서)
thom_nic

4

다음 명령 :

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

이 출력을 제공합니다.

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`enter code here`

3

컨테이너 이름을 기반으로 완전한 ContainerId를 얻으려면 다음 명령을 사용하십시오.

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

0

Docker 이미지 검사 ImageName \ ImageId --format = {{ '. ConatinerConfig.Hostname'}}


답변에 대한 설명을 추가하십시오. 코드 전용 (또는이 경우 명령 전용) 답변은 명령이나 코드가 실제로 수행하는 작업을 이해하지 못하는 신규 사용자에게는 도움이되지 않습니다. 이것이 왜 나쁜지에 대한화물 컬트 프로그램을 찾아보십시오.
Max Vollmer 2019

0

제 경우에는 Ubuntu 20.04에서 Tensorflow Docker 컨테이너를 실행하고있었습니다. 하나의 터미널에서 Docker 컨테이너를 실행하고 다음과 같이 실행했습니다.

docker run -it od

그런 다음 다른 터미널을 시작 docker ps하고 sudo로 아래 를 실행했습니다 .

sudo docker ps

성공적으로 컨테이너 ID를 얻었습니다.

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

-2

내가 생각할 수있는 가장 간단한 방법은 docker ps

최신 우분투 이미지를 대화식으로 실행하고 연결해 보겠습니다.

docker run -it ubuntu /bin/bash

docker ps다른 터미널에서 실행 하면 다음과 같은 것을 볼 수 있습니다.

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

안타깝게도이 형식을 구문 분석하는 것은 공백을 사용하여 수동으로 항목을 정렬하기 때문에 쉽지 않습니다.

$ 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@@@@@@

다음은 출력을 JSON으로 변환하는 스크립트입니다.

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

실제로 출력은 그것보다 작업하기가 조금 더 편리합니다. 모든 필드의 너비는 20 자입니다. [['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.