วิธีแสดงรายการคอนเทนเนอร์ใน Docker


965

มีคำสั่งให้กับภาพรายการเป็นแต่มีไม่ดูเหมือนจะเป็นที่สอดคล้องกันdocker imagesdocker containers

นอกเหนือจากการรูทและมองเข้าไปที่/var/lib/dockerนั่นดูเหมือนจะไม่มีทางทำเช่นนั้นได้ ฉันพลาดอะไรไปรึเปล่า? นั่นเป็นสิ่งที่เราไม่ควรทำใช่หรือไม่


คำถามที่คล้ายกันใน Stack Overflow stackoverflow.com/questions/38464549/…
Yogesh

คำตอบ:


1639

หากต้องการแสดงเฉพาะคอนเทนเนอร์ที่ใช้งานอยู่ให้ใช้คำสั่งที่กำหนด:

docker ps

เพื่อแสดงคอนเทนเนอร์ทั้งหมดใช้คำสั่งที่กำหนด:

docker ps -a

ในการแสดงคอนเทนเนอร์ที่สร้างล่าสุด (รวมถึงสถานะทั้งหมด) ให้ใช้คำสั่งที่กำหนด:

docker ps -l

หากต้องการแสดงn คอนเทนเนอร์ที่สร้างล่าสุด (รวมถึงสถานะทั้งหมด) ให้ใช้คำสั่งที่กำหนด:

docker ps -n=-1

ในการแสดงขนาดไฟล์ทั้งหมดให้ใช้คำสั่งที่ระบุ:

docker ps -s

เนื้อหาที่นำเสนอข้างต้นเป็นจากdocker.com

ใน Docker เวอร์ชันใหม่คำสั่งจะถูกอัพเดตและคำสั่งการจัดการบางอย่างจะถูกเพิ่ม:

docker container ls

มันถูกใช้เพื่อแสดงรายการคอนเทนเนอร์ทั้งหมดที่กำลังทำงานอยู่

docker container ls -a

ถ้าคุณต้องการทำความสะอาดทั้งหมด

docker rm $(docker ps -aq)

มันถูกใช้เพื่อแสดงรายการคอนเทนเนอร์ทั้งหมดที่สร้างโดยไม่คำนึงถึงสถานะของมัน

และเพื่อหยุดภาชนะ Docker ทั้งหมด (บังคับ)

docker rm -f $(docker ps -a -q)  

นี่คอนเทนเนอร์คือคำสั่งการจัดการ


@RutgerHofste ทั้งคำสั่ง ( docker rmและdocker ps) จะปรากฏขึ้นในความช่วยเหลือของนักเทียบท่า
มันช์กิน

10
อีกวิธีหนึ่งที่เป็นประโยชน์ในการทำความสะอาดรายการที่ไม่จำเป็นทั้งหมดเช่นภาชนะบรรจุที่ห้อยภาพที่ไม่ได้ใช้บันทึก ฯลฯ docker system prune --allโดยใช้ คุณสามารถหาเอกสารนักเทียบท่าได้ที่นี่
อรุณธัญญ์แซลเซนดรัน

หลังจากที่รูปภาพถูกดึงแล้ว ps -a จะไม่แสดงรายการนั้น ดูเหมือนว่าคุณจะสามารถแสดงภาพที่ทำงานอย่างน้อยหนึ่งครั้งได้หรือไม่
ftravers

docker psแสดงรายการคอนเทนเนอร์ที่กำลังทำงานและหยุดชั่วคราวทั้งหมด ในการแสดงเฉพาะรายการที่กำลังดำเนินการ:docker ps --filter="status=running"
WindyFields

@ftravers docker psแสดงเฉพาะข้อมูลเกี่ยวกับคอนเทนเนอร์ สิ่งที่คุณต้องการคือข้อมูลเกี่ยวกับภาพ คุณสามารถดูภาพในเครื่องทั้งหมดโดยใช้docker imagesคำสั่ง
Lappro

141

เพื่อแสดงรายการคอนเทนเนอร์ที่รันและหยุดทั้งหมด

docker ps -a

หากต้องการแสดงรายการคอนเทนเนอร์ทั้งหมดที่กำลังทำงานอยู่ (เพียงระบุตัวเลือกที่ชัดเจนและตัวอย่างการใช้ตัวเลือกการกรอง -f)

docker ps -a -f status=running

หากต้องการแสดงรายการคอนเทนเนอร์ที่หยุดทำงานและหยุดทำงานทั้งหมดให้แสดงเฉพาะ ID คอนเทนเนอร์ของพวกเขา

docker ps -aq

หากต้องการลบคอนเทนเนอร์ทั้งหมดที่ไม่ได้ทำงานอยู่

docker rm `docker ps -aq -f status=exited`

32

โปรดทราบว่าบางครั้งที่ผ่านมามีการปรับปรุงคำสั่งนี้ จะไม่แสดงขนาดคอนเทนเนอร์ตามค่าเริ่มต้น (เนื่องจากค่อนข้างแพงสำหรับคอนเทนเนอร์ที่ใช้งานจำนวนมาก) ใช้docker ps -sเพื่อแสดงขนาดภาชนะเช่นกัน


ตามคำตอบของ mrh ด้านล่างคุณจะต้องใช้ -a เพื่อดูตู้คอนเทนเนอร์ที่ไม่ได้ใช้งาน (น่าจะเป็นกรณีสำหรับผู้ที่คุณต้องการลบ) ดังนั้นคำสั่งสุดท้ายคือdocker ps -as(อย่าลืมเตรียมไว้ก่อนsudoถ้า ภูตกำลังทำงานในฐานะรูท)
Anthony DiSanti

21

นักเทียบท่า ps -s จะแสดงขนาดของคอนเทนเนอร์ที่รันอยู่เท่านั้น

เพื่อตรวจสอบขนาดของภาชนะทั้งหมดที่ใช้ docker ps -as


19

นอกจากนี้ยังมีตัวเลือกต่อไปนี้:

docker container ls
docker container ls -a
# --all, -a
# Show all containers (default shows just running)

ตั้งแต่: 1.13.0 (2017-01-18) :

ปรับโครงสร้างคำสั่ง CLI โดยการเพิ่มdocker imageและdocker containerคำสั่งเพื่อความสอดคล้องมากขึ้น# 26025

และตามที่ระบุไว้ที่นี่: ขอแนะนำ Docker 1.13ผู้ใช้ควรใช้ไวยากรณ์ใหม่:

ปรับโครงสร้าง CLI

ใน Docker 1.13 เราจัดกลุ่มคำสั่งทุกคำสั่งเพื่อให้อยู่ภายใต้วัตถุลอจิคัลที่โต้ตอบกับมัน ตัวอย่างlistและstartบรรจุอยู่ในขณะนี้ subcommands ของdocker containerและเป็นของhistory subcommanddocker image

การเปลี่ยนแปลงเหล่านี้ให้เราทำความสะอาดไวยากรณ์ Docker CLI ปรับปรุงข้อความช่วยเหลือและทำให้ Docker ใช้งานง่ายขึ้น ไวยากรณ์คำสั่งเก่ายังคงได้รับการสนับสนุน แต่เราขอแนะนำให้ทุกคนที่จะนำมาใช้ไวยากรณ์ใหม่


1
ข้อมูลที่ดีความอัปยศที่docker --helpมีอินเทอร์เฟซที่แนะนำ 3 หน้าย้อนกลับไปในผลลัพธ์ของมันซ่อนอยู่ก่อนคำสั่งเลิกใช้!
danio

13

ในการแสดงรายการเฉพาะคอนเทนเนอร์ SHA1:

docker ps -aq --no-trunc

ด้วยวิธีนี้คุณสามารถใช้รายการคอนเทนเนอร์ทั้งหมดสำหรับคำสั่งอื่น ๆ (ซึ่งยอมรับพารามิเตอร์หลายคอนเทนเนอร์เป็นพารามิเตอร์)

ตัวอย่างเช่นการแสดงรายการเท่านั้นชื่อของภาชนะบรรจุทั้งหมด (ตั้งแต่docker psรายการเฉพาะชื่อของพวกเขาด้วยข้อมูลอื่น ๆ ):

docker inspect --format='{{.Name}}' $(sudo docker ps -aq --no-trunc)

13

ชุดคำสั่ง Docker นั้นเรียบง่ายและถือได้ดี:

docker stack ls
docker service ls
docker image ls
docker container ls

การสอนชื่อแทนก่อนทำให้เกิดความสับสน เมื่อคุณเข้าใจว่าเกิดอะไรขึ้นพวกเขาสามารถบันทึกการกดแป้นบางอย่าง:

docker images -> docker image ls
docker ps -> docker container ls
docker rmi -> docker image rm
docker rm -> docker container rm

มีนามแฝงหลายตัวใน Docker ตัวอย่างเช่น

docker rmi
docker image rm
docker image rmi
docker image remove

เป็นคำสั่งเดียวกันทั้งหมด (ดูตัวคุณเองโดยใช้docker help image rm)


4

มีหลายวิธีในการแสดงรายการคอนเทนเนอร์ทั้งหมด

คุณสามารถค้นหาได้โดยใช้ 3 นามแฝงls, ps, listเช่นนี้

sudo docker container ls 
sudo docker container ps
sudo docker container list
sudo docker ps
sudo docker ps -a

[option]นอกจากนี้คุณยังสามารถใช้ตัวเลือกให้

ตัวเลือก -:

  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display numeric IDs
  -s, --size            Display total file sizes

คุณสามารถใช้ตัวเลือกเช่นนี้:

sudo docker ps //Showing only running containers
sudo docker ps -a //All container (running + stopped)
sudo docker pa -l // latest
sudo docker ps -n <int valuse 1,2,3 etc>// latest number of created containers
sudo docker ps -s // Display container with size
sudo docker ps -q // Only display numeric IDs for containers
docker docker ps -a | tail -n 1 //oldest container

3

เพื่อแสดงเฉพาะภาชนะที่ใช้งาน

docker ps

เพื่อแสดงตู้คอนเทนเนอร์ทั้งหมด (รวมถึงสถานะทั้งหมด)

docker ps -a

หากต้องการแสดงคอนเทนเนอร์ที่สร้างล่าสุด (รวมถึงสถานะทั้งหมด)

docker ps -l

เพื่อแสดง n คอนเทนเนอร์ที่สร้างล่าสุด (รวมถึงสถานะทั้งหมด)

docker ps -n=-1

เพื่อแสดงขนาดไฟล์ทั้งหมด

docker ps -s

ใน Docker เวอร์ชันใหม่คำสั่งจะถูกอัพเดตและคำสั่งการจัดการบางอย่างจะถูกเพิ่ม:

docker container ls

แสดงรายการคอนเทนเนอร์ที่ใช้งานอยู่ทั้งหมด

docker container ls -a


3

รายการภาชนะที่ใช้ : -

$ docker ps

แสดงรายการคอนเทนเนอร์ทั้งหมด : -

$ docker ps -a

รายการเฉพาะคอนเทนเนอร์ที่หยุด : -

$ docker ps --filter "status=exited"

หรือ

$ docker ps -f "status=exited"


คำสั่งเหล่านี้โพสต์ไปแล้วหลายครั้ง - อะไรคือสาเหตุของการทำซ้ำคำตอบอื่น ๆ
Nico Haase

2

เป็นวิธีที่สะดวกในการรับ n = 5 ตู้คอนเทนเนอร์ (ไม่ว่าจะรันหรือไม่ก็ตาม):

$ docker container ls -a -n5

2

ใช้docker container lsเพื่อแสดงรายการคอนเทนเนอร์ที่ใช้งานอยู่ทั้งหมด

ใช้การตั้งค่าสถานะ-aเพื่อแสดงคอนเทนเนอร์ทั้งหมด (ไม่ใช่แค่ทำงาน) กล่าวคือdocker container ls -a

ใช้แฟล็ก-qเพื่อแสดงคอนเทนเนอร์และรหัสตัวเลข กล่าวคือdocker container ls -q

เยี่ยมชมเอกสารประกอบเพื่อเรียนรู้ตัวเลือกที่มีทั้งหมดสำหรับคำสั่งนี้


1

ฉันได้รับข้อความแสดงข้อผิดพลาดCannot connect to the Docker daemon.ฉันลืมว่าฉันใช้ daemon เป็น root และต้องการsudo:

$ sudo docker ps

1
alias docker="sudo --group docker docker"
ctrl-alt-delor

1
docker ps [OPTIONS]

คำสั่งต่อไปนี้จะแสดงเฉพาะการเรียกใช้คอนเทนเนอร์ตามค่าเริ่มต้น

docker ps

วิธีดูตู้คอนเทนเนอร์ทั้งหมด:

docker ps -a

สำหรับแสดงคอนเทนเนอร์ที่สร้างล่าสุด:

docker ps -l
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.