đŗ Docker
Docker āĻāĻāĻāĻŋ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āϝāĻž āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞā§āĻā§ āĻāϞāĻžāĻĻāĻž āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāĻžāϞāĻžāϝāĻŧāĨ¤ āĻāĻ āĻāĻŋāĻ āĻļā§āĻā§ āĻāĻŽā§āĻ, āĻāύāĻā§āĻāύāĻžāϰ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ, āĻāϞāĻŋāĻāĻŽ, Docker Compose āĻāĻŦāĻ Swarm āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāύā§āĻĄ āϰāϝāĻŧā§āĻā§āĨ¤
đĻ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻāĻŽāĻžāύā§āĻĄ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker | āĻĒā§āϰāϧāĻžāύ Docker CLI āĻāĻŽāĻžāύā§āĻĄ, āϝāĻž āĻĻāĻŋāϝāĻŧā§ āϏāĻžāĻŦāĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ⧠āĻšāϝāĻŧ āĻāĻŦāĻ āĻāύāĻā§āĻāύāĻžāϰ, āĻāĻŽā§āĻ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āĻāϞāĻŋāĻāĻŽ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž āĻšāϝāĻŧ | |
| docker version | āĻāύā§āϏāĻāϞ āĻāϰāĻž Docker āĻāĻžāϰā§āϏāύ (āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻ āϏāĻžāϰā§āĻāĻžāϰ) āĻĻā§āĻāĻžāϝāĻŧāĨ¤ āĻāύā§āϏāĻāϞā§āĻļāύ āϝāĻžāĻāĻžāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§ | |
| docker version --format '{{.Client.APIVersion}}' | āĻļā§āϧ⧠Docker āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ API āĻāĻžāϰā§āϏāύ āĻĻā§āĻāĻžāύ⧠| |
| docker version --format '{{.Server.Version}}' | āĻļā§āϧ⧠Docker āϏāĻžāϰā§āĻāĻžāϰ (Engine) āĻāĻžāϰā§āϏāύ āĻĻā§āĻāĻžāύ⧠| |
| docker version --format '{{json .}}' | JSON āĻĢāϰāĻŽā§āϝāĻžāĻā§ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻžāϰā§āϏāύ āϤāĻĨā§āϝ āĻāĻāĻāĻĒā§āĻ āĻāϰāĻž | |
| docker system info | Docker āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϏāĻžāϧāĻžāϰāĻŖ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāύā§: āĻāύāĻā§āĻāύāĻžāϰ āϏāĻāĻā§āϝāĻž, āĻāĻŽā§āĻ, āϰāĻŋāϏā§āϰā§āϏ āĻāϤā§āϝāĻžāĻĻāĻŋ | |
| docker info | Docker āĻĄā§āĻāĻž āĻĻā§āĻāĻžāύā§: āĻāĻžāϰā§āϏāύ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ, āĻāύāĻā§āĻāύāĻžāϰ āĻ āĻāĻŽā§āĻ āϏāĻāĻā§āϝāĻž | |
| docker info --format '{{json .}}' | JSON āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻāĻāĻāĻĒā§āĻ â āĻ āĻā§āĻŽā§āĻļāύā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§ | |
| docker info --format '{{.NCPU}} CPUs, {{.MemTotal}} bytes RAM' | CPU āϏāĻāĻā§āϝāĻž āĻ āĻŽā§āĻ āĻŽā§āĻŽāϰāĻŋ āĻĻā§āĻāĻžāύ⧠| |
| docker info --format '{{.Driver}}' | Docker āĻā§āύ storage driver āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§ āϤāĻž āĻĻā§āĻāĻžāύ⧠| |
| docker image pull | Docker Hub āĻŦāĻž āĻ āύā§āϝ āĻā§āύ⧠āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āĻĨā§āĻā§ āĻāĻŽā§āĻ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻžāĨ¤ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻāĻŽā§āĻ āĻĒā§āϰāϝāĻŧā§āĻāύ | |
| docker pull ubuntu | āϏāϰā§āĻŦāĻļā§āώ Ubuntu āĻāĻŽā§āĻ āĻĄāĻžāĻāύāϞā§āĻĄ | |
| docker pull nginx:alpine | Alpine Linux-āĻāĻŋāϤā§āϤāĻŋāĻ āĻšāĻžāϞāĻāĻž Nginx āĻāĻŽā§āĻ āĻĄāĻžāĻāύāϞā§āĻĄ | |
| docker pull redis:7 | Redis āĻāĻŽā§āĻ āĻāĻžāϰā§āϏāύ 7 āĻĄāĻžāĻāύāϞā§āĻĄ | |
| docker container run | āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻĨā§āĻā§ āύāϤā§āύ āĻāύāĻā§āĻāύāĻžāϰ āϤā§āϰāĻŋ āĻ āĻāĻžāϞāĻžāύ⧠| |
| docker run -it ubuntu bash | āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ Bash āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞāϏāĻš Ubuntu āĻāĻžāϞāĻžāύ⧠| |
| docker run -d nginx | Nginx detached (āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ) āĻŽā§āĻĄā§ āĻāĻžāϞāĻžāύ⧠| |
| docker run -p 8080:80 nginx | Nginx āĻāĻžāϞāĻŋāϝāĻŧā§ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻĒā§āϰā§āĻ 80 āĻšā§āϏā§āĻā§āϰ āĻĒā§āϰā§āĻ 8080-āĻ bind āĻāϰāĻž | |
| docker container ls | āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰ āϤāĻžāϞāĻŋāĻāĻž | |
| docker ps | āĻļā§āϧ⧠āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰ āĻĻā§āĻāĻžāύ⧠| |
| docker ps -a | āϏāĻŦ āĻāύāĻā§āĻāύāĻžāϰ āĻĻā§āĻāĻžāύā§, āϏā§āĻāĻĒāĻĄ āϏāĻš | |
| docker ps --format '{{.Names}}' | āĻļā§āϧ⧠āĻāύāĻā§āĻāύāĻžāϰ āύāĻžāĻŽ āĻāĻāĻāĻĒā§āĻ āĻāϰāĻž | |
| docker container start | āϏā§āĻāĻĒāĻĄ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞ⧠āĻāϰāĻž | |
| docker start container_name | āύāĻžāĻŽ āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞ⧠| |
| docker start $(docker ps -aq) | āϏāĻŦ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞ⧠| |
| docker start -ai container_name | āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞ⧠āĻāϰ⧠āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ attach āĻāϰāĻž | |
| docker container stop | āĻāĻāĻāĻŋ āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰ āĻŦāύā§āϧ āĻāϰāĻž | |
| docker stop container_name | āύāĻžāĻŽ āĻĻāĻŋāϝāĻŧā§ āĻāύāĻā§āĻāύāĻžāϰ āĻŦāύā§āϧ āĻāϰāĻž | |
| docker stop $(docker ps -q) | āϏāĻŦ āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰ āĻŦāύā§āϧ āĻāϰāĻž | |
| docker stop -t 5 container_name | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰ ā§Ģ āϏā§āĻā§āύā§āĻĄ āϏāĻŽāϝāĻŧ āĻĻāĻŋāϝāĻŧā§ āĻŦāύā§āϧ āĻāϰāĻž | |
| docker container restart | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāϞ⧠āĻāϰāĻž | |
| docker restart container_name | āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāύāĻā§āĻāύāĻžāϰ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ | |
| docker restart $(docker ps -q) | āϏāĻŦ āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ | |
| docker restart -t 10 container_name | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰ ā§§ā§Ļ āϏā§āĻā§āύā§āĻĄ āĻĻā§āϰāĻŋ āĻĻāĻŋāϝāĻŧā§ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ | |
| docker container rm | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker rm container_name | āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻāĻĒāĻĄ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker rm $(docker ps -aq) | āϏāĻŦ āϏā§āĻāĻĒāĻĄ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker rm -f container_name | āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰ āĻā§āϰāĻĒā§āϰā§āĻŦāĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker image ls | āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻž āĻāĻŽā§āĻ āϤāĻžāϞāĻŋāĻāĻž | |
| docker images | āĻšā§āϏā§āĻā§ āϏāĻŦ āĻāĻŽā§āĻ āĻĻā§āĻāĻžāύ⧠| |
| docker images -a | āϏāĻŦ āĻāĻŽā§āĻ āĻĻā§āĻāĻžāύā§, āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āϞā§āϝāĻŧāĻžāϰāϏāĻš | |
| docker images --format '{{.Repository}}:{{.Tag}}' | āĻļā§āϧ⧠āĻāĻŽā§āĻ āύāĻžāĻŽ āĻ āĻā§āϝāĻžāĻ āĻāĻāĻāĻĒā§āĻ āĻāϰāĻž | |
| docker image rm | āϞā§āĻāĻžāϞ āϏā§āĻā§āϰā§āĻ āĻĨā§āĻā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāĻŽā§āĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker rmi test1:latest | 
 | |
| docker rmi 1a2b3c4d5e6f | ID āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker rmi $(docker images -q) | āϏāĻŦ āĻāĻŽā§āĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž (āϏāϤāϰā§āĻāϤāĻžāϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ!) | 
đ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker container exec | āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ⧠| |
| docker exec -it container bash | 
 | |
| docker exec container ls /app | āĻāύāĻā§āĻāύāĻžāϰā§āϰ  | |
| docker exec -d container touch /tmp/testfile | āĻĄāĻŋāĻā§āϝāĻžāĻāĻĄ āĻŽā§āĻĄā§ (āĻ āĻĒā§āĻā§āώāĻž āĻāĻžāĻĄāĻŧāĻž) āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ⧠| |
| docker container logs | āĻāύāĻā§āĻāύāĻžāϰ āϞāĻ āĻĻā§āĻāĻž | |
| docker logs container | 
 | |
| docker logs -f container | āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽā§ āĻāύāĻā§āĻāύāĻžāϰ āϞāĻ āĻĢāϞ⧠āĻāϰāĻž | |
| docker logs --tail 50 container | āĻļā§āώ ā§Ģā§Ļ āϞāĻžāĻāύ āϞāĻ āĻĻā§āĻāĻžāύ⧠| |
| docker inspect | āĻāύāĻā§āĻāύāĻžāϰ āĻŦāĻž āĻāĻŽā§āĻā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ JSON āϤāĻĨā§āϝ āĻĒāĻžāĻāϝāĻŧāĻž | |
| docker inspect container | 
 | |
| docker inspect --format '{{.NetworkSettings.IPAddress}}' container | āĻāύāĻā§āĻāύāĻžāϰā§āϰ IP āĻ ā§āϝāĻžāĻĄā§āϰā§āϏ āĻĻā§āĻāĻžāύ⧠| |
| docker container stats | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āϰāĻŋāϏā§āϰā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϏā§āĻā§āϝāĻžāĻāĻŋāϏā§āĻāĻŋāĻ āĻĻā§āĻāĻžāύ⧠| |
| docker stats | āϏāĻŦ āĻāύāĻā§āĻāύāĻžāϰā§āϰ CPU, āĻŽā§āĻŽāϰāĻŋ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āĻĄāĻŋāϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĻā§āĻāĻžāύ⧠| |
| docker stats container_name | āĻļā§āϧ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏā§āĻā§āϝāĻžāĻ āĻĻā§āĻāĻžāύ⧠| |
| docker stats --no-stream | āĻāĻāĻŦāĻžāϰā§āϰ āĻāύā§āϝ snapshot āĻāĻāĻāĻĒā§āĻ āĻĻā§āĻāĻžāύ⧠| |
| docker container rename | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āύāĻžāĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ | |
| docker rename old_name new_name | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āύāĻžāĻŽ  | |
| docker container cp | āĻāύāĻā§āĻāύāĻžāϰ āĻ āĻšā§āϏā§āĻā§āϰ āĻŽāϧā§āϝ⧠āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰāĻž | |
| docker cp container:/src/file.txt ./file.txt | āĻāύāĻā§āĻāύāĻžāϰ āĻĨā§āĻā§ āĻĢāĻžāĻāϞ āĻšā§āϏā§āĻ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠āĻāĻĒāĻŋ āĻāϰāĻž | |
| docker cp ./config.yaml container:/app/config.yaml | āĻšā§āϏā§āĻ āĻĨā§āĻā§ āĻāύāĻā§āĻāύāĻžāϰ⧠āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰāĻž | |
| docker cp CONTAINER:/var/logs/app.log - | tar x -O | grep "ERROR" | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϞāĻ āĻĢāĻžāĻāϞ āϏā§āĻā§āϰāĻŋāĻŽ āĻāϰ⧠ | |
| docker container top | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āĻāϞāĻŽāĻžāύ āĻĒā§āϰāϏā§āϏ āϤāĻžāϞāĻŋāĻāĻž | |
| docker top container | 
 | |
| docker container pause | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏāĻŦ āĻĒā§āϰāϏā§āϏ pause āĻāϰāĻž | |
| docker pause container | 
 | |
| docker container unpause | pause āĻāϰāĻž āĻāύāĻā§āĻāύāĻžāϰ resume āĻāϰāĻž | |
| docker unpause container | 
 | |
| docker container update | āĻāύāĻā§āĻāύāĻžāϰ āϏā§āĻāĻŋāĻāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāĻžāĻĄāĻŧāĻž āĻāĻĒāĻĄā§āĻ āĻāϰāĻž | |
| docker update --memory 500m container | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻŽā§āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ 500 MB-āϤ⧠āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āĻāϰāĻž | 
đ§ą āĻāĻŽā§āĻ āĻ Dockerfile
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker buildx build | āĻāĻāĻāĻŋ Dockerfile āĻĨā§āĻā§ Docker āĻāĻŽā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž | |
| docker build -t my_image . | āĻŦāϰā§āϤāĻŽāĻžāύ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻĨā§āĻā§  | |
| docker build -t my_image:1.0 . | 
 | |
| docker build --no-cache -t my_image . | āĻā§āϝāĻžāĻļ āĻāĻžāĻĄāĻŧāĻž āύāϤā§āύ āĻāĻŽā§āĻ āϤā§āϰāĻŋ | |
| docker container commit | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻ āĻŦāϏā§āĻĨāĻž āĻĨā§āĻā§ āĻāĻŽā§āĻ āϤā§āϰāĻŋ | |
| docker commit container my_img:v1 | 
 | |
| docker commit -m "Added config" container my_img:v2 | āĻāĻŽāĻŋāĻ āĻŽā§āϏā§āĻāϏāĻš āĻāĻŽā§āĻ āϤā§āϰāĻŋ | |
| docker commit -a "John Doe" container my_img:latest | āĻ āĻĨāϰ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āĻāĻŽā§āĻ āϤā§āϰāĻŋ | |
| docker image tag | āĻāĻŽā§āĻ āĻā§āϝāĻžāĻ āϝā§āĻ āĻŦāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ | |
| docker tag my_image myrepo/my_image:latest | āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ  | |
| docker tag my_image:1.0 my_image:stable | 
 | |
| docker tag my_image my_image:backup | āϞā§āĻāĻžāϞ āĻāĻŽā§āĻā§  | |
| docker image push | āĻāĻŽā§āĻ Docker Hub āĻŦāĻž āĻ āύā§āϝ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋāϤ⧠push āĻāϰāĻž | |
| docker push myrepo/my_image:latest | 
 | |
| docker push myrepo/my_image:1.0 | 
 | |
| docker push myrepo/my_image | āĻĄāĻŋāĻĢāϞā§āĻ  | |
| docker login | Docker Hub āĻŦāĻž āĻ āύā§āϝ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋāϤ⧠āϞāĻāĻāύ āĻāϰāĻž | |
| docker login | Docker Hub āĻ āĻāĻāĻāĻžāϰāύā§āĻŽ āĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻāϞāĻŋ āĻĒā§āϰāĻŦā§āĻļ āĻāϰāĻžāύ⧠| |
| docker login myregistry.local:5000 | āĻĒā§āϰāĻžāĻāĻā§āĻ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋāϤ⧠āϞāĻāĻāύ | |
| docker login -u username -p password | āĻāĻāĻāĻžāϰāύā§āĻŽ āĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻāĻŋāϝāĻŧā§ āϞāĻāĻāύ (āϏā§āĻĒāĻžāϰāĻŋāĻļāĻā§āϤ āύāϝāĻŧ) | |
| docker logout | Docker Hub āĻŦāĻž āĻ āύā§āϝ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āĻĨā§āĻā§ āϞāĻāĻāĻāĻ āĻāϰāĻž | |
| docker logout | Docker Hub āĻĨā§āĻā§ āϞāĻāĻāĻāĻ | |
| docker logout myregistry.local:5000 | āĻĒā§āϰāĻžāĻāĻā§āĻ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āĻĨā§āĻā§ āϞāĻāĻāĻāĻ | |
| HEALTHCHECK | Dockerfile āύāĻŋāϰā§āĻĻā§āĻļ āϝāĻž āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏā§āĻŦāĻžāϏā§āĻĨā§āϝ āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠| |
| HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD curl -f http://localhost/ || exit 1 | āĻĒā§āϰāϤāĻŋ ā§Šā§Ļ āϏā§āĻā§āύā§āĻĄā§ āϏāĻžāϰā§āĻāĻŋāϏ āĻ ā§āϝāĻžāĻā§āĻāϞā§āĻŦāϞāĻŋāĻāĻŋ āϝāĻžāĻāĻžāĻāϝāĻŧā§āϰ āĻāύā§āϝ healthcheck āϝā§āĻ āĻāϰāĻž | |
| docker inspect --format='{{json .State.Health}}' container_name | āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰā§āϰ healthcheck āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻĻā§āĻāĻž | 
đ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āĻāϞāĻŋāĻāĻŽ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker network ls | āϏāĻŦ Docker āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϤāĻžāϞāĻŋāĻāĻž | |
| docker network ls | āϤā§āϰāĻŋ āĻāϰāĻž āϏāĻŦ Docker āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻĻā§āĻāĻžāύ⧠| |
| docker network ls --filter driver=bridge | 
 | |
| docker network ls --format '{{.Name}}' | āĻļā§āϧ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āύāĻžāĻŽ āĻāĻāĻāĻĒā§āĻ āĻāϰāĻž | |
| docker network create | āĻāĻāĻāĻŋ āύāϤā§āύ Docker āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϤā§āϰāĻŋ | |
| docker network create my_net | 
 | |
| docker network create --driver bridge my_bridge_net | 
 | |
| docker network create --subnet=192.168.10.0/24 my_custom_net | āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ subnet āϏāĻš āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϤā§āϰāĻŋ | |
| docker network connect | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰāĻā§ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§ āϏāĻāϝā§āĻā§āϤ āĻāϰāĻž | |
| docker network connect my_net container | 
 | |
| docker network connect --alias db_net my_net container | 
 | |
| docker network disconnect | āĻāĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰāĻā§ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻĨā§āĻā§ āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻāϰāĻž | |
| docker network disconnect my_net container | 
 | |
| docker volume ls | āϏāĻŦ Docker āĻāϞāĻŋāĻāĻŽ āϤāĻžāϞāĻŋāĻāĻž | |
| docker volume ls | āϏāĻŦ Docker āĻāϞāĻŋāĻāĻŽ āĻĻā§āĻāĻžāύ⧠| |
| docker volume ls --filter dangling=true | āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāϞāĻŋāĻāĻŽ āĻĻā§āĻāĻžāύ⧠| |
| docker volume create | āĻāĻāĻāĻŋ āύāϤā§āύ Docker āĻāϞāĻŋāĻāĻŽ āϤā§āϰāĻŋ | |
| docker volume create my_vol | 
 | |
| docker volume create --driver local --opt type=tmpfs my_tmp_vol | tmpfs āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ āϏā§āĻĨāĻžāϝāĻŧā§ āĻāϞāĻŋāĻāĻŽ āϤā§āϰāĻŋ | |
| docker volume inspect | āĻāĻāĻāĻŋ āĻāϞāĻŋāĻāĻŽā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāύ⧠| |
| docker volume inspect my_vol | 
 | |
| docker volume rm | āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻŋāĻāĻŽ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker volume rm my_vol | 
 | |
| docker volume rm $(docker volume ls -qf dangling=true) | āϏāĻŦ āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāϞāĻŋāĻāĻŽ āĻŽā§āĻā§ āĻĢā§āϞāĻž | 
đ§Š Docker āĻĒā§āϞāĻžāĻāĻāύ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker plugin ls | āĻāύā§āϏāĻāϞ āĻāϰāĻž Docker āĻĒā§āϞāĻžāĻāĻāύ āϤāĻžāϞāĻŋāĻāĻž | |
| docker plugin ls | āϏāĻŦ āĻĒā§āϞāĻžāĻāĻāύ āĻ āϤāĻžāĻĻā§āϰ āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻĻā§āĻāĻžāύ⧠| |
| docker plugin install | āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ Docker āĻĒā§āϞāĻžāĻāĻāύ āĻāύā§āϏāĻāϞ āĻāϰāĻž | |
| docker plugin install vieux/sshfs | SSHFS āĻāϞāĻŋāĻāĻŽ āĻĒā§āϞāĻžāĻāĻāύ āĻāύā§āϏāĻāϞ āĻāϰāĻž | |
| docker plugin install store/weaveworks/net-plugin:latest_release | Weave āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻĒā§āϞāĻžāĻāĻāύ āĻāύā§āϏāĻāϞ āĻāϰāĻž | |
| docker plugin disable | āĻāĻāĻāĻŋ āĻāύā§āϏāĻāϞ āĻāϰāĻž āĻĒā§āϞāĻžāĻāĻāύ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž | |
| docker plugin disable vieux/sshfs | SSHFS āĻĒā§āϞāĻžāĻāĻāύ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž | |
| docker plugin enable | āĻĒā§āϰā§āĻŦā§ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻĒā§āϞāĻžāĻāĻāύ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž | |
| docker plugin enable vieux/sshfs | SSHFS āĻĒā§āϞāĻžāĻāĻāύ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž | |
| docker plugin rm | āĻāĻāĻāĻŋ Docker āĻĒā§āϞāĻžāĻāĻāύ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker plugin rm vieux/sshfs | SSHFS āĻĒā§āϞāĻžāĻāĻāύ āĻŽā§āĻā§ āĻĢā§āϞāĻž | 
đ Docker Compose
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker compose up | docker-compose.ymlāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞ⧠āĻāϰāĻž | |
| docker compose up | āĻŦāϰā§āϤāĻŽāĻžāύ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϰ āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏ āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ āĻŽā§āĻĄā§ āĻāĻžāϞāĻžāύ⧠| |
| docker compose up -d | āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞ⧠detached (āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ) āĻŽā§āĻĄā§ āĻāĻžāϞāĻžāύ⧠| |
| docker compose up --build | āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāϞā§āϰ āĻāĻā§ āĻāĻŽā§āĻ build āĻāϰāĻž | |
| docker compose down | upāĻĻā§āĻŦāĻžāϰāĻž āϤā§āϰāĻŋ āĻāύāĻā§āĻāύāĻžāϰ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āĻāϞāĻŋāĻāĻŽ āĻŦāύā§āϧ āĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker compose down | āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏ āĻŦāύā§āϧ āĻāϰ⧠āϏāĻāĻļā§āϞāĻŋāώā§āĻ āϰāĻŋāϏā§āϰā§āϏ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker compose down --volumes | Compose āĻĻā§āĻŦāĻžāϰāĻž āϤā§āϰāĻŋ āĻāϞāĻŋāĻāĻŽāĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker compose down --rmi all | Compose āĻĻā§āĻŦāĻžāϰāĻž āϤā§āϰāĻŋ āĻāĻŽā§āĻāĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker compose logs | āϏāĻŦ āĻŦāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āϞāĻ āĻĻā§āĻāĻž | |
| docker compose logs | āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āϞāĻ āĻĻā§āĻāĻžāύ⧠| |
| docker compose logs -f | āϰāĻŋāϝāĻŧā§āϞ āĻāĻžāĻāĻŽā§ āϞāĻ āĻĢāϞ⧠āĻāϰāĻž | |
| docker compose logs web | 
 | |
| docker compose exec | āĻāϞāĻŽāĻžāύ āϏāĻžāϰā§āĻāĻŋāϏ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ⧠| |
| docker compose exec web bash | 
 | |
| docker compose exec db ls /var/lib/postgresql | āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāύāĻā§āĻāύāĻžāϰ⧠ | |
| docker compose exec -d worker touch /tmp/done | 
 | |
| docker compose build | āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻŽā§āĻ build āĻŦāĻž rebuild āĻāϰāĻž | |
| docker compose build | 
 | |
| docker compose build web | āĻļā§āϧ⧠ | |
| docker compose build --no-cache | cache āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠āĻāĻŽā§āĻ build | |
| docker compose ps | āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏ āĻ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻĻā§āĻāĻžāύ⧠| |
| docker compose ps -a | āϏā§āĻāĻĒāĻĄāϏāĻš āϏāĻŦ āĻāύāĻā§āĻāύāĻžāϰ āĻĻā§āĻāĻžāύ⧠| |
| docker compose ps --services | āĻļā§āϧ⧠āϏāĻžāϰā§āĻāĻŋāϏ āύāĻžāĻŽ āĻĻā§āĻāĻžāύ⧠| |
| docker compose pull | āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āĻĨā§āĻā§ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻŽā§āĻ āĻĄāĻžāĻāύāϞā§āĻĄ/āĻāĻĒāĻĄā§āĻ āĻāϰāĻž | |
| docker compose pull web | āĻļā§āϧ⧠ | |
| docker compose pull --ignore-pull-failures | āĻāĻŋāĻā§ āĻāĻŽā§āĻ āĻĢā§āϞ āĻāϰāϞā§āĻ pull āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻž | |
| docker compose restart | āϏāĻŦ āĻŦāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāϰāĻž | |
| docker compose restart db | āĻļā§āϧ⧠ | |
| docker compose restart -t 10 | ā§§ā§Ļ āϏā§āĻā§āύā§āĻĄ āĻāĻžāĻāĻŽāĻāĻāĻ āĻĻāĻŋāϝāĻŧā§ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ | |
| docker compose config | āĻā§āĻĄāĻŧāĻžāύā§āϤ Compose āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ YAML āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻĻā§āĻāĻžāύ⧠| |
| docker compose config --services | āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ⧠āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏ āϤāĻžāϞāĻŋāĻāĻž | |
| docker compose config --volumes | āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ⧠āϏāĻŦ āĻāϞāĻŋāĻāĻŽ āϤāĻžāϞāĻŋāĻāĻž | |
| docker compose start | āϏā§āĻāĻĒāĻĄ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞ⧠āĻāύāĻā§āĻāύāĻžāϰ recreate āύāĻž āĻāϰ⧠āĻāĻžāϞāĻžāύ⧠| |
| docker compose start web | 
 | |
| docker compose start db api | āĻāĻāϏāĻžāĻĨā§ āĻāĻāĻžāϧāĻŋāĻ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāϞāĻžāύ⧠| |
| docker compose stop | āϏāĻžāϰā§āĻāĻŋāϏ āĻŦāύā§āϧ āĻāϰāĻž āĻāĻŋāύā§āϤ⧠āĻāύāĻā§āĻāύāĻžāϰ āύāĻž āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker compose stop web | 
 | |
| docker compose stop -t 5 | ā§Ģ āϏā§āĻā§āύā§āĻĄ āĻāĻžāĻāĻŽāĻāĻāĻ āĻĻāĻŋāϝāĻŧā§ āϏāĻžāϰā§āĻāĻŋāϏ āĻŦāύā§āϧ āĻāϰāĻž | 
đ¤ āĻāĻā§āϏāĻĒā§āϰā§āĻ āĻ āĻāĻŽāĻĒā§āϰā§āĻ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker image save | āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ Docker āĻāĻŽā§āĻ tar āĻāϰā§āĻāĻžāĻāĻā§ āϏāĻāϰāĻā§āώāĻŖ (āĻĒāϰ⧠āĻāĻŽāĻĒā§āϰā§āĻ āĻŦāĻž āĻā§āϰāĻžāύā§āϏāĻĢāĻžāϰā§āϰ āĻāύā§āϝ) | |
| docker save -o image.tar my_img:tag | āĻāĻāĻāĻŋ Docker āĻāĻŽā§āĻ tar āĻāϰā§āĻāĻžāĻāĻā§ āϏāĻāϰāĻā§āώāĻŖ | |
| docker save my_image > my_image.tar | āĻŦāĻŋāĻāϞā§āĻĒāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻĢāĻžāĻāϞ⧠āϏāĻāϰāĻā§āώāĻŖ | |
| docker save -o redis_latest.tar redis:latest | āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ Redis āĻāĻŽā§āĻ āĻĢāĻžāĻāϞ⧠āϏāĻāϰāĻā§āώāĻŖ | |
| docker image load | āĻĒā§āϰā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŋāϤ tar āĻāϰā§āĻāĻžāĻāĻ āĻĨā§āĻā§ Docker āĻāĻŽā§āĻ āϞā§āĻĄ āĻāϰāĻž | |
| docker load < image.tar | tar āĻāϰā§āĻāĻžāĻāĻ āĻĢāĻžāĻāϞ āĻĨā§āĻā§ Docker āĻāĻŽā§āĻ āϞā§āĻĄ | |
| docker load --input redis_latest.tar | āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĻāĻŋāϝāĻŧā§ āĻĢāĻžāĻāϞ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āĻāĻŽā§āĻ āϞā§āĻĄ | |
| docker load --quiet < my_image.tar | progress āĻāĻāĻāĻĒā§āĻ āĻāĻžāĻĄāĻŧāĻž āĻāĻŽā§āĻ āϞā§āĻĄ | |
| docker container export | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻĢāĻžāĻāϞāϏāĻŋāϏā§āĻā§āĻŽ tar āĻāϰā§āĻāĻžāĻāĻā§ āĻāĻā§āϏāĻĒā§āϰā§āĻ (image history āĻŦāĻž metadata āĻāĻžāĻĄāĻŧāĻž) | |
| docker export container > file.tar | āĻāύāĻā§āĻāύāĻžāϰ āĻĢāĻžāĻāϞāϏāĻŋāϏā§āĻā§āĻŽ āĻāϰā§āĻāĻžāĻāĻā§ āĻāĻā§āϏāĻĒā§āϰā§āĻ | |
| docker export my_container > my_container_fs.tar | āύāĻžāĻŽā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāύāĻā§āĻāύāĻžāϰ āĻāĻā§āϏāĻĒā§āϰā§āĻ | |
| docker export -o container_fs.tar container_id | 
 | |
| docker image import | āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞāϏāĻŋāϏā§āĻā§āĻŽ tar āĻāϰā§āĻāĻžāĻāĻ āĻĨā§āĻā§ āύāϤā§āύ āĻāĻŽā§āĻ āϤā§āϰāĻŋ | |
| docker import file.tar new_img | āĻāϰā§āĻāĻžāĻāĻ āĻĢāĻžāĻāϞ āĻāĻŽāĻĒā§āϰā§āĻ āĻāϰ⧠āύāϤā§āύ Docker āĻāĻŽā§āĻ āϤā§āϰāĻŋ | |
| docker import https://example.com/image.tar my_new_image | URL āĻĨā§āĻā§ āϏāϰāĻžāϏāϰāĻŋ āĻāĻŽā§āĻ āĻāĻŽāĻĒā§āϰā§āĻ | |
| docker import - my_image < file.tar | stdin āĻĨā§āĻā§ āĻāĻŽāĻĒā§āϰā§āĻ | 
đ§š āĻā§āϞāĻŋāύāĻāĻĒ āĻ āĻĄāĻžāϝāĻŧāĻžāĻāύāϏā§āĻāĻŋāĻ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker system df | Docker āĻĄāĻŋāϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĻā§āĻāĻžāύā§: āĻāϞāĻŋāĻāĻŽ, āĻāĻŽā§āĻ, āĻāύāĻā§āĻāύāĻžāϰ, build cache | |
| docker system df -v | āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻŽā§āĻ, āĻāύāĻā§āĻāύāĻžāϰ āĻ āĻāϞāĻŋāĻāĻŽā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻāĻāĻĒā§āĻ | |
| docker system df --format '{{json .}}' | JSON āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻāĻāĻāĻĒā§āĻ āϤāĻĨā§āϝ | |
| docker system prune | āϏāĻŦ āĻ āĻŦā§āϝāĻŦāĻšā§āϤ Docker āĻĄā§āĻāĻž āĻŽā§āĻā§ āĻĢā§āϞāĻž: āϏā§āĻāĻĒāĻĄ āĻāύāĻā§āĻāύāĻžāϰ, āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ, dangling āĻāĻŽā§āĻ āĻ build cache | |
| docker system prune -a | āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŽā§āĻāϏāĻš āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āĻāĻŽā§āĻāĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker system prune --volumes | āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāϞāĻŋāĻāĻŽ āĻ āύā§āϝāĻžāύā§āϝ āϰāĻŋāϏā§āϰā§āϏāϏāĻš āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker image prune | āĻ āĻŦā§āϝāĻŦāĻšā§āϤ Docker āĻāĻŽā§āĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž, dangling āϞā§āϝāĻŧāĻžāϰāϏāĻš | |
| docker image prune -a | āϏāĻŦ āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŽā§āĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker image prune --filter "until=24h" | ⧍ā§Ē āĻāĻŖā§āĻāĻžāϰ āĻŦā§āĻļāĻŋ āĻĒā§āϰāĻžāύ⧠āĻāĻŽā§āĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker container prune | āϏā§āĻāĻĒāĻĄ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāĻž (āĻĢāĻŋāϞā§āĻāĻžāϰ āĻĻāĻŋāϝāĻŧā§ āĻŦāĻž āϏāĻŦ) | |
| docker container prune --filter "until=24h" | ⧍ā§Ē āĻāĻŖā§āĻāĻžāϰ āĻŦā§āĻļāĻŋ āĻĒā§āϰāĻžāύ⧠āϏā§āĻāĻĒāĻĄ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker container prune --force | āĻāύāĻĢāĻžāϰā§āĻŽā§āĻļāύ āĻāĻžāĻĄāĻŧāĻž āĻŽā§āĻā§ āĻĢā§āϞāĻž | 
đ Docker Swarm
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker swarm init | āĻŦāϰā§āϤāĻŽāĻžāύ āύā§āĻĄā§ āύāϤā§āύ Docker Swarm āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻ āĻāϰāĻž | |
| docker swarm init --advertise-addr 192.168.1.100 | IP āĻ āĻŋāĻāĻžāύāĻž āĻĻāĻŋāϝāĻŧā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻ | |
| docker swarm init --listen-addr 0.0.0.0:2377 | āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ listen port āĻĻāĻŋāϝāĻŧā§ āĻāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻ | |
| docker service create | Swarm āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āύāϤā§āύ āϏāĻžāϰā§āĻāĻŋāϏ āϤā§āϰāĻŋ | |
| docker service create --name nginx nginx | Swarm-āĻ Nginx āϏāĻžāϰā§āĻāĻŋāϏ āϤā§āϰāĻŋ | |
| docker service create --replicas 3 --name web webserver | ā§ŠāĻāĻŋ āϰāĻŋāĻĒā§āϞāĻŋāĻāĻž āϏāĻš āϏāĻžāϰā§āĻāĻŋāϏ āϤā§āϰāĻŋ | |
| docker service create --name redis --publish 6379:6379 redis | port mapping āϏāĻš āϏāĻžāϰā§āĻāĻŋāϏ āϤā§āϰāĻŋ | |
| docker stack deploy | Compose āĻĢāĻžāĻāϞā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠Swarm āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠stack āĻĄā§āĻĒā§āϞāϝāĻŧ āĻāϰāĻž | |
| docker stack deploy -c docker-compose.yml mystack | compose āĻĢāĻžāĻāϞ āĻĨā§āĻā§ stack āĻĄā§āĻĒā§āϞāϝāĻŧ | |
| docker stack deploy --with-registry-auth -c compose.yml mystack | registry authentication forwarding āϏāĻš āĻĄā§āĻĒā§āϞāϝāĻŧ | |
| docker stack deploy -c swarm-compose.yml mystack | āĻŦāĻŋāĻāϞā§āĻĒ compose āĻĢāĻžāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠stack āĻĄā§āĻĒā§āϞāϝāĻŧ | |
| docker stack rm | Swarm āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻĨā§āĻā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ stack āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker stack rm mystack | 
 | |
| docker stack rm | āϏāĻŦ stack āĻŽā§āĻā§ āĻĢā§āϞāĻž (āϏā§āĻĒāĻžāϰāĻŋāĻļāĻā§āϤ āύāϝāĻŧ) | |
| docker stack rm mystack && docker swarm leave --force | stack āĻŽā§āĻā§ āĻĢā§āϞ⧠Swarm āĻā§āĻĄāĻŧā§ āĻĻā§āĻāϝāĻŧāĻž | 
đŧ āĻāύā§āύāϤ Docker āĻŦā§āϝāĻŦāĻšāĻžāϰ
đ āĻĒā§āĻļāĻžāĻĻāĻžāϰ Docker āĻāĻŽāĻžāύā§āĻĄ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker buildx | āĻāύā§āύāϤ āĻāĻŽā§āĻ build āĻā§āϞ, docker build-āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒāĨ¤ āĻŽāĻžāϞā§āĻāĻŋ-āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ, caching, parallel build āĻ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻāĻā§āϏāĻĒā§āϰā§āĻ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§āĨ¤ CI/CD āĻ cross-platform āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻā§ āĻāĻĒāϝā§āĻā§ | |
| docker buildx build --platform linux/arm64,linux/amd64 -t myimg:multi . | āĻāĻāϏāĻžāĻĨā§ ARM āĻ x86 āĻŽāĻžāϞā§āĻāĻŋ-āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻāĻŽā§āĻ build | |
| docker buildx build --load -t localimg . | āĻāĻŽā§āĻ build āĻāϰ⧠āϞā§āĻāĻžāϞ Docker Engine cache-āĻ āϞā§āĻĄ | |
| docker buildx build --push --platform linux/amd64,linux/arm64 -t repo/app:latest . | āĻŽāĻžāϞā§āĻāĻŋ-āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻāĻŽā§āĻ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋāϤ⧠build āĻ push | |
| docker context | āϞā§āĻāĻžāϞ āĻ āϰāĻŋāĻŽā§āĻ environment-āĻ āĻĻā§āϰā§āϤ āϏā§āĻāĻā§āϰ āĻāύā§āϝ Docker context āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž | |
| docker context create myremote --docker "host=ssh://user@host" | āϰāĻŋāĻŽā§āĻ Docker host āĻ āϏāĻāϝā§āĻā§āϰ āĻāύā§āϝ context āϤā§āϰāĻŋ | |
| docker context use myremote | āϰāĻŋāĻŽā§āĻ context āĻ āϏā§āĻāĻ | |
| docker context ls | āĻ ā§āϝāĻžāĻā§āĻāĻŋāĻ context āϏāĻš āϏāĻŦ context āϤāĻžāϞāĻŋāĻāĻž | |
| docker system events | Docker event āϰāĻŋāϝāĻŧā§āϞ āĻāĻžāĻāĻŽā§ āĻļā§āύāĻž (event āĻāĻžāĻāĻĒ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧ āϝā§āĻŽāύ container start)āĨ¤ āĻŽāύāĻŋāĻāϰāĻŋāĻ āĻ āĻ āĻā§āĻŽā§āĻļāύā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§ | |
| docker events --filter 'event=start' | āĻļā§āϧ⧠container start event āĻĻā§āĻāĻžāύ⧠| |
| docker events --since 1h --until 10m | āĻāϤ āĻāĻ āĻāĻŖā§āĻāĻžāϰ event āĻĨā§āĻā§ ā§§ā§Ļ āĻŽāĻŋāύāĻŋāĻ āĻāĻ āĻĒāϰā§āϝāύā§āϤ āĻĻā§āĻāĻžāύ⧠| |
| docker events --filter 'type=network' | āĻļā§āϧ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ event āĻĻā§āĻāĻžāύ⧠| |
| docker events --filter 'image=nginx' | 
 | |
| docker container update | āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϰāĻŋāϏā§āϰā§āϏ āϞāĻŋāĻŽāĻŋāĻ/āϏā§āĻāĻŋāĻāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāĻžāĻĄāĻŧāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž | |
| docker update --cpus 2 --memory 1g my_container | ⧍ CPU āĻ 1 GB RAM āϞāĻŋāĻŽāĻŋāĻ āϏā§āĻ āĻāϰāĻž | |
| docker update --restart unless-stopped my_container | auto-restart āĻĒāϞāĻŋāϏāĻŋ  | |
| docker update --pids-limit 200 my_container | āĻĒā§āϰāϏā§āϏ āϏāĻāĻā§āϝāĻž ⧍ā§Ļā§Ļ āϤ⧠āϏā§āĻŽāĻŋāϤ āĻāϰāĻž | |
| docker container diff | āĻāύāĻā§āĻāύāĻžāϰ āĻ āĻŽā§āϞ āĻāĻŽā§āĻā§āϰ āĻŽāϧā§āϝ⧠āĻĢāĻžāĻāϞāϏāĻŋāϏā§āĻā§āĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĻā§āĻāĻžāύā§āĨ¤ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻ āĻ āĻĄāĻŋāĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§ | |
| docker diff my_container | āĻāύāĻā§āĻāύāĻžāϰ⧠āϏāĻŦ āĻĢāĻžāĻāϞāϏāĻŋāϏā§āĻā§āĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĻā§āĻāĻžāύ⧠| |
| docker diff my_container | grep '^A' | āĻļā§āϧ⧠āύāϤā§āύ āĻĢāĻžāĻāϞ ( | |
| docker image history | āĻāĻŽā§āĻ āϞā§āϝāĻŧāĻžāϰā§āϰ āĻāϤāĻŋāĻšāĻžāϏ āĻĻā§āĻāĻžāύā§: build āĻāĻŽāĻžāύā§āĻĄ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āϞā§āϝāĻŧāĻžāϰā§āϰ āϏāĻžāĻāĻ āĻ āϤā§āϰāĻŋāϰ āϏāĻŽāϝāĻŧāĨ¤ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ āĻ āĻ āĻĄāĻŋāĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§ | |
| docker history my_image | āĻāĻāĻāĻŋ āĻāĻŽā§āĻā§āϰ āϞā§āϝāĻŧāĻžāϰ āĻāϤāĻŋāĻšāĻžāϏ āĻĻā§āĻāĻžāύ⧠| |
| docker history --no-trunc my_image | āĻĒā§āϰ⧠build āĻāĻŽāĻžāύā§āĻĄ truncation āĻāĻžāĻĄāĻŧāĻž āĻĻā§āĻāĻžāύ⧠| |
| docker history --format "{{.CreatedBy}}: {{.Size}}" my_image | āĻļā§āϧ⧠build āĻāĻŽāĻžāύā§āĻĄ āĻ āϞā§āϝāĻŧāĻžāϰ āϏāĻžāĻāĻ āĻāĻāĻāĻĒā§āĻ āĻāϰāĻž | 
đ āĻāĻĒāϝā§āĻā§ Docker āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāϏ āĻ āĻ āĻā§āĻŽā§āĻļāύ
- āĻāĻŽā§āĻ āϏāĻžāĻāĻ āĻāĻŽāĻžāύ⧠
 āĻā§āĻ āϏāĻžāĻāĻā§āϰ āĻāύā§āϝ- alpineāĻŦāĻž- scratchāĻŦā§āϏ āĻāĻŽā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
 āϞā§āϝāĻŧāĻžāϰ squash āĻāϰāϤā§- --squashāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ (experimental āĻĢāĻŋāĻāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ)āĨ¤
 āĻāĻāĻ āϞā§āϝāĻŧāĻžāϰ⧠āĻā§āĻŽā§āĻĒ āĻĢāĻžāĻāϞ āĻ cache āĻŽā§āĻā§ āĻĢā§āϞā§āύ:- RUN apk add --no-cache curl && rm -rf /var/cache/apk/*
- āϞā§āϝāĻŧāĻžāϰ āϏāĻāĻā§āϝāĻž āĻāĻŽāĻžāύ⧠
 āĻāĻāĻāĻŋ- RUNāĻ āĻāĻāĻžāϧāĻŋāĻ āĻāĻŽāĻžāύā§āĻĄ combine āĻāϰā§āύ āϞā§āϝāĻŧāĻžāϰ āĻ āĻāĻŽā§āĻ āϏāĻžāĻāĻ āĻāĻŽāĻžāϤā§:- RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
- Dockerfile build āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāϰāĻž 
 multi-stage build āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻžāϤ⧠āĻĢāĻžāĻāύāĻžāϞ āĻāĻŽā§āĻā§ āĻļā§āϧ⧠āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻĢāĻžāĻāϞ āĻĨāĻžāĻā§āĨ¤
 āĻĒā§āϰāĻĨāĻŽā§ dependency āĻāĻĒāĻŋ āĻ āĻāύā§āϏāĻāϞ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻā§āĻĄ āĻāĻĒāĻŋ â āĻāϤ⧠layer caching āĻāĻžāϞ⧠āĻšāϝāĻŧāĨ¤
- āϏāĻŋāĻā§āϰā§āĻ āĻ āĻāύāĻĢāĻŋāĻ āĻāϞāĻžāĻĻāĻž āϰāĻžāĻāĻž 
 - .env, API key āĻŦāĻž āĻĒā§āϰāĻžāĻāĻā§āĻ āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻāĻŽā§āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŦā§āύ āύāĻžāĨ¤
 āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ:- docker secret(Swarm-āĻ)
 
- environment variable (-e VAR=valueāĻŦāĻž.env)
 
- config āĻāϰ āĻāύā§āϝ external volume 
 
- Build-time secret (BuildKit) 
 build āĻāϞāĻžāĻāĻžāϞ⧠secret āύāĻŋāϰāĻžāĻĒāĻĻā§ āĻĒāĻžāϏ āĻāϰāϤā§- --secretāĻĢā§āϞā§āϝāĻžāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ:- docker buildx build --secret id=mysecret,src=./secret.txt .- Dockerfile-āĻ secret - /run/secrets/mysecretāĻ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāĻŦā§:- RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret- đĄ āĻāϤ⧠secret āĻāĻŽā§āĻ āϞā§āϝāĻŧāĻžāϰ⧠āϏāĻāϰāĻā§āώāĻŋāϤ āĻšāϝāĻŧ āύāĻžāĨ¤ 
- Rootless Docker 
 Root āĻāĻžāĻĄāĻŧāĻž Docker āĻāĻžāϞāĻžāύ⧠āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻŦā§āĻĻā§āϧāĻŋ āĻāϰ⧠āĻāĻŦāĻ host compromise āĻā§āĻāĻāĻŋ āĻāĻŽāĻžāϝāĻŧāĨ¤
 āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāϤā§:- dockerd-rootless-setuptool.sh install export PATH=/usr/bin:$PATH- āĻā§āĻ āĻāϰā§āύ: - docker info | grep Rootless- â āĻāĻŋāĻā§ āĻĢāĻŋāĻāĻžāϰ (āϝā§āĻŽāύ <1024 āĻĒā§āϰā§āĻ āĻĢāϰāĻāϝāĻŧāĻžāϰā§āĻĄāĻŋāĻ) āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāĻŦā§ āύāĻžāĨ¤ 
- āĻāĻŽā§āĻā§ āĻĻā§āϰā§āĻŦāϞāϤāĻž āϏā§āĻā§āϝāĻžāύ 
 āĻŦāĻŋāϞā§āĻ-āĻāύ āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ:- docker scan my_image- āĻŦāĻž āύāϤā§āύ CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ: - docker scout cves my_image- āĻāĻāĻŋ base image āĻ dependency-āϤ⧠āĻĻā§āϰā§āĻŦāϞāϤāĻž āĻļāύāĻžāĻā§āϤ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤ 
- āϰāĻŋāϏā§āϰā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϏā§āĻŽāĻŋāϤ āĻāϰāĻž 
 āĻāύāĻā§āĻāύāĻžāϰāĻā§ āĻŽā§āĻŽāϰāĻŋ, CPU āĻ āĻĒā§āϰāϏā§āϏ āϏāĻāĻā§āϝāĻž āĻĻā§āĻŦāĻžāϰāĻž āϏā§āĻŽāĻŋāϤ āĻāϰā§āύ:- docker run --memory=512m --cpus="1.5" --pids-limit=200 myimage- āĻāϤ⧠āϰāĻŋāϏā§āϰā§āϏ overconsume āĻšāĻŦā§ āύāĻžāĨ¤ 
 I/O āĻ āϏā§āĻŽāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:- docker run --device-read-bps /dev/sda:1mb --device-write-bps /dev/sda:1mb myimage- āĻāĻāĻŋ āĻĄāĻŋāϏā§āĻ āĻāĻāĻžāϰāϞā§āĻĄ āĻĒā§āϰāϤāĻŋāϰā§āϧ⧠āĻāĻĒāϝā§āĻā§āĨ¤ 
- āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āĻā§āϞāĻŋāύāĻāĻĒ 
 āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŽā§āĻ, āĻāύāĻā§āĻāύāĻžāϰ, āĻāϞāĻŋāĻāĻŽ āĻ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻŽā§āĻā§ āĻĢā§āϞā§āύ:- docker system prune -af --volumes- â āϏāϤāϰā§āĻ āĻĨāĻžāĻā§āύ: āĻāĻ āĻāĻŽāĻžāύā§āĻĄ āϏāĻŦ āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āϰāĻŋāϏā§āϰā§āϏ āĻŽā§āĻā§ āĻĻā§āϝāĻŧāĨ¤ - āύāĻŋāϰā§āĻŦāĻžāĻāĻŋāϤ āĻā§āϞāĻŋāύāĻāĻĒā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ: - docker image prune --filter "until=24h"
- CI/CD āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ 
 Build, test āĻ deploy GitHub Actions, GitLab CI, Jenkins pipeline-āĻ āĻāĻŽā§āĻŦā§āĻĄ āĻāϰā§āύāĨ¤
 GitHub Actions step āĻāĻĻāĻžāĻšāϰāĻŖ:- - run: docker build -t myapp:${GITHUB_SHA} . - run: docker push myapp:${GITHUB_SHA}
- āϞāĻāĻŋāĻ āĻ āĻŽāύāĻŋāĻāϰāĻŋāĻ 
 āϏā§āύā§āĻā§āϰāĻžāϞ āϏāĻŋāϏā§āĻā§āĻŽā§ āϞāĻ āĻĒāĻžāĻ āĻžāϤ⧠logging driver (- --log-driver) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ: ELK, Loki, SplunkāĨ¤
 Prometheus + cAdvisor āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ container metrics-āĻāϰ āĻāύā§āϝāĨ¤
- Production āĻĄā§āĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ 
 āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻ āĻ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻāύāĻĢāĻŋāĻ āĻāϞāĻžāĻĻāĻž āĻāϰā§āύ- docker-compose.override.ymlāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
 High availability āĻ āϏā§āĻā§āϞāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ:- Docker Swarm
 
- Kubernetes 
 
- Docker Swarm
đ Docker āĻāύāĻā§āĻāύāĻžāϰ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻāĻŦāĻ āĻĒā§āϰā§āĻĢāĻžāĻāϞāĻŋāĻ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker container exec | āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύā§, āϝāĻž āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻĻā§āϝāĻŧ āĻŦāĻž āĻāϞāĻžāĻĻāĻž āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻžāϞāĻžāϤ⧠āϏāĻā§āώāĻŽ āĻāϰ⧠| |
| docker exec -it my_container bash | āĻāϞāĻŽāĻžāύ āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ (bash) āĻāĻžāϞ⧠āĻāϰāĻž | |
| docker exec -it my_container sh | āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāĻāĻāĻŋ āĻŽāĻŋāύāĻŋāĻŽāĻžāϞ āĻļā§āϞ āĻāĻžāϞāĻžāύ⧠(āϝāĻĻāĻŋ bash āύāĻž āĻĨāĻžāĻā§) | |
| docker exec my_container ls /app | āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ āĻŽā§āĻĄ āĻāĻžāĻĄāĻŧāĻž āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ⧠| |
| docker container logs | āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϞāĻ āĻĻā§āĻāĻžāύā§, āϝāĻž āĻĄāĻžāϝāĻŧāĻžāĻāύāϏā§āĻāĻŋāĻ āĻ āĻŽāύāĻŋāĻāϰāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§ | |
| docker logs -f --tail 100 my_container | āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻāϏāĻš āĻļā§āώ 100 āϞāĻžāĻāύ āϞāĻ āĻĻā§āĻāĻž | |
| docker logs my_container | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏāĻŦ āĻāĻĒāϞāĻŦā§āϧ āϞāĻ āĻĻā§āĻāĻžāύ⧠| |
| docker logs --since 1h my_container | āĻļā§āώ āĻāĻ āĻāĻŖā§āĻāĻžāϰ āϞāĻ āĻĻā§āĻāĻžāύ⧠| |
| docker inspect | Docker āĻ āĻŦāĻā§āĻā§āĻ (āĻāύāĻā§āĻāύāĻžāϰ, āĻāĻŽā§āĻ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻāϤā§āϝāĻžāĻĻāĻŋ)-āĻāϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ JSON āϤāĻĨā§āϝ āĻāĻāĻāĻĒā§āĻ āĻāϰāĻž, āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻ āϏā§āĻā§āĻāϏāĻš | |
| docker inspect my_container | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ JSON āϤāĻĨā§āϝ āĻĒāĻžāĻāϝāĻŧāĻž | |
| docker inspect --format '{{.State.Pid}}' my_container | āĻšā§āϏā§āĻā§ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻĒā§āϰāϧāĻžāύ āĻĒā§āϰāϏā§āϏā§āϰ PID āĻĒāĻžāĻāϝāĻŧāĻž | |
| docker inspect --format '{{.NetworkSettings.IPAddress}}' my_container | āĻāύāĻā§āĻāύāĻžāϰā§āϰ IP āĻ āĻŋāĻāĻžāύāĻž āĻĻā§āĻāĻžāύ⧠| |
| nsenter(withstrace) | Linux āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āϝāĻž āĻ
āύā§āϝ āĻĒā§āϰāϏā§āϏā§āϰ namespace-āĻ āĻĒā§āϰāĻŦā§āĻļ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ (āĻāĻāĻžāύ⧠āĻāύāĻā§āĻāύāĻžāϰ)āĨ¤ straceāϏāĻš āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻāĻŋāϤāϰ⧠system call āĻā§āϰā§āϏ āĻāϰāĻž āϝāĻžāϝāĻŧ | |
| nsenter --target $(docker inspect --format '{{.State.Pid}}' my_container) --mount --uts --ipc --net --pid strace -p 1 | āĻāύāĻā§āĻāύāĻžāϰ namespace-āĻ āĻĒā§āϰāĻŦā§āĻļ āĻāϰ⧠process 1-āĻāϰ system call āĻā§āϰā§āϏ āĻāϰāĻž | |
| nsenter --target $(docker inspect --format '{{.State.Pid}}' my_container) --mount --uts --ipc --net --pid bash | āĻāύāĻā§āĻāύāĻžāϰ namespace-āĻ bash āĻļā§āϞ āĻā§āϞāĻž | |
| nsenter --target $(docker inspect --format '{{.State.Pid}}' my_container) --net netstat -tulnp | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻāĻŋāϤāϰ⧠āĻā§āϞāĻž āĻĒā§āϰā§āĻ āĻĻā§āĻāĻž | |
| tcpdump(inside container) | āĻāύāϏā§āϞ āĻā§āϞ āϝāĻž āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻā§āϝāĻžāĻĒāĻāĻžāϰ āĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰā§āĨ¤ āĻāύāĻā§āĻāύāĻžāϰ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϏāĻŽāϏā§āϝāĻž āύāĻŋāϰā§āĻŖāϝāĻŧ, āĻĒā§āϝāĻžāĻā§āĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻ āϏāĻāϝā§āĻ āĻŽāύāĻŋāĻāϰāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāϝāĻŧ | |
| docker exec -it my_container tcpdump -i any | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻā§āϝāĻžāĻĒāĻāĻžāϰ āĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ | |
| docker exec -it my_container tcpdump -nn port 80 | āĻļā§āϧ⧠āĻĒā§āϰā§āĻ 80-āĻāϰ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻā§āϝāĻžāĻĒāĻāĻžāϰ āĻāϰāĻž | |
| docker exec -it my_container tcpdump -w /tmp/dump.pcap | āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻĢāĻžāĻāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āĻĒāϰ⧠āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰāĻž | |
| docker container stats | āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āϰāĻŋāϏā§āϰā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ (CPU, āĻŽā§āĻŽāϰāĻŋ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ, āĻĄāĻŋāϏā§āĻ) āĻĻā§āĻāĻžāύ⧠| |
| docker stats my_container | āĻāύāĻā§āĻāύāĻžāϰā§āϰ CPU, āĻŽā§āĻŽāϰāĻŋ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āĻĄāĻŋāϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽā§ āĻĻā§āĻāĻž | |
| docker stats | āϏāĻŦ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏā§āĻā§āϝāĻžāĻ āĻĻā§āĻāĻžāύ⧠| |
| docker stats --no-stream | āĻāĻāĻŦāĻžāϰ āĻāĻāĻāĻĒā§āĻ āĻĻāĻŋāϝāĻŧā§ exit āĻāϰāĻž | |
| docker container top | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻāĻŋāϤāϰ⧠āĻāϞāĻŽāĻžāύ āĻĒā§āϰāϏā§āϏā§āϰ āϤāĻžāϞāĻŋāĻāĻž āĻĻā§āĻāĻžāύā§, Linux-āĻāϰ psāĻāϰ āĻŽāϤā§, āĻāύāĻā§āĻāύāĻžāϰ āĻ
ā§āϝāĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋ āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§āϰ āĻāύā§āϝ | |
| docker top my_container | āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāϞāĻŽāĻžāύ āĻĒā§āϰāϏā§āϏāĻā§āϞ⧠āĻĻā§āĻāĻžāύ⧠| |
| docker top my_container aux | 
 | |
| docker top my_container -eo pid,cmd | āĻļā§āϧ⧠PID āĻ āĻĒā§āϰāϏā§āϏ āĻāĻŽāĻžāύā§āĻĄ āĻĻā§āĻāĻžāύ⧠| |
| docker diff | āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻĢāĻžāĻāϞāϏāĻŋāϏā§āĻā§āĻŽā§ base image-āĻāϰ āϤā§āϞāύāĻžāϝāĻŧ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ (āϝā§āĻ, āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ, āĻŦāĻž āĻŽā§āĻā§ āĻĢā§āϞāĻž āĻĢāĻžāĻāϞ) āĻĻā§āĻāĻžāύ⧠| |
| docker diff my_container | base image āĻāϰ āϏāĻžāĻĨā§ āϤā§āϞāύāĻž āĻāϰ⧠āĻāύāĻā§āĻāύāĻžāϰ āĻĢāĻžāĻāϞāϏāĻŋāϏā§āĻā§āĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĻā§āĻāĻžāύ⧠| |
| docker diff my_container | grep '^A' | āĻļā§āϧ⧠āϝā§āĻ āĻāϰāĻž āĻĢāĻžāĻāϞ ( | |
| docker diff my_container | grep '^C' | āĻļā§āϧ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻĢāĻžāĻāϞ ( | |
| docker cp | āĻāύāĻā§āĻāύāĻžāϰ āĻ āĻšā§āϏā§āĻ āĻŽā§āĻļāĻŋāύā§āϰ āĻŽāϧā§āϝ⧠āĻĢāĻžāĻāϞ āĻ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻāĻĒāĻŋ āĻāϰāĻž, āϝāĻž āĻĄā§āĻāĻž āĻāĻā§āϏāĻā§āĻā§āĻ āĻ āĻŦā§āϝāĻžāĻāĻāĻĒā§ āϏāĻšāĻžāϝāĻŧāĻ | |
| â | â | â | 
| docker cp my_container:/path/to/file ./file | āĻāύāĻā§āĻāύāĻžāϰ āĻĨā§āĻā§ āĻšā§āϏā§āĻā§ āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰāĻž | |
| docker cp ./config.yaml my_container:/app/config.yaml | āĻšā§āϏā§āĻ āĻĨā§āĻā§ āĻāύāĻā§āĻāύāĻžāϰ⧠āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰāĻž | |
| docker cp my_container:/var/log/app.log - | tar x -O | grep "ERROR" | āϞāĻ āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰ⧠error āϞāĻžāĻāύ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāĻž āĻāĻŋāύā§āϤ⧠āĻĄāĻŋāϏā§āĻā§ āϏāĻāϰāĻā§āώāĻŖ āύāĻž āĻāϰāĻž | 
đĄ āĻāύā§āύāϤ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ
nsenter,strace,tcpdump,gdbāĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ low-level āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
đŧ āĻāύā§āύāϤ Docker Compose āĻŦā§āϝāĻŦāĻšāĻžāϰ
đ āĻĒā§āĻļāĻžāĻĻāĻžāϰ Docker Compose āĻāĻŽāĻžāύā§āĻĄ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker compose up | docker-compose.ymlāĻĢāĻžāĻāϞ āĻĨā§āĻā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāϞ⧠āĻ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž, āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄā§ āĻāĻžāϞāĻžāύā§āϰ āϏā§āĻŦāĻŋāϧāĻžāϏāĻš | |
| docker compose up -d web db | āĻļā§āϧ⧠ | |
| docker compose up --build | āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāϞā§āϰ āĻāĻā§ āĻāĻŽā§āĻ rebuild āĻāϰāĻž | |
| docker compose up --remove-orphans | āĻŦāϰā§āϤāĻŽāĻžāύ compose āĻĢāĻžāĻāϞ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāϝāĻŧ āĻāĻŽāύ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker compose build | compose āĻĢāĻžāĻāϞ⧠āĻŦāϰā§āĻŖāĻŋāϤ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻŽā§āĻ build āĻāϰāĻž, cache control āĻ parallel build āϏāĻžāĻĒā§āϰā§āĻāϏāĻš | |
| docker compose build --no-cache | cache āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻŽā§āĻ rebuild | |
| docker compose build --parallel | āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻāϏāĻžāĻĨā§ build āĻāϰ⧠āĻāϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύ⧠| |
| docker compose build web | āĻļā§āϧ⧠ | |
| docker compose pull | āϏāĻŦ āĻŦāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāύā§āϝ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āĻĨā§āĻā§ āϏāϰā§āĻŦāĻļā§āώ āĻāĻŽā§āĻ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻž | |
| docker compose pull | āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāĻŽā§āĻ pull āĻāϰāĻž | |
| docker compose pull db | āĻļā§āϧ⧠ | |
| docker compose pull --ignore-pull-failures | pull āĻāϞāĻžāĻāĻžāϞ⧠error āĻāĻĒā§āĻā§āώāĻž āĻāϰ⧠āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻž | |
| docker compose restart | āϏāĻŦ āĻŦāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāϰāĻž, āĻāύāĻā§āĻāύāĻžāϰ recreate āύāĻž āĻāϰ⧠| |
| docker compose restart | āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒā§āϰāĻā§āĻā§āĻā§āϰ āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ | |
| docker compose restart worker | āĻļā§āϧ⧠ | |
| docker compose restart web db | āĻāĻāϏāĻžāĻĨā§ āĻāĻāĻžāϧāĻŋāĻ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ | |
| docker compose exec | āĻāϞāĻŽāĻžāύ āϏāĻžāϰā§āĻāĻŋāϏ āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύā§, āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ āĻŽā§āĻĄāϏāĻš | |
| docker compose exec db psql -U user -d database | 
 | |
| docker compose exec web sh | 
 | |
| docker compose exec api curl http://localhost:8080 | 
 | |
| docker compose config | āϏāĻŦ āĻĢāĻžāĻāϞ āĻ environment variable āĻŦāĻŋāĻŦā§āĻāύāĻžāϝāĻŧ āύāĻŋāϝāĻŧā§ āĻā§āĻĄāĻŧāĻžāύā§āϤ Compose āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻāĻāĻāĻĒā§āĻ āĻāϰāĻž | |
| docker compose config | YAML āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻŽāĻžāϰā§āĻ āĻāϰāĻž āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĻā§āĻāĻžāύ⧠| |
| docker compose config --services | āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏ āϤāĻžāϞāĻŋāĻāĻž āĻĻā§āĻāĻžāύ⧠| |
| docker compose config --environment | āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āϏāĻŦ environment variable āĻĻā§āĻāĻžāύ⧠| |
| docker compose watch | āϏā§āϰā§āϏ āĻĢāĻžāĻāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻŽāϝāĻŧ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāϰāĻž, āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻā§ āĻāĻĒāϝā§āĻā§ | |
| docker compose watch | āĻĢāĻžāĻāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻļā§āϰ⧠āĻāϰ⧠āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāϰāĻž | |
| docker compose events | Compose āĻāĻā§āύā§āĻ āϏā§āĻā§āϰāĻŋāĻŽ āĻāϰāĻž: āϏāĻžāϰā§āĻāĻŋāϏ start, stop, update | |
| docker compose events --json | āĻāĻā§āύā§āĻāĻā§āϞ⧠JSON āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻā§āϰāĻšāĻŖ āĻāϰāĻž | |
| docker compose rm | āϏā§āĻāĻĒāĻĄ āϏāĻžāϰā§āĻāĻŋāϏ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāĻž | |
| docker compose rm web db | 
 | |
| docker compose pause | āϏāĻžāϰā§āĻāĻŋāϏ āĻ āĻĒāĻžāϰā§āĻļāύ pause āĻāϰāĻž | |
| docker compose pause api | 
 | |
| docker compose unpause | pause āĻāϰāĻž āϏāĻžāϰā§āĻāĻŋāϏ resume āĻāϰāĻž | |
| docker compose unpause api | 
 | |
| docker compose create | āĻāύāĻā§āĻāύāĻžāϰ āϤā§āϰāĻŋ āĻāϰāĻž āĻāĻŋāύā§āϤ⧠āĻāĻžāϞ⧠āύāĻž āĻāϰāĻž | |
| docker compose create web db | 
 | |
| docker compose images | āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŽā§āĻ āϤāĻžāϞāĻŋāĻāĻž āĻĻā§āĻāĻžāύ⧠| |
| docker compose images | āϏāĻŦ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāĻŽā§āĻ āĻĻā§āĻāĻžāύ⧠| |
| docker compose top | āϏāĻžāϰā§āĻāĻŋāϏ āĻāύāĻā§āĻāύāĻžāϰ⧠āĻāϞāĻŽāĻžāύ āĻĒā§āϰāϏā§āϏ āĻĻā§āĻāĻžāύ⧠| |
| docker compose top web | 
 | 
đ Docker Compose āĻĻāĻŋāϝāĻŧā§ āĻāĻĒāϝā§āĻā§ āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāϏ āĻ āĻ āĻā§āĻŽā§āĻļāύ
- āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻāϞāĻžāĻĻāĻž āĻāϰāĻž 
 āĻāĻŋāύā§āύ āĻāĻŋāύā§āύ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻā§āϰ āĻāύā§āϝ (development, staging, production) āĻāϞāĻžāĻĻāĻž- docker-compose.override.ymlāĻĢāĻžāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āĻāϤ⧠āĻāύāĻĢāĻŋāĻ āĻāϞāĻžāĻĻāĻž āĻĨāĻžāĻā§ āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āĻāĻĄāĻŧāĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤
 āĻāĻāĻžāϧāĻŋāĻ config āĻĢāĻžāĻāϞ- -fāĻĢā§āϞā§āϝāĻžāĻ āĻĻāĻŋāϝāĻŧā§ combine āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:- docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d- āĻāĻŋāύā§āύ - .envāĻĢāĻžāĻāϞ (- .env.dev,- .env.prodāĻāϤā§āϝāĻžāĻĻāĻŋ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠environment variable āĻŽā§āϝāĻžāύā§āĻ āĻāϰā§āύāĨ¤
- āϏāĻŋāĻā§āϰā§āĻ āύāĻŋāϰāĻžāĻĒāĻĻā§ āϏāĻāϰāĻā§āώāĻŖ 
 āϏāĻāĻŦā§āĻĻāύāĻļā§āϞ āĻĄā§āĻāĻž (āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ, āĻā§āĻā§āύ) āϏāϰāĻžāϏāϰāĻŋ Compose āĻĢāĻžāĻāϞ⧠āϰāĻžāĻāĻŦā§āύ āύāĻžāĨ¤ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ:- .envāĻĢāĻžāĻāϞ (āĻāĻā§āϞ⧠āĻāύāĻā§āϰāĻŋāĻĒā§āĻā§āĻĄ āύāϝāĻŧ, āĻĒāĻžāĻŦāϞāĻŋāĻ āϰāĻŋāĻĒā§āϤ⧠commit āĻāϰāĻž āĻāĻāĻŋāϤ āύāϝāĻŧ)
 
- docker secretāĻ- docker config(Swarm-āĻ āύāĻŋāϰāĻžāĻĒāĻĻ āϏāĻŋāĻā§āϰā§āĻ āĻ āĻāύāĻĢāĻŋāĻ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻā§āϰ āĻāύā§āϝ)
 
- āϏāĻŋāĻā§āϰā§āĻāϏāĻš āĻāύāĻĢāĻŋāĻ āĻĢāĻžāĻāϞā§āϰ āĻāύā§āϝ external āĻāϞāĻŋāĻāĻŽ
 
- āĻŦāĻžāĻšā§āϝāĻŋāĻ secret management āϏāĻŋāϏā§āĻā§āĻŽ (āϝā§āĻŽāύ HashiCorp Vault, AWS Secrets Manager) 
 
- depends_onāĻ- healthcheckāĻĻāĻŋāϝāĻŧā§ āϏā§āĻāĻžāϰā§āĻāĻāĻĒ āĻ āϰā§āĻĄāĻžāϰ
 āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āĻā§ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āĻĒā§āϰāϏā§āϤā§āϤ āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻ āĻĒā§āĻā§āώāĻž āĻāϰāĻžāϤā§:- services: db: image: postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s retries: 5 api: image: my_api depends_on: db: condition: service_healthy
- āĻāĻĒāĻĄā§āĻā§āϰ āϏāĻŽāϝāĻŧ downtime āĻāĻŽāĻžāύ⧠
 āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻĒāĻĄā§āĻā§āϰ āĻāĻā§ āĻāĻžāϞāĻžāύ:- docker compose pull && docker compose up -d --remove-orphans- -dāĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄā§ āĻāĻžāϞāĻžāϝāĻŧ, āĻāϰ- --remove-orphansāĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĻā§āϝāĻŧāĨ¤
 āĻĒā§āϰāĻžāύ⧠āĻāύāĻā§āĻāύāĻžāϰ āĻĒā§āϰā§āĻĒā§āϰāĻŋ āĻŦāύā§āϧ āĻ āĻŽā§āĻā§ āĻĢā§āϞāϤā§:- docker compose down --remove-orphans- āĻāϤ⧠āύāϤā§āύ āĻāĻŽā§āĻ āϞā§āĻĄ āĻšāϝāĻŧ āĻ downtime āĻāĻžāĻĄāĻŧāĻž āĻāύāĻā§āĻāύāĻžāϰ āϰāĻŋāĻĢā§āϰā§āĻļ āĻšāϝāĻŧāĨ¤ 
- āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻā§ āĻšāĻ āĻā§āĻĄ āϰāĻŋāϞā§āĻĄ (āĻāϞāĻŋāĻāĻŽ āĻĻāĻŋāϝāĻŧā§) 
 - volumesāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϞā§āĻāĻžāϞ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻāύāĻā§āĻāύāĻžāϰ⧠āĻŽāĻžāĻāύā§āĻ āĻāϰā§āύāĨ¤ āĻāϤ⧠āĻāĻŽā§āĻ rebuild āĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻĄ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϤāĻžā§āĻā§āώāĻŖāĻŋāĻ āĻāĻžāϰā§āϝāĻāϰ āĻšāϝāĻŧāĨ¤
 āĻĢāĻžāĻāϞ permission āϏāĻŽāϏā§āϝāĻž āĻ cache āĻāϰ āĻĒāĻžāϰā§āĻĨāĻā§āϝ (āĻŦāĻŋāĻļā§āώ āĻāϰ⧠Windows āĻ macOS āĻ) āĻŽāĻžāĻĨāĻžāϝāĻŧ āϰāĻžāĻā§āύāĨ¤
- āĻāϞāĻŋāĻāĻŽ āĻāĻžāĻĄāĻŧāĻž āĻšāĻ āĻā§āĻĄ āϰāĻŋāϞā§āĻĄ (Compose 2.22+) - develop: watch: - path: ./src action: sync target: /app
- āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āϏā§āύā§āĻā§āϰāĻžāϞāĻžāĻāĻāĻĄ āϞāĻāĻŋāĻ 
 āϞāĻāĻā§āϞ⧠ELK Stack, Loki, Prometheus, Fluentd āĻāϰ āĻŽāϤ⧠āϏāĻŋāϏā§āĻā§āĻŽā§ āĻĒāĻžāĻ āĻžāύ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻ āĻ ā§āϝāĻžāϞāĻžāϰā§āĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝāĨ¤
 Docker logging driver (- --log-driver) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏā§āύā§āĻā§āϰāĻžāϞ āϞāĻ āĻāĻžāϞā§āĻāĻļāύ āĻāĻžāϞ⧠āĻāϰā§āύāĨ¤
 Compose āĻ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻāύā§āϝ logging driver āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āύ:- services: api: image: my_api logging: driver: "json-file" options: max-size: "10m" max-file: "3"
- āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ 
 - docker-compose.ymlāĻ restart āĻĒāϞāĻŋāϏāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āύ:- restart: unless-stopped- āĻ āύā§āϝ restart āĻĒāϞāĻŋāϏāĻŋ: - noâ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āύāϝāĻŧ (āĻĄāĻŋāĻĢāϞā§āĻ)
 
- alwaysâ āϏāĻŦāϏāĻŽāϝāĻŧ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ
 
- on-failureâ āĻā§āĻŦāϞ error āĻšāϞ⧠āϰāĻŋāϏā§āĻāĻžāϰā§āĻ (āĻāĻā§āĻāĻŋāĻ retry count āϏāĻš)
 - Production-āĻ - unless-stoppedāϏāĻŦāĻā§āϝāĻŧā§ āĻāĻĒāϝā§āĻā§āϤ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āϏā§āĻĨāĻžāϝāĻŧāĻŋāϤā§āĻŦ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤā§āĨ¤
 āĻāĻāĻŋ failure āĻŦāĻž host reboot āĻāϰ āĻĒāϰ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻžāϰā§āĻāĻŋāϏ āĻĒā§āύāϰā§āĻĻā§āϧāĻžāϰ āĻāϰā§āĨ¤
- āϏāĻžāϰā§āĻāĻŋāϏ āĻĒā§āϰā§āĻĢāĻžāĻāϞ 
 āĻļā§āϧ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāϰā§āĻāĻŋāϏ āĻā§āϰā§āĻĒ āĻāĻžāϞāĻžāύā§āϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ:- services: db: image: postgres profiles: ["backend"] web: image: nginx profiles: ["frontend"]- āĻļā§āϧ⧠frontend āĻĒā§āϰā§āĻĢāĻžāĻāϞ āĻāĻžāϞāĻžāϤā§: - docker compose --profile frontend up
đ Docker Compose-āĻ āϏāĻžāϰā§āĻāĻŋāϏ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻ āĻĒā§āϰā§āĻĢāĻžāĻāϞāĻŋāĻ
| āĻāĻŽāĻžāύā§āĻĄ | āĻāĻĻāĻžāĻšāϰāĻŖ | āĻŦāϰā§āĻŖāύāĻž | 
|---|---|---|
| docker compose exec | āĻāϞāĻŽāĻžāύ āϏāĻžāϰā§āĻāĻŋāϏ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύā§, āϝāĻž āĻāύāĻā§āĻāύāĻžāϰ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻĻā§āϝāĻŧ āĻŦāĻž āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻžāϞāĻžāϤ⧠āϏāĻā§āώāĻŽ āĻāϰ⧠| |
| docker compose exec web sh | 
 | |
| docker compose exec db psql -U user -d database | 
 | |
| docker compose logs | āĻĄāĻžāϝāĻŧāĻžāĻāύāϏā§āĻāĻŋāĻ āĻ āĻŽāύāĻŋāĻāϰāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āϏāĻžāϰā§āĻāĻŋāϏ āϞāĻ āĻĻā§āĻāĻž | |
| docker compose logs -f db | 
 | |
| docker compose logs --tail=50 api | 
 | |
| docker compose logs --since=1h web | 
 | |
| docker inspect | āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāϞāĻžāύ⧠āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āϤāĻĨā§āϝ āĻĻā§āĻāĻž | |
| docker inspect $(docker compose ps -q web) | 
 | |
| docker container stats | āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāϞāĻžāύ⧠āĻāύāĻā§āĻāύāĻžāϰāĻā§āϞā§āϰ āϰāĻŋāϏā§āϰā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŽāύāĻŋāĻāϰ āĻāϰāĻž | |
| docker stats $(docker compose ps -q worker) | 
 | |
| docker compose run --rm | āϏāĻžāϰā§āĻāĻŋāϏ āϏā§āĻāĻŋāĻāϏāϏāĻš āĻ āϏā§āĻĨāĻžāϝāĻŧā§ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞāĻžāύā§, āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻāϝāĻŧā§ āĻāĻĒāϝā§āĻā§ | |
| docker compose run --rm web sh | 
 | |
| docker container cp | āĻšā§āϏā§āĻ āĻ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰāĻž | |
| docker cp $(docker compose ps -q db):/dump.sql ./dump.sql | 
 | 
đĄ āĻāĻāĻŋāϞ multi-service āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ
docker compose run --rmāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āĻāϤ⧠āĻāϞāĻžāĻĻāĻž āĻāύāĻā§āĻāύāĻžāϰ āĻāĻžāϞāĻžāύ⧠āϝāĻžāϝāĻŧ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āĻāϞāĻŋāĻāĻŽāϏāĻš, āĻŽā§āϞ āϏāĻžāϰā§āĻāĻŋāϏ⧠āĻĒā§āϰāĻāĻžāĻŦ āύāĻž āĻĢā§āϞā§āĨ¤
đ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϰāĻŋāϏā§āϰā§āϏ
đĢ .dockerignore āĻĻāĻŋāϝāĻŧā§ āĻĢāĻžāĻāϞ āĻāĻĒā§āĻā§āώāĻž āĻāϰāĻž
āĻāĻŽā§āĻā§ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ .dockerignore āĻ āĻĢāĻžāĻāϞ āĻ āĻĢā§āϞā§āĻĄāĻžāϰ āϝā§āĻ āĻāϰā§āύāĨ¤ āĻāϤ⧠āϏāĻžāĻāĻ āĻāĻŽā§ āĻ build āĻĻā§āϰā§āϤ āĻšāϝāĻŧ:
node_modules/
*.log
.env⥠āĻāϞāĻŋāϝāĻŧāĻžāϏ āĻĻāĻŋāϝāĻŧā§ āĻāĻŽāĻžāύā§āĻĄ āϏāĻšāĻ āĻāϰāĻž
āĻĒā§āϰāĻžāϝāĻŧāĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŽāĻžāύā§āĻĄ āĻĻā§āϰā§āϤ āĻāĻžāϞāĻžāϤ⧠āĻāϞāĻŋāϝāĻŧāĻžāϏ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
alias dcu="docker compose up -d"
alias dcd="docker compose down"
alias dcb="docker compose build"đ§ āĻāĻŋāĻĒ: Docker āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ
- āϏāĻŦ āĻŽā§āĻāϏā§āĻĨ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŦā§āύ āύāĻž â āĻāĻŽāĻžāύā§āĻĄ āĻĻā§āĻāϤ⧠docker --helpāĻŦāĻždocker <command> --helpāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
 
- āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāϏ āĻāϰā§āύ āĻ āϏāĻšāĻ āĻĒā§āϰāĻā§āĻā§āĻā§ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāύāĨ¤
 
- āĻāĻŽā§āĻ āϏāĻžāĻāĻ āύāĻāϰ⧠āϰāĻžāĻā§āύ āĻ - .dockerignoreāĻĻāĻŋāϝāĻŧā§ āĻ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻĢāĻžāĻāϞ āĻŽā§āĻā§ āĻĢā§āϞā§āύāĨ¤
đ āĻĻāϰāĻāĻžāϰ⧠āϞāĻŋāĻā§āĻ
đ āĻ
āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ Docker āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ â āϏāĻŦ Docker āĻŦāĻŋāώāϝāĻŧā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāĻāĻĄ āĻ āϰā§āĻĢāĻžāϰā§āύā§āϏ:
https://docs.docker.com/
đ Docker Cheat Sheet â āĻ
āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āϏāĻŽā§āĻĒā§āϰā§āĻŖ Docker āĻāĻŋāĻ āĻļā§āĻ:
https://dockerlabs.collabnix.com/docker/cheatsheet/
đ Docker Hub â āĻāĻŽā§āĻ āĻ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ:
https://hub.docker.com/