Lệnh để lấy id vùng chứa docker từ tên vùng chứa là gì?
docker --list
hay 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 --list
hay 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"
containername
tê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-a
cho tất cả. hoạt động ngay cả khi vùng chứa của bạn không chạy-f
cho 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-trunc
cờ. 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.
NAMES
cộ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 IMAGE
cộ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 ps
vớ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 ps
trong 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]]