ЁЯР│ 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 рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рджрд┐рдЦрд╛рдПрдБ |
|
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 рд╕реЗ рдмрд╛рдБрдзреЗрдВ |
|
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 |
рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЯрд░реНрдорд┐рдирд▓ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ |
|
docker container stop |
рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХреЗрдВ | |
docker stop container_name |
рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рдХрдВрдЯреЗрдирд░ рд░реЛрдХреЗрдВ |
|
docker stop $(docker ps -q) |
рд╕рднреА рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рд░реЛрдХреЗрдВ |
|
docker stop -t 5 container_name |
рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 5 рд╕реЗрдХрдВрдб рджреЗрдВ рдФрд░ рдлрд┐рд░ рд░реЛрдХреЗрдВ |
|
docker container restart |
рдХрдВрдЯреЗрдирд░ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ | |
docker restart container_name |
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker restart $(docker ps -q) |
рд╕рднреА рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker restart -t 10 container_name |
10 рд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
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 |
рдХрдВрдЯреЗрдирд░ рдореЗрдВ detached рдореЛрдб рдореЗрдВ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ (рдмрд┐рдирд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП) |
|
docker container logs |
рдХрдВрдЯреЗрдирд░ рд▓реЙрдЧ рджреЗрдЦреЗрдВ | |
docker logs container |
|
|
docker logs -f container |
рдХрдВрдЯреЗрдирд░ рд▓реЙрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдлрд╝реЙрд▓реЛ рдХрд░реЗрдВ |
|
docker logs --tail 50 container |
рд▓реЙрдЧ рдХреА рдЕрдВрддрд┐рдо 50 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдПрдБ |
|
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 |
рдПрдХ рдмрд╛рд░ рдХрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рджрд┐рдЦрд╛рдПрдБ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ |
|
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" |
рдХрдВрдЯреЗрдирд░ рд╕реЗ рд▓реЙрдЧ рд╕реНрдЯреНрд░реАрдо рдХрд░реЗрдВ рдФрд░ тАЬERRORтАЭ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ (рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬреЗ рдмрд┐рдирд╛) |
|
docker container top |
рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рджрд┐рдЦрд╛рдПрдБ | |
docker top container |
|
|
docker container pause |
рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд░реЛрдХреЗрдВ | |
docker pause container |
|
|
docker container unpause |
рд░реБрдХреЗ рд╣реБрдП рдХрдВрдЯреЗрдирд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ | |
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 рдпрд╛ рдЕрдиреНрдп рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкрд░ рдЗрдореЗрдЬ рдкреБрд╢ рдХрд░реЗрдВ | |
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 |
рд╣рд░ 30 рд╕реЗрдХрдВрдб рдореЗрдВ рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрд▓реНрдердЪреЗрдХ рдЬреЛрдбрд╝реЗрдВ |
|
docker inspect --format='{{json .State.Health}}' container_name |
рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХрд╛ рд╣реЗрд▓реНрдердЪреЗрдХ рд╕реНрдЯреЗрдЯрд╕ рдЬрд╛рдБрдЪреЗрдВ |
ЁЯФМ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╡реЙрд▓реНрдпреВрдо
рдХрдорд╛рдВрдб |
рдЙрджрд╛рд╣рд░рдг |
рд╡рд┐рд╡рд░рдг |
|---|---|---|
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 |
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдмрдиреЗрдЯ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдПрдБ |
|
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 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 up |
docker-compose.yml рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker compose up |
рд╡рд░реНрддрдорд╛рди рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕рднреА рд╕реЗрд╡рд╛рдПрдБ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker compose up -d |
рд╕реЗрд╡рд╛рдУрдВ рдХреЛ detached рдореЛрдб (рдкреГрд╖реНрдарднреВрдорд┐) рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker compose up --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 |
рд╕реЗрд╡рд╛ рдЗрдореЗрдЬ рдмрдирд╛рдПрдБ рдпрд╛ рдкреБрдирдГ рдмрдирд╛рдПрдБ | |
docker compose build |
|
|
docker compose build web |
рдХреЗрд╡рд▓ |
|
docker compose build --no-cache |
рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдореЗрдЬ рдмрдирд╛рдПрдБ |
|
docker compose ps |
рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдПрдБ | |
docker compose ps -a |
рд╕рднреА рдХрдВрдЯреЗрдирд░ рджрд┐рдЦрд╛рдПрдБ, рдЬрд┐рдирдореЗрдВ рд░реБрдХреЗ рд╣реБрдП рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ |
|
docker compose ps --services |
рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдирд╛рдо рджрд┐рдЦрд╛рдПрдБ |
|
docker compose pull |
рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рд╕реЗрд╡рд╛ рдЗрдореЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб/рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ | |
docker compose pull web |
рдХреЗрд╡рд▓ |
|
docker compose pull --ignore-pull-failures |
рдХреБрдЫ рдЗрдореЗрдЬ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рднреА рдЬрд╛рд░реА рд░рдЦреЗрдВ |
|
docker compose restart |
рд╕рднреА рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ | |
docker compose restart db |
рдХреЗрд╡рд▓ |
|
docker compose restart -t 10 |
10-рд╕реЗрдХрдВрдб рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛рдПрдБ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker compose config |
рдЕрдВрддрд┐рдо Compose рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдПрдБ | |
docker compose config --services |
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рднреА рд╕реЗрд╡рд╛рдПрдБ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ |
|
docker compose config --volumes |
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рднреА рд╡реЙрд▓реНрдпреВрдо рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ |
|
docker compose start |
рд░реБрдХреА рд╣реБрдИ рд╕реЗрд╡рд╛рдПрдБ рдХрдВрдЯреЗрдирд░ рдкреБрдирдГ рдмрдирд╛рдП рдмрд┐рдирд╛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ | |
docker compose start web |
|
|
docker compose start db api |
рдПрдХ рд╕рд╛рде рдХрдИ рд╕реЗрд╡рд╛рдПрдБ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker compose stop |
рдХрдВрдЯреЗрдирд░ рд╣рдЯрд╛рдП рдмрд┐рдирд╛ рд╕реЗрд╡рд╛рдПрдБ рд░реЛрдХреЗрдВ | |
docker compose stop web |
|
|
docker compose stop -t 5 |
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 |
рдкреНрд░рдЧрддрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд┐рдирд╛ рдЗрдореЗрдЬ рд▓реЛрдб рдХрд░реЗрдВ |
|
docker container export |
рдХрдВрдЯреЗрдирд░ рдХреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ tar рдЖрд░реНрдХрд╛рдЗрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ (рдмрд┐рдирд╛ рдЗрддрд┐рд╣рд╛рд╕ рдпрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛) | |
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 |
рдорд╛рдирдХ рдЗрдирдкреБрдЯ рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ |
ЁЯз╣ рд╕рдлрд╛рдИ рдФрд░ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕
рдХрдорд╛рдВрдб |
рдЙрджрд╛рд╣рд░рдг |
рд╡рд┐рд╡рд░рдг |
|---|---|---|
docker system df |
Docker рдбрд┐рд╕реНрдХ рдЙрдкрдпреЛрдЧ рджрд┐рдЦрд╛рдПрдБ: рд╡реЙрд▓реНрдпреВрдо, рдЗрдореЗрдЬ, рдХрдВрдЯреЗрдирд░ рдФрд░ рдмрд┐рд▓реНрдб рдХреИрд╢ | |
docker system df -v |
рдкреНрд░рддреНрдпреЗрдХ рдЗрдореЗрдЬ, рдХрдВрдЯреЗрдирд░ рдФрд░ рд╡реЙрд▓реНрдпреВрдо рдХреА рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдПрдБ |
|
docker system df --format '{{json .}}' |
рдЬрд╛рдирдХрд╛рд░реА JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ |
|
docker system prune |
рд╕рднреА рдЕрдкреНрд░рдпреБрдХреНрдд Docker рдбреЗрдЯрд╛ рд╣рдЯрд╛рдПрдБ: рд░реБрдХреЗ рд╣реБрдП рдХрдВрдЯреЗрдирд░, рдЕрдкреНрд░рдпреБрдХреНрдд рдиреЗрдЯрд╡рд░реНрдХ, dangling рдЗрдореЗрдЬ рдФрд░ рдмрд┐рд▓реНрдб рдХреИрд╢ | |
docker system prune -a |
рдЕрдкреНрд░рдпреБрдХреНрдд рдЗрдореЗрдЬ рд╣рдЯрд╛рдПрдБ, рдЬрд┐рдирдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ |
|
docker system prune --volumes |
рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкреНрд░рдпреБрдХреНрдд рд╡реЙрд▓реНрдпреВрдо рд╣рдЯрд╛рдПрдБ |
|
docker image prune |
рдЕрдкреНрд░рдпреБрдХреНрдд Docker рдЗрдореЗрдЬ рд╣рдЯрд╛рдПрдБ, рдЬрд┐рдирдореЗрдВ dangling рд▓реЗрдпрд░реНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ | |
docker image prune -a |
рд╕рднреА рдЕрдкреНрд░рдпреБрдХреНрдд рдЗрдореЗрдЬ рд╣рдЯрд╛рдПрдБ, рдЬрд┐рдирдореЗрдВ dangling рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ |
|
docker image prune --filter "until=24h" |
24 рдШрдВрдЯреЗ рд╕реЗ рдкреБрд░рд╛рдиреА рдЗрдореЗрдЬ рд╣рдЯрд╛рдПрдБ |
|
docker container prune |
рдлрд╝рд┐рд▓реНрдЯрд░ рдорд┐рд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд░реБрдХреЗ рд╣реБрдП рдХрдВрдЯреЗрдирд░ рд╣рдЯрд╛рдПрдБ рдпрд╛ рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рд╣реЛрдВ рддреЛ рд╕рднреА рд╣рдЯрд╛рдПрдБ | |
docker container prune --filter "until=24h" |
24 рдШрдВрдЯреЗ рд╕реЗ рдкреБрд░рд╛рдиреЗ рд░реБрдХреЗ рд╣реБрдП рдХрдВрдЯреЗрдирд░ рд╣рдЯрд╛рдПрдБ |
|
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 |
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker service create |
Swarm рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдирдИ рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдБ | |
docker service create --name nginx nginx |
Swarm рдореЗрдВ Nginx рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдБ |
|
docker service create --replicas 3 --name web webserver |
3 рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдБ |
|
docker service create --name redis --publish 6379:6379 redis |
рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдБ |
|
docker stack deploy |
Compose рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Swarm рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╕реНрдЯреИрдХ рддреИрдирд╛рдд рдХрд░реЗрдВ | |
docker stack deploy -c docker-compose.yml mystack |
Compose рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реНрдЯреИрдХ рддреИрдирд╛рдд рдХрд░реЗрдВ |
|
docker stack deploy --with-registry-auth -c compose.yml mystack |
рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░реЗрдВ |
|
docker stack deploy -c swarm-compose.yml mystack |
рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ Compose рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ |
|
docker stack rm |
Swarm рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрдЯреИрдХ рд╣рдЯрд╛рдПрдБ | |
docker stack rm mystack |
|
|
docker stack rm |
рд╕рднреА рд╕реНрдЯреИрдХ рд╣рдЯрд╛рдПрдБ (рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ) |
|
docker stack rm mystack && docker swarm leave --force |
рд╕реНрдЯреИрдХ рд╣рдЯрд╛рдПрдБ рдФрд░ Swarm рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ |
ЁЯТ╝ рдЙрдиреНрдирдд рдбреЙрдХрд░ рдЙрдкрдпреЛрдЧ
ЁЯЪА рдкреНрд░реЛрдлреЗрд╢рдирд▓ Docker рдХрдорд╛рдВрдб
рдХрдорд╛рдВрдб |
рдЙрджрд╛рд╣рд░рдг |
рд╡рд┐рд╡рд░рдг |
|---|---|---|
docker buildx |
docker build рдХрд╛ рд╕реНрдерд╛рди рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдЙрдиреНрдирдд рдЗрдореЗрдЬ рдмрд┐рд▓реНрдб рдЯреВрд▓ред рдорд▓реНрдЯреА-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдХреИрд╢рд┐рдВрдЧ, рдкреИрд░реЗрд▓рд▓ рдмрд┐рд▓реНрдб рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред CI/CD рдФрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА |
|
docker buildx build --platform linux/arm64,linux/amd64 -t myimg:multi . |
рдорд▓реНрдЯреА-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрдореЗрдЬ рдмрдирд╛рдПрдБ (рдПрдХ рд╕рд╛рде ARM рдФрд░ x86) |
|
docker buildx build --load -t localimg . |
рдЗрдореЗрдЬ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп Docker Engine рдХреИрд╢ рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ |
|
docker buildx build --push --platform linux/amd64,linux/arm64 -t repo/app:latest . |
рдорд▓реНрдЯреА-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрдореЗрдЬ рдмрдирд╛рдПрдБ рдФрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдкреБрд╢ рдХрд░реЗрдВ |
|
docker context |
рд░рд┐рдореЛрдЯ рдпрд╛ рдХрдИ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Docker рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред рд╕реНрдерд╛рдиреАрдп рдФрд░ рд░рд┐рдореЛрдЯ Docker Engines рдХреЗ рдмреАрдЪ рддреЗрдЬрд╝реА рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо | |
docker context create myremote --docker "host=ssh://user@host" |
рд░рд┐рдореЛрдЯ Docker рд╣реЛрд╕реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдмрдирд╛рдПрдБ |
|
docker context use myremote |
рд░рд┐рдореЛрдЯ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ |
|
docker context ls |
рдЙрдкрд▓рдмреНрдз рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ |
|
docker system events |
Docker рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╕реБрдиреЗрдВ, рдШрдЯрдирд╛ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде (рдЬреИрд╕реЗ рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрдн)ред рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА | |
docker events --filter 'event=start' |
рдХреЗрд╡рд▓ рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрдн рдШрдЯрдирд╛рдПрдБ рджрд┐рдЦрд╛рдПрдБ |
|
docker events --since 1h --until 10m |
рдкрд┐рдЫрд▓реЗ рдШрдВрдЯреЗ рд╕реЗ 10 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рддрдХ рдХреА рдШрдЯрдирд╛рдПрдБ рджрд┐рдЦрд╛рдПрдБ |
|
docker events --filter 'type=network' |
рдХреЗрд╡рд▓ рдиреЗрдЯрд╡рд░реНрдХ-рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдПрдБ рджрд┐рдЦрд╛рдПрдБ |
|
docker events --filter 'image=nginx' |
|
|
docker container update |
рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреА рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд╛рдПрдБ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрд┐рдирд╛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдП рдмрджрд▓реЗрдВ | |
docker update --cpus 2 --memory 1g my_container |
рд╕реАрдорд╛ 2 CPU рдФрд░ 1 GB RAM рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ |
|
docker update --restart unless-stopped my_container |
рдСрдЯреЛ-рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдиреАрддрд┐ |
|
docker update --pids-limit 200 my_container |
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 200 рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВ |
|
docker container diff |
рдореВрд▓ рдЗрдореЗрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдБред рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА | |
docker diff my_container |
рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░рд┐рд╡рд░реНрддрди рджрд┐рдЦрд╛рдПрдБ |
|
docker diff my_container | grep '^A' |
рдХреЗрд╡рд▓ рдЬреЛрдбрд╝реА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдПрдБ ( |
|
docker image history |
рдЗрдореЗрдЬ рд▓реЗрдпрд░реНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рджрд┐рдЦрд╛рдПрдБ: рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдбреНрд╕, рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдпрд░ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдирд┐рд░реНрдорд╛рдг рд╕рдордпред рдЕрдиреБрдХреВрд▓рди рдФрд░ рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА | |
docker history my_image |
рдХрд┐рд╕реА рдЗрдореЗрдЬ рдХрд╛ рд▓реЗрдпрд░ рдЗрддрд┐рд╣рд╛рд╕ рджрд┐рдЦрд╛рдПрдБ |
|
docker history --no-trunc my_image |
рдмрд┐рдирд╛ рдХрд╛рдЯреЗ рдкреВрд░реНрдг рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рджрд┐рдЦрд╛рдПрдБ |
|
docker history --format "{{.CreatedBy}}: {{.Size}}" my_image |
рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдбреНрд╕ рдФрд░ рд▓реЗрдпрд░ рдЖрдХрд╛рд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ |
ЁЯЫа рдЙрдкрдпреЛрдЧреА Docker рдкреНрд░рдерд╛рдПрдБ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рди
рдЗрдореЗрдЬ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдВ
alpineрдпрд╛scratchрдЬреИрд╕реА рдмреЗрд╕ рдЗрдореЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд▓реЗрдпрд░реНрд╕ рдХреЛ squash рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди--squashрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╕рдХреНрд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП)ред
рд╕рд╛рде рд╣реА, рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдХреИрд╢ рдПрдХ рд╣реА рд▓реЗрдпрд░ рдореЗрдВ рд╣рдЯрд╛рдПрдБ:RUN apk add --no-cache curl && rm -rf /var/cache/apk/*рд▓реЗрдпрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░реЗрдВ
рдЕрдВрддрд┐рдо рдЗрдореЗрдЬ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХRUNрдореЗрдВ рдХрдИ рдХрдорд╛рдВрдбреНрд╕ рдорд┐рд▓рд╛рдПрдБ:RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*Dockerfile рдмрд┐рд▓реНрдб рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВ
рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЕрдВрддрд┐рдо рдЗрдореЗрдЬ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рд╣реЗрдВред
рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣рд▓реЗ рдХреЙрдкреА рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ, рдлрд┐рд░ рдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВ тАФ рдЗрд╕рд╕реЗ рдХреИрд╢рд┐рдВрдЧ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рд░реАрдмрд┐рд▓реНрдб рддреЗрдЬрд╝ рд╣реЛрдЧрд╛редрд╕реАрдХреНрд░реЗрдЯреНрд╕ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдЕрд▓рдЧ рдХрд░реЗрдВ
.envрдлрд╝рд╛рдЗрд▓реЗрдВ, API рдХреБрдВрдЬреА рдпрд╛ рдирд┐рдЬреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрднреА рднреА рдЗрдореЗрдЬ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рди рдХрд░реЗрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:docker secret(Swarm рдореЗрдВ)
- рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реЗрд░рд┐рдПрдмрд▓ (
-e VAR=valueрдпрд╛.env)
рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рд╡реЙрд▓реНрдпреВрдо
рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рд╕реАрдХреНрд░реЗрдЯреНрд╕ (BuildKit)
рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реАрдХреНрд░реЗрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП--secretрдлрд╝реНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:docker buildx build --secret id=mysecret,src=./secret.txt .Dockerfile рдореЗрдВ, рд╕реАрдХреНрд░реЗрдЯ
/run/secrets/mysecretрдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ:RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecretЁЯЫб рдпрд╣ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдХреЛ рдЗрдореЗрдЬ рд▓реЗрдпрд░реНрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рд░реВрдЯрд▓реЗрд╕ рдбреЙрдХрд░
рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ Docker рдЪрд▓рд╛рдиреЗ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рддреА рд╣реИ рдФрд░ рд╣реЛрд╕реНрдЯ рд╕рдордЭреМрддрд╛ рдЬреЛрдЦрд┐рдо рдХрдо рд╣реЛрддрд╛ рд╣реИред
рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: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рдпрд╣ рдмреЗрд╕ рдЗрдореЗрдЬ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рд╕рдВрд╕рд╛рдзрди рдЙрдкрдпреЛрдЧ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВ
рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдореЗрдореЛрд░реА, CPU рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ:docker run --memory=512m --cpus="1.5" --pids-limit=200 myimageрдпрд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЕрдзрд┐рдХ рдЦрдкрдд рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред
рдЖрдк 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 рдПрдХреАрдХрд░рдг
рдмрд┐рд▓реНрдб, рдЯреЗрд╕реНрдЯ рдФрд░ рдбрд┐рдкреНрд▓реЙрдп рдХреЛ GitHub Actions, GitLab CI, Jenkins рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░реЗрдВред
GitHub Actions рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЪрд░рдг:- run: docker build -t myapp:${GITHUB_SHA} . - run: docker push myapp:${GITHUB_SHA}рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ
рд▓реЙрдЧрд┐рдВрдЧ рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ (--log-driver) рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕рд┐рд╕реНрдЯрдореНрд╕ рд╕реЗ рдЬреЛрдбрд╝реЗрдВ: ELK, Loki, Splunkред
рдХрдВрдЯреЗрдирд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП Prometheus + cAdvisor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдкреНрд░реЛрдбрдХреНрд╢рди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ
docker-compose.override.ymlрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧ рд░рдЦреЗрдВред
рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:- 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 (with strace) |
Linux рдпреВрдЯрд┐рд▓рд┐рдЯреА рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрд╕реЗрд╕ (рдпрд╣рд╛рдБ рдХрдВрдЯреЗрдирд░) рдХреЗ namespace рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИред strace рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ |
|
nsenter --target $(docker inspect --format '{{.State.Pid}}' my_container) --mount --uts --ipc --net --pid strace -p 1 |
рдХрдВрдЯреЗрдирд░ namespace рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ 1 рдХреА рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЯреНрд░реЗрд╕ рдХрд░реЗрдВ |
|
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 |
рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЖрдБрдХрдбрд╝реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ |
|
docker container top |
рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рдПрдБ, рдЬреИрд╕реЗ Linux рдореЗрдВ ps, рдХрдВрдЯреЗрдирд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП |
|
docker top my_container |
рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рджрд┐рдЦрд╛рдПрдБ |
|
docker top my_container aux |
|
|
docker top my_container -eo pid,cmd |
рдХреЗрд╡рд▓ PID рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХрдорд╛рдВрдб рджрд┐рдЦрд╛рдПрдБ |
|
docker diff |
рдХрдВрдЯреЗрдирд░ рдХреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрд╕рдХреЗ рдмреЗрд╕ рдЗрдореЗрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣реБрдП рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдБ, рдЬрд┐рд╕рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ, рдмрджрд▓реА рдЧрдИ, рдпрд╛ рд╣рдЯрд╛рдИ рдЧрдИ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ | |
docker diff my_container |
рдмреЗрд╕ рдЗрдореЗрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдБ |
|
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рдФрд░ рдЕрдиреНрдп рд▓реЛ-рд▓реЗрд╡рд▓ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
ЁЯТ╝ рдЙрдиреНрдирдд Docker Compose рдЙрдкрдпреЛрдЧ
ЁЯЪА рдкреЗрд╢реЗрд╡рд░ Docker Compose рдХрдорд╛рдВрдб
рдХрдорд╛рдВрдб |
рдЙрджрд╛рд╣рд░рдг |
рд╡рд┐рд╡рд░рдг |
|---|---|---|
docker compose up |
docker-compose.yml рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЬреАрд╡рдирдЪрдХреНрд░ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде | |
docker compose up -d web db |
рдХреЗрд╡рд▓ |
|
docker compose up --build |
рд╕реЗрд╡рд╛рдПрдБ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдореЗрдЬ рдкреБрдирдГ рдмрдирд╛рдПрдБ |
|
docker compose up --remove-orphans |
рд╡рд░реНрддрдорд╛рди compose рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдБ |
|
docker compose build |
compose рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬ рдмрдирд╛рдПрдБ, cache рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рдХреЗ рд╕рд╛рде | |
docker compose build --no-cache |
рдмрд┐рдирд╛ cache рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрдореЗрдЬ рдкреБрдирдГ рдмрдирд╛рдПрдБ |
|
docker compose build --parallel |
рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдмрдирд╛рдПрдБ рддрд╛рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреЗрдЬрд╝ рд╣реЛ |
|
docker compose build web |
рдХреЗрд╡рд▓ |
|
docker compose pull |
рд╕рднреА рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдЗрдореЗрдЬ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ | |
docker compose pull |
рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬ рдЦреАрдВрдЪреЗрдВ |
|
docker compose pull db |
рдХреЗрд╡рд▓ |
|
docker compose pull --ignore-pull-failures |
рдЗрдореЗрдЬ рдЦреАрдВрдЪрддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реБрдП рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦреЗрдВ |
|
docker compose restart |
рдмрд┐рдирд╛ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреБрдирдГ рдмрдирд╛рдП рд╕рднреА рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ | |
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 variables рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЕрдВрддрд┐рдо Compose рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ | |
docker compose config |
рдорд░реНрдЬ рдХреА рдЧрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди YAML рдлрд╝реЙрд░реНрдореЗрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдПрдБ |
|
docker compose config --services |
рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рдПрдБ |
|
docker compose config --environment |
рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА environment variables рджрд┐рдЦрд╛рдПрдБ |
|
docker compose watch |
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ, рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА | |
docker compose watch |
рдлрд╛рдЗрд▓реЗрдВ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
|
docker compose events |
Compose рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░реЗрдВ: рд╕реЗрд╡рд╛ рдкреНрд░рд╛рд░рдВрдн, рд░реЛрдХреЗрдВ, рдЕрдкрдбреЗрдЯ | |
docker compose events --json |
JSON рдлрд╝реЙрд░реНрдореЗрдЯ рдореЗрдВ рдШрдЯрдирд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ |
|
docker compose rm |
рд░реБрдХреА рд╣реБрдИ рд╕реЗрд╡рд╛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдБ | |
docker compose rm web db |
|
|
docker compose pause |
рд╕реЗрд╡рд╛ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд░реЛрдХреЗрдВ | |
docker compose pause api |
|
|
docker compose unpause |
рд░реБрдХреА рд╣реБрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ | |
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 рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧреА рдЕрднреНрдпрд╛рд╕ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рди
рдкрд░реНрдпрд╛рд╡рд░рдг рдкреГрдердХреНрдХрд░рдг
рдЕрд▓рдЧ-рдЕрд▓рдЧdocker-compose.override.ymlрдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди environments рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ тАФdevelopment,staging,productionред рдЗрд╕рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрд▓рдЧ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк-fрдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рднреА рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:docker compose -f docker-compose.yml -f docker-compose.prod.yml up -denvironment variables рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди
.envрдлрд╛рдЗрд▓реЛрдВ (.env.dev,.env.prod, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрд╕реБрд░рдХреНрд╖рд┐рдд рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╕рдВрдЧреНрд░рд╣рдг
Compose рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ (рдкрд╛рд╕рд╡рд░реНрдб, рдЯреЛрдХрди) рд╕реАрдзреЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:.envрдлрд╛рдЗрд▓реЗрдВ environment variables рдХреЗ рд▓рд┐рдП (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐.envрдлрд╛рдЗрд▓реЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдирд╣реАрдВ рд╣реЛрддреАрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ repos рдореЗрдВ commit рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)
docker secretрдФрд░docker configрд╕реБрд░рдХреНрд╖рд┐рдд рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП Docker Swarm рдореЗрдВ
- рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╡рд╛рд▓реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП external volumes
рдмрд╛рд╣рд░реА рд╕реАрдХреНрд░реЗрдЯ рдкреНрд░рдмрдВрдзрди рд╕рд┐рд╕реНрдЯрдо (рдЬреИрд╕реЗ HashiCorp Vault, AWS Secrets Manager)
depends_onрдФрд░healthcheckрдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреНрд░рдо
рд╕реЗрд╡рд╛рдУрдВ рдХреЛ dependencies рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╡рд╛рдиреЗ рдХреЗ рд▓рд┐рдП: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рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди рдиреНрдпреВрдирддрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдо
рд╕реЗрд╡рд╛рдПрдБ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдПрдБ:docker compose pull && docker compose up -d --remove-orphans-dрд╡рд┐рдХрд▓реНрдк рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдФрд░--remove-orphansрд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧреНрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдкреБрд░рд╛рдиреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реЛрдХреЗрдВ рдФрд░ рд╣рдЯрд╛рдПрдБ:docker compose down --remove-orphansрдЗрд╕рд╕реЗ рдирдИ рдЗрдореЗрдЬ рд▓реЛрдб рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЕрдкреНрд░рдпреБрдХреНрдд рдХрдВрдЯреЗрдирд░ рдмрд┐рдирд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╣реЙрдЯ рдХреЛрдб рд░реАрд▓реЛрдбрд┐рдВрдЧ
volumesрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреАрдп рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдЬрд╝ рдХреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рддреБрд░рдВрдд рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрдореЗрдЬ рдкреБрдирдГ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред
рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо caching рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЦрд╛рд╕рдХрд░ Windows рдФрд░ macOS рдкрд░, рддрд╛рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗредрдмрд┐рдирд╛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╣реЙрдЯ рдХреЛрдб рд░реАрд▓реЛрдбрд┐рдВрдЧ (Compose 2.22+)
develop: watch: - path: ./src action: sync target: /appрд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдХреЗрдВрджреНрд░реАрдХреГрдд рд▓реЙрдЧрд┐рдВрдЧ
рдХрдВрдЯреЗрдирд░ рд▓реЙрдЧреНрд╕ рдХреЛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдФрд░ рд▓реЙрдЧ рдПрдЧреНрд░реАрдЧреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдЬреИрд╕реЗ ELK Stack, Loki, Prometheus, рдФрд░ Fluentd рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЕрд▓рд░реНрдЯрд┐рдВрдЧ рд╣реЛ рд╕рдХреЗред
рдХреЗрдВрджреНрд░реАрдХреГрдд рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣рдг рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Docker рд▓реЙрдЧрд┐рдВрдЧ рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ (--log-driver) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
Compose рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:services: api: image: my_api logging: driver: "json-file" options: max-size: "10m" max-file: "3"рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реЗрд╡рд╛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн
docker-compose.ymlрдореЗрдВ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдиреАрддрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:restart: unless-stoppedрдЕрдиреНрдп рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдиреАрддрд┐рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
noтАФ рдХреЛрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)
alwaysтАФ рд╣рдореЗрд╢рд╛ рдХрдВрдЯреЗрдирд░ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
on-failureтАФ рдХреЗрд╡рд▓ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдкрд░ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ (рд╡реИрдХрд▓реНрдкрд┐рдХ retry count рдХреЗ рд╕рд╛рде)
рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ,
unless-stoppedрд╕реЗрд╡рд╛ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рд╡рд┐рдХрд▓реНрдк рд╣реИред
рдпрд╣ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдпрд╛ рд╣реЛрд╕реНрдЯ рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░рд┐рдХрд╡рд░реА рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИредрд╕реЗрд╡рд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реНрд╕
рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рд╕рдореВрд╣ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ: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 |
|
ЁЯТб рдЬрдЯрд┐рд▓ рдорд▓реНрдЯреА-рд╕реЗрд╡рд╛ рд╕реЗрдЯрдЕрдк рдХреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ,
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 рдЪреАрдЯ рд╢реАрдЯ тАФ рдкреВрд░реНрдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Docker рдЪреАрдЯ рд╢реАрдЯ:
https://dockerlabs.collabnix.com/docker/cheatsheet/
ЁЯУЧ Docker Hub тАФ рдЗрдореЗрдЬ рдФрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдЬрд╝:
https://hub.docker.com/