Docker / Үндсэн команд (run, ps, stop, rm)

Үндсэн команд (run, ps, stop, rm)

Docker-ийн өдөр тутмын ажилд хамгийн их хэрэглэгддэг командуудыг нарийвчлан үзье.

docker ps — container жагсаах

bash
# Зөвхөн ажиллаж байгаа container-ууд
docker ps

# Бүх container (зогссон, устгагдах хүлээж байгаа)
docker ps -a

# Зөвхөн container ID-уудыг харуулах
docker ps -q

Гаралтын баганууд:

код
CONTAINER ID   IMAGE     COMMAND     CREATED        STATUS         PORTS     NAMES
7b3c2a1f9e8d   nginx     "nginx…"    2 minutes ago  Up 2 minutes   80/tcp    my-nginx
  • CONTAINER ID — Богино хэлбэрийн өвөрмөц танигч
  • IMAGE — Ашигласан image
  • STATUSUp (ажиллаж байна) эсвэл Exited (зогссон)
  • PORTS — Нээлттэй port-ууд
  • NAMES — Container-ийн нэр

docker stop / start / restart

bash
# Container зогсоох (graceful — SIGTERM дохио илгээнэ)
docker stop my-nginx

# Container эхлүүлэх (зогссон container-ийг)
docker start my-nginx

# Container дахин эхлүүлэх
docker restart my-nginx

# Хэд хэдэн container нэгэн зэрэг зогсоох
docker stop container1 container2 container3

docker stop нь эхлээд SIGTERM дохио илгээж, 10 секунд хүлээнэ. Хэрэв зогсохгүй бол SIGKILL илгээнэ.

Яаралтай зогсооход:

bash
docker kill my-nginx

docker rm — container устгах

bash
# Зогссон container устгах
docker rm my-nginx

# Ажиллаж байгаа container устгах (force)
docker rm -f my-nginx

# Бүх зогссон container устгах
docker container prune

# Бүх зогссон container-ийн ID авч устгах
docker rm $(docker ps -aq)

Анхаар: Container устгах нь image-ийг устгахгүй. Зөвхөн тэр container-ийн жишээ устна.

docker logs — log харах

bash
# Container-ийн log харах
docker logs my-nginx

# Сүүлийн 50 мөр
docker logs --tail 50 my-nginx

# Шинэ log-ийг бодит цаг хугацаанд дагах (-f = follow)
docker logs -f my-nginx

# Цаг хугацааны тэмдэгтэй харах
docker logs -t my-nginx

Хөгжүүлэлтэд -f флаг маш хэрэгтэй — аппликейшн ажиллаж байхад log-ийг шууд харж болно.

docker exec — ажиллаж байгаа container-д команд ажиллуулах

bash
# Container доторх команд ажиллуулах
docker exec my-nginx ls /etc/nginx

# Interactive shell нээх
docker exec -it my-nginx bash

# Shell байхгүй image-д (Alpine)
docker exec -it my-alpine sh

# Тодорхой хэрэглэгчээр нэвтрэх
docker exec -it --user root my-nginx bash

docker exec нь ажиллаж байгаа container-д л ажиллана. Зогссон container-д docker start хийсний дараа ашиглана.

docker images — image жагсаах

bash
# Бүх image жагсаах
docker images

# Тодорхой image хайх
docker images ubuntu

# Зөвхөн ID жагсаах
docker images -q

Гаралт:

код
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    e4720093a3c1   2 weeks ago    187MB
ubuntu       22.04     08d22c0ceb15   3 weeks ago    77.8MB
alpine       latest    05455a08881e   5 weeks ago    7.38MB

docker rmi — image устгах

bash
# Image устгах
docker rmi nginx

# Tag-аар устгах
docker rmi ubuntu:22.04

# Ашиглагдаагүй бүх image устгах
docker image prune

# Бүх image устгах (болгоомжтой!)
docker rmi $(docker images -q)

Container ашиглаж байгаа image-ийг устгах боломжгүй — эхлээд container устгах хэрэгтэй.

docker pull — image татах

bash
# Docker Hub-аас image татах
docker pull ubuntu

# Тодорхой хувилбар татах
docker pull node:20-alpine

# Бүх tag татах
docker pull --all-tags nginx

docker run нь image байхгүй бол автоматаар pull хийдэг. Урьдчилан татахад docker pull ашиглана.

Бүгдийг цэвэрлэх

Хөгжүүлэлтийн явцад container, image, volume хуримтлагдана. Нэг дор цэвэрлэхэд:

bash
# Ашиглагдаагүй бүгдийг устгах (container, network, image, cache)
docker system prune

# Volume-г ч устгах
docker system prune --volumes

# Дискний ашиглалт харах
docker system df

Хурдан лавлах хүснэгт

| Команд | Тайлбар | | ------------------------- | -------------------------------- | | docker ps | Ажиллаж байгаа container жагсаах | | docker ps -a | Бүх container жагсаах | | docker stop NAME | Container зогсоох | | docker start NAME | Container эхлүүлэх | | docker restart NAME | Container дахин эхлүүлэх | | docker rm NAME | Container устгах | | docker rm -f NAME | Ажиллаж байгаа container устгах | | docker logs NAME | Log харах | | docker logs -f NAME | Log дагах (бодит цаг) | | docker exec -it NAME sh | Container дотор shell нээх | | docker images | Image жагсаах | | docker rmi IMAGE | Image устгах | | docker system prune | Ашиглагдаагүй зүйлс устгах |

Дараагийн хичээлд:

Dockerfile бичиж өөрийн image үүсгэх үндэс суурийг судална.