2015-12-28 48 views
30

Lệnh để lấy id vùng chứa docker từ tên vùng chứa là gì?Lấy id vùng chứa docker từ tên vùng chứa

+1

Tôi đang cố gắng ngay bây giờ, không thể tìm thấy bất kỳ mẫu trực tuyến nào. cảm ơn vì đã bình chọn, tôi thích những người hạnh phúc. – BigDong

+0

Bạn nên đọc [hỏi] và cung cấp [mcve].Làm thế nào để 'docker --list' hoặc tương tự như thế nào? Lệnh để tạo vùng chứa mới là gì? vv – fedorqui

+0

Tôi nghĩ câu hỏi của tôi khá rõ ràng, hãy bỏ phiếu cho tôi sẽ trả lời càng sớm càng tốt. – BigDong

Trả lời

63

Trong Linux:

sudo docker ps -aqf "name=containername" 

Hoặc trong OS X:

docker ps -aqf "name=containername" 

nơi containername là tên container của bạn

giải thích:

  • -q để yên tĩnh. chỉ xuất ra ID
  • -a cho tất cả. hoạt động ngay cả khi vùng chứa của bạn không hoạt động
  • -f cho filter.
+0

hoạt động như một sự quyến rũ. cảm ơn ! – BigDong

+1

một lưu ý cho bất kỳ ai gặp phải điều này: sudo không còn cần thiết trên linux nếu bạn [thêm mình vào nhóm docker] (https://docs.docker.com/engine/installation/linux/ubuntulinux/#/create- a-docker-group) (rất khuyến khích) –

+2

Hãy cẩn thận với câu trả lời này, vì name = containsername thực sự là một ký tự đại diện và nó sẽ khớp với bất kỳ thứ gì có tên (. *) chứa tên (. *) –

-1

Cách đơn giản nhất tôi có thể nghĩ là để phân tích đầu ra của docker ps

Hãy chạy hình ảnh ubuntu mới nhất một cách tương tác và kết nối với nó

docker run -it ubuntu /bin/bash 

Nếu bạn chạy docker ps trong thiết bị đầu cuối khác, bạn có thể thấy một cái gì đó như

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

Thật không may, phân tích định dạng này không dễ dàng vì chúng sử dụng khoảng trắng theo cách thủ công lign stuff

$ sudo docker ps | sed -e 's/ /@/g' 
[email protected]@@@@@@@@[email protected]@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@[email protected]@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@NAMES 
[email protected]@@@@@@@ubuntu:[email protected]@@@@@@"/bin/bash"@@@@@@@@@[email protected]@[email protected]@@@@@[email protected]@[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@ 

Đây là tập lệnh chuyển đổi đầu ra thành JSON.

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

Trên thực tế, sản lượng là thuận tiện hơn một chút để làm việc với hơn thế. Mỗi trường rộng 20 ký tự. [['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]

3
  1. Nhận chứa Id của container chạy ::

    $docker ps -qf "name=IMAGE_NAME" 
    
        -f: Filter output based on conditions provided 
        -q: Only display numeric container IDs 
    
  2. Nhận chứa Id của tất cả các container ::

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

'docker ps -fq' không hoạt động tuy nhiên 'docker ps -qf' đã làm (thứ tự cờ) –

+0

Tôi đã sửa nó ...... – jcollum

0

Nếu bạn muốn nhận được ContainerId hoàn chỉnh dựa trên tên vùng chứa, sau đó sử dụng lệnh sau

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

Bạn có thể thử này:

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

Cách tiếp cận này là hệ điều hành độc lập.

Các vấn đề liên quan