สั่ง Stop container หลายๆ ตัวพร้อมกันด้วยคำสั่งเดียว

DevOps Dec 12, 2019

Docker สามารถที่จะ Stop containers ได้โดยการระบุชื่อ container ไปตรงๆ ได้เลย เช่น docker container stop container_name หรือระบุเป็น ID docker container stop container_id แต่มันสามารถ Stop ได้ทีละตัวเท่านั้น

ถ้าเกิดเรามี Container หลายตัวที่มีชื่อคล้ายกัน เช่น nginx-1, nginx-2 หรือ nginx-3 แล้วเราต้องการ Stop ที่เดียวเลยทำไงดี? ก็พิมพ์

$ docker container stop nginx-1
$ docker container stop nginx-2
$ docker container stop nginx-3

ไปสามรอบเลยไง... ฮาๆ

จะบ้าหรอ...ในวันนี้เราขอเสนอคำสั่งสั้นๆ นำไปใช้งานได้เลย ดังนี้

ดู Contiainers ที่ทำงานก่อน

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
385f96392393        nginx:1.15-alpine   "nginx -g 'daemon of…"   12 minutes ago      Up 12 minutes       80/tcp              nginx-3
0d4eb386dfc5        nginx:1.15-alpine   "nginx -g 'daemon of…"   12 minutes ago      Up 12 minutes       80/tcp              nginx-2
0e58414970f0        nginx:1.15-alpine   "nginx -g 'daemon of…"   12 minutes ago      Up 10 minutes       80/tcp              nginx-1

จะเห็นว่ามีอยู่ 3 อันที่ทำงานอยู่

Stop containers แบบใช้ wild card pattern

ทำการ Stop มันซะด้วยคำสั่ง

$ docker container stop $(docker container ls -q --filter name=nginx*)

โดย name=nginx* ให้เปลี่ยน nginx ได้ตามชื่อ Contianer ที่ต้องการเลย

Happy docker :)

Arnon Kijlerdphon

IT manager & DevOps @Twin Synergy Co.,Ltd

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.