컨테이너 이름에서 도커 컨테이너 ID 가져오기
컨테이너 이름에서 도커 컨테이너 ID를 가져오는 명령은 무엇입니까?
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
필터용.^
컨테이너 이름은 이 문자열로 시작해야 합니다.$
컨테이너 이름은 이 문자열로 끝나야 합니다.
사용해 볼 수 있습니다.
docker inspect --format="{{.Id}}" container_name
이 접근 방식은 OS에 의존하지 않습니다.
다음 명령을 사용하여 컨테이너 ID를 인쇄할 수 있습니다.
docker container ls | grep 'container-name' | awk '{print $1}'
컨테이너 이름을 사용하여 컨테이너에 로그인하려면 보너스 포인트로 다음 작업을 수행합니다.
docker exec -it $(docker container ls | grep 'container-name' | awk '{print $1}') /bin/bash
실행 중인 컨테이너의 컨테이너 ID를 가져옵니다.:
$docker ps -qf "name=IMAGE_NAME" -f: Filter output based on conditions provided -q: Only display numeric container IDs
모든 컨테이너의 컨테이너 ID를 가져옵니다.:
$docker ps -aqf "name=IMAGE_NAME" -a: all containers
다음 명령:
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
컨테이너 이름을 기준으로 완전한 ContainerId를 가져오려면 다음 명령을 사용합니다.
docker ps --no-trunc -aqf name=containername
나의 경우, 나는 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
https://stackoverflow.com/a/65513726/889126, 의 답변에 감사드립니다. 그것은 저에게 완전한 bash 스크립트를 있는 그대로 만들 수 있는 아이디어를 주었습니다.
export api_image_id=$(docker inspect --format="{{.Id}}" <image-name> | sed '/^[[:space:]]*$/d')
sudo docker exec -i -t ${api_image_id} /bin/bash
저는 특정 컨테이너가 필요하고 빠른 시각으로 그 컨테이너에서 정보를 추출할 스크립트를 만듭니다.
이것이 다른 사람들에게 도움이 되기를 바랍니다.
컨테이너 ID 및 이미지 ID를 가지려면 -
$ docker container ls -a | awk 'NR>1 {print $1, $2}'
나는 노력했다.sudo docker container stats
그리고 그것은 컨테이너 ID와 함께 메모리 사용 내역, 이름 등을 알려줄 것입니다.프로세스 보기를 중지하려면 다음을 수행합니다.Ctrl+C
도움이 되길 바랍니다.
저는 또한 스크립트가 컨테이너에 부착하기 위해 필요한 컨테이너 이름 또는 ID가 필요합니다.약간의 조정이 필요했지만 이것은 나에게 완벽하게 잘 작동합니다...
export svr=$(docker ps --format "table {{.ID}}"| sed 's/CONTAINER ID//g' | sed '/^[[:space:]]*$/d')
docker exec -it $svr bash
컨테이너 ID라는 단어도 출력된다는 사실을 없애기 위해 sed 명령어가 필요합니다... 하지만 저는 단지 var에 저장된 실제 ID가 필요합니다.
도커 이미지 검사 이미지 이름\ImageId --format=filename'입니다.ConatinerConfig.호스트 이름'}}
내가 생각할 수 있는 가장 간단한 방법은 출력을 구문 분석하는 것입니다.docker ps
최신 Ubuntu 이미지를 대화형으로 실행하고 연결합니다.
docker run -it ubuntu /bin/bash
실행하는 경우docker ps
▁like다▁something▁you와 같은 것을 볼 수 .
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]]
언급URL : https://stackoverflow.com/questions/34496882/get-docker-container-id-from-container-name
'programing' 카테고리의 다른 글
클라이언트 브라우저에 알림 푸시 (0) | 2023.09.07 |
---|---|
sqalchemy 엔진이 제공된 IP 대신 127.0.0.1에 연결하려고 합니다. (0) | 2023.09.07 |
구글의 콜라브에서 파이썬 패키지를 어떻게 설치합니까? (0) | 2023.09.02 |
PowerShell의 사용 권한 오류 (0) | 2023.09.02 |
Excel VBA 런타임 오류 '32809' - 이해하려고 합니다. (0) | 2023.09.02 |