Үндсэн команд (run, ps, stop, rm)
Docker-ийн өдөр тутмын ажилд хамгийн их хэрэглэгддэг командуудыг нарийвчлан үзье.
docker ps — container жагсаах
# Зөвхөн ажиллаж байгаа 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
- STATUS —
Up(ажиллаж байна) эсвэлExited(зогссон) - PORTS — Нээлттэй port-ууд
- NAMES — Container-ийн нэр
docker stop / start / restart
# 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 илгээнэ.
Яаралтай зогсооход:
docker kill my-nginx
docker rm — container устгах
# Зогссон 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 харах
# 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-д команд ажиллуулах
# 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 жагсаах
# Бүх 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 устгах
# 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 татах
# 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 хуримтлагдана. Нэг дор цэвэрлэхэд:
# Ашиглагдаагүй бүгдийг устгах (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 үүсгэх үндэс суурийг судална.