Lệnh để lấy id vùng chứa docker từ tên vùng chứa là gì?
docker --listhay cái nhìn tương tự như thế nào? Lệnh tạo vùng chứa mới là gì? vv
Lệnh để lấy id vùng chứa docker từ tên vùng chứa là gì?
docker --listhay cái nhìn tương tự như thế nào? Lệnh tạo vùng chứa mới là gì? vv
Câu trả lời:
Trong Linux:
sudo docker ps -aqf "name=containername"
Hoặc trong OS X, Windows:
docker ps -aqf "name=containername"
containernametên vùng chứa của bạn ở đâu .
Để tránh nhận được kết quả dương tính giả, như @llia Sidorenko lưu ý, bạn có thể sử dụng các neo regex như sau:
docker ps -aqf "name=^containername$"
giải trình:
-qđể yên tĩnh. chỉ xuất ID-acho tất cả. hoạt động ngay cả khi vùng chứa của bạn không chạy-fcho bộ lọc .^tên vùng chứa phải bắt đầu bằng chuỗi này$tên vùng chứa phải kết thúc bằng chuỗi này--no-trunccờ. sodocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageNameđã làm việc cho tôi.
Bạn có thể thử điều này:
docker inspect --format="{{.Id}}" container_name
Cách tiếp cận này độc lập với hệ điều hành.
NAMEScột với docker ps), nó sẽ cung cấp ID vùng chứa. Nếu tên hình ảnh (được cung cấp trong IMAGEcột với docker ps) được cung cấp thay thế, nó sẽ xuất ra ID hình ảnh thay thế.
Nhận id vùng chứa của các vùng chứa đang chạy ::
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
Nhận id vùng chứa của tất cả các vùng chứa ::
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
docker ps -fq không hoạt động tuy nhiên docker ps -qfđã làm (thứ tự của cờ)
Lệnh sau:
docker ps --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | Image: {{.Image}} | Ports: {{.Ports}}'
Cung cấp đầu ra này:
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`
Nếu bạn muốn nhận được ContainerId hoàn chỉnh dựa trên tên Vùng chứa thì hãy sử dụng lệnh sau
docker ps --no-trunc -aqf name=containername
Hình ảnh Docker kiểm tra ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
Trong trường hợp của tôi, tôi đang chạy vùng chứa Tensorflow Docker trong Ubuntu 20.04: Chạy vùng chứa docker của bạn trong Một thiết bị đầu cuối, tôi đã chạy nó với
docker run -it od
Và sau đó bắt đầu một thiết bị đầu cuối khác và chạy bên dưới docker psvới sudo:
sudo docker ps
Tôi đã nhận thành công id vùng chứa:
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e4ca1ad20b84 od "/bin/bash" 18 minutes ago
Up 18 minutes unruffled_stonebraker
Cách đơn giản nhất tôi có thể nghĩ ra là phân tích cú pháp đầ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 pstrong một 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 cú pháp định dạng này không dễ dàng vì chúng sử dụng dấu cách để căn chỉnh thủ công nội dung
$ 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@@@@@@
Đây là một tập lệnh chuyển đổi đầu ra thành JSON.
https://gist.github.com/mminer/a08566f13ef687c17b39
Trên thực tế, đầu ra thuận tiện hơn một chút để làm việc 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]]