Hey Habr! เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเปเบฒโเบชเบฐโเปเบซเบเบตโเปเบซเปโเบเปเบฒเบโเบชเบปเบโเปเบโเบเบฒเบโเปเบโเบเบฒโเบชเบฒโเบเบญเบโเบเบปเบโเบเบงเบฒเบกโเปเบเปโ
เบกเบทเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเบเบเบฐเบเบฒเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบตเป Docker เปเบเปเบเบทเปเบเบเบตเปเบเบดเบเบเบญเบเปเบเบทเปเบญเบเปเบฎเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเบเบดเบเบงเบดเบเบตเบเบฒเบเบเบปเบเบเปเบญเบเบเบทเปเบเบเบตเปเบเบตเปเบเบฒเบเบเบฒเบเบเบนเบเบฎเบนเบเบเบฒเบเปเบฅเบฐเปเบเบทเปเบญเบเบเบฑเบเบเบธเบเบตเปเบเปเปเปเบเปเปเบเป.
เบเบฒเบเบเปเบฅเบดเปเบเบเบเบฑเบเปเบปเบ
Docker เปเบเบฑเบเบชเบดเปเบเบเบตเปเปเบขเบฑเบ, เบเบฒเบเบเบปเบเบญเบฒเบเบเบฐเบชเบปเบเปเบชเบงเปเบฒเบกเบฑเบเปเบเบกเบทเปเบเบตเป. เบเบฝเบเปเบเปเบชเบญเบเบชเบฒเบกเบเบตเบเปเบญเบ, เบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบตเปเปเบเปเปเบซเปเบเบงเบเปเบฎเบปเบฒเบงเบดเบเบตเบเบฒเบเปเบซเบกเปเบขเปเบฒเบเบชเบปเบกเบเบนเบเปเบเบเบฒเบเบเปเปเบชเปเบฒเบ, เบชเบปเปเบเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเบเปเปเบเบฒเบก, เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบซเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ CPU เปเบฅเบฐ RAM เบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เบเบญเบเปเบซเบเบทเบญเปเบเบเบฒเบเบเบตเป (เปเบฅเบฐเบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเบฑเบเบเบตเปเบเบฐเปเบเบฑเบเบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบชเบธเบ) Docker เปเบเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเปเบซเปเบเปเบฒเบเบเบฒเบเบขเปเบฒเบเบเปเปเบซเบเปเบฒเปเบเบทเปเบญเปเบฅเบฐเปเบเบฑเบเปเบญเบเบฐเบเบฒเบเบเบฒเบเบเบธเปเบกเบเบญเบเบงเบปเบเบเบญเบเบเบตเบงเบดเบเบเบญเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบฐเบฅเบดเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบงเบฒเบกเบชเบธเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบตเบงเบดเบเบเบตเปเบเบฑเบเบชเบฐเปเบซเบกเบกเบฒเปเบเบฅเบฒเบเบฒ. เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบเบธ, เบเบฒเบงเปเบซเบฅเบเบซเบผเบทเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบญเบ, เปเบฅเบฐเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบเบดเปเบงเบเบเบตเปเบชเบฑเบเบชเบปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเปเบฒเบ. เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบเปเบฒ, เปเบเบเบฑเบเบเบฒเบชเบดเปเบเบญเบทเปเบเป, เบเปเบงเบเบเบทเปเบเบเบตเปเบเบดเบ.
เบเปเบฒเบเปเบฒเบเบเปเปเปเบเบตเบเบเบดเบเบเปเบฝเบงเบเบฑเบเบเบทเปเบเบเบตเป Docker เบเบปเบงเบเบดเบเบซเบผเบฒเบเบเบฒเบเปเบเปเบเปเบเบทเปเบญเบเบเบญเบเบเปเบฒเบ, เบเปเบฒเบเบญเบฒเบเบเบฐเบเบปเบเบเบฐเบฅเบถเบเบขเปเบฒเบเบเปเปเบเปเปเบเบเบฑเบเบเบปเบเบเบฐเบฅเบดเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบเบตเป:
$ docker system df
เบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเปเบเบเบญเบ Docker เปเบเบชเบฐเบเบฒเบเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ:
- เบฎเบนเบโเบเบฒเบ โ เบเบฐโเบซเบเบฒเบโเบเบฑเบโเบซเบกเบปเบโเบเบญเบโเบฎเบนเบโเบเบฒเบโเบเบตเปโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฒเบงโเปเบซเบผเบโเบเบฒเบ repositories เบฎเบนเบโเบเบฒเบโเปเบฅเบฐโเบเบฒเบโเบเปเปโเบชเปเบฒเบโเปเบโเบฅเบฐโเบเบปเบโเบเบญเบโเบเปเบฒเบโ;
- containers โ เบเบณเบเบงเบเบเบทเปเบเบเบตเปเบเบดเบชเบเปเบเบฑเบเปเบปเบเบเบตเปเปเบเปเปเบเบเบเบฒเบเปเบฅเปเบเบเบฒเบเบฐเบเบฐเบเบฑเบเบเบธ (เปเบฒเบเปเบเบดเบเบเบฐเบฅเบดเบกเบฒเบเบเบฑเบเปเบปเบเบเบญเบเบเบฑเปเบเบญเปเบฒเบ-เบเบฝเบเบเบญเบเบเบฑเบเบเบธเบเบฑเบเปเบปเบ);
- เบเบฐโเบฅเบดโเบกเบฒเบโเบเปเบญเบโเบเบดเปเบ โ เบเบฐโเบฅเบดโเบกเบฒเบโเบเบฒเบโเปเบเบฑเบโเบฎเบฑเบโเบชเบฒโเบเปเบญเบโเบเบดเปเบโเบเบดเบโเบเบฑเบโเบเบฒโเบเบฐโเบเบฐโ;
- build cache โ เปเบเบฅเปเบเบปเปเบงเบเบฒเบงเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบเบฐเบเบงเบเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ (เปเบกเบทเปเบญเปเบเปเปเบเบทเปเบญเบเบกเบท BuildKit, เบกเบตเบเบฑเปเบเปเบเป Docker เปเบงเบตเบเบฑเปเบ 18.09).
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบงเบฒเบเปเบเบตเบกเบเบฑเบเบงเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบฒเบเปเบญเบเปเบเบดเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบกเบตเบเบงเบฒเบกเบเบฐเบเบทเบฅเบทเบฅเบปเปเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเปเบเปเบเบเบตเปเปเบซเบเบทเปเบญเบเบญเบเบเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบญเบปเบฒ gigabytes เบเบตเปเบกเบตเบเปเบฒเบเบฑเบเบเบทเบเบชเบนเปเบเบตเบงเบดเบ (เบซเบกเบฒเบเปเบซเบ: เปเบเบเบชเบฐเปเบเบฒเบฐเบเปเบฒเบเปเบฒเบเบเปเบฒเบเบเปเบฒเปเบเบปเปเบฒ gigabytes เปเบซเบผเบปเปเบฒเบเบตเปเบเบธเบเปเปเบเบทเบญเบ).
เบเบฒเบเปเบเปเปเบเปเบเปเบเบเบเบฑเบเบเบธ
เบเบธเบเปเบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเปเบฒเบ container เปเบเปเบเบทเปเบญเบเปเบฎเบ, เบซเบผเบฒเบเปเปเบเบฅเปเปเบฅเบฐเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /var/lib/docker, เปเบเบเบฑเบเบเบฒเบชเบดเปเบเบเปเปเปเบเบเบตเปเปเบกเปเบเบชเบปเบกเบเบงเบ:
- Directory /var/lib/docker/containers/container_ID โ เปเบกเบทเปเบญเปเบเปเปเบเปเบงเบตเบเบฒเบเบเบฑเบเบเบถเบเบกเบฒเบเบเบฐเบเบฒเบ, เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเปเบเบฑเบเบเบถเบเปเบซเบเบเบฒเบเบเบทเบเบเบฑเบเบเบถเบเปเบงเปเปเบเบฎเบนเบเปเบเบ JSON. เบเบฑเบเบเบถเบเบเบตเปเบฅเบฐเบญเบฝเบเปเบเบตเบเปเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฑเบเบเบถเบเบเบตเปเบเปเปเบกเบตเปเบเบญเปเบฒเบเบซเบผเบทเบเบฐเบเบงเบเบเบฒเบเบญเบทเปเบเป, เบกเบฑเบเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเปเบเปเบเบฑเบก.
- เปเบเปเบฃเบฑเบเบเปเบฃเบต /var/lib/docker/overlay2 เบกเบตเบเบฑเปเบเบเบฒเบเบญเปเบฒเบ-เบเบฝเบเบเบญเบเบเบฑเบเบเบธ (overlay2 เปเบกเปเบเปเบเปเบงเบตเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบเบฒเบเปเบเบเบขเบฒเบ Linux เบชเปเบงเบเปเบซเบเป). เบเปเบฒเบเบฑเบเปเบเบฑเบเบเปเปเบกเบนเบเปเบเบฅเบฐเบเบปเบเปเบเบฅเปเบเบญเบเบกเบฑเบ, เบกเบฑเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบเบตเปเบกเบฑเบเบเบทเบเบเบฑเบเปเบชเป.
เบฅเบญเบเบเบถเบเบเบฒเบเปเบเบดเปเบเบฅเบฐเบเบปเบเบเบตเปเบเบดเบเบเบฑเปเบ Docker เบเบณเบกเบฐเบเบฒ, เปเบเบดเปเบเบเปเปเปเบเบตเบเบกเบตเบชเปเบงเบเบฎเปเบงเบกเปเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบฒเบเบฐเบเบฐ เบซเบผเบท เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ. เบเบปเบโเบฅเบฒเบโเบเบฒเบโเบเบฒเบโเบเปเบฒโเปเบเปโเบเบทเปเบโเบเบตเปโเปเบเปเบโเบเบญเบโเบกเบฑเบโเบเบฐโเปเบเบฑเบโเบเบฑเปเบโเบเบตเปโ:
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 0 0 0B 0B
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเปเบญเบเบเบฑเบเบเบธเบเบฒเบเบญเบฑเบ, เบเบปเบงเบขเปเบฒเบ, NGINX:
$ docker container run --name www -d -p 8000:80 nginx:1.16
เบเบฐเปเบเบตเบเบซเบเบฑเบเบเบถเปเบเบเบฑเบเปเบเปเบ:
- เบฎเบนเบเบเบฒเบเบเบตเปเบเบญเบเบเบญเบ 126 MB, เบเบตเปเปเบกเปเบ NGINX เบเบฝเบงเบเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเปเบเบเบฑเบ;
- containers เปเบเปเปเบงเบฅเบฒเปเบเบดเบ 2 bytes rides.
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 1 1 126M 0B (0%)
Containers 1 1 2B 0B (0%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
เบเบฒเบเบเบฑเบเบชเบดเบเปเบเบเบเบฒเบเบชเบฐเบซเบฅเบธเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเบเบฑเบเบกเบตเบเปเบญเบเบซเบงเปเบฒเบเปเบเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบญเบเบเบปเบงเปเบเป. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ 2 bytes เปเบกเปเบ frivolous เบซเบกเบปเบ, เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบดเบเบเบฐเบเบฒเบเบฒเบเบงเปเบฒ NGINX เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเปเบเบฒเบเบเบดเบเปเบเปเบเบฝเบเบเบฒเบเบเปเบญเบ 100 Megabytes เบเบญเบเบเปเปเบกเบนเบเปเบฅเบฐเบชเปเบฒเบเปเบเบฅเป test.img เบเบญเบเบเบฐเบซเบเบฒเบเบเบตเปเบขเบนเปเปเบเบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ.
$ docker exec -ti www
dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100]
เบกเบฒเบเบงเบเปเบเบดเปเบเบเบฒเบเปเบเปเบเบทเปเบเบเบตเปเบเบดเบชเบเปเบขเบนเปเปเบเปเบฎเบชเบญเบตเบเบเบฑเปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบซเบฑเบเบงเปเบฒ container (containers) เบเบญเบเบเบญเบ 100 Megabytes เบขเบนเปเบเบตเปเบเบฑเปเบ.
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 1 1 126M 0B (0%)
Containers 1 1 104.9MB 0B (0%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
เบเปเบญเบเบเบดเบเบงเปเบฒเบชเบฐเปเบญเบเบเบตเปเบขเบฒเบเบฎเบนเปเบเบญเบเปเบเบปเปเบฒเบเบณเบฅเบฑเบเบชเบปเบเปเบชเบขเบนเปเปเบฅเปเบงเบงเปเบฒเปเบเบฅเป test.img เบเบญเบเบเบงเบเปเบฎเบปเบฒเบขเบนเปเปเบช. เปเบซเปเบเบญเบเบซเบฒเบกเบฑเบ:
$ find /var/lib/docker -type f -name test.img
/var/lib/docker/overlay2/83f177...630078/merged/test.img
/var/lib/docker/overlay2/83f177...630078/diff/test.img
เปเบเบเบเปเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบฑเบเปเบเบเบงเปเบฒเปเบเบฅเป test.img เบเบฑเปเบเบขเบนเปเบชเบฐเบเบงเบเบชเบฐเบเบฒเบเปเบเบฅเบฐเบเบฑเบเบเบฒเบเบญเปเบฒเบเบเบฝเบ, เบเบงเบเบเบธเบกเปเบเบ overlay2 driver. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบขเบธเบเบเบนเปเบเบญเบเปเบเบเปเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบเบปเปเบฒเบเบฒเบเบเบฐเบเบญเบเบเบงเบเปเบฎเบปเบฒเบงเปเบฒเบเบทเปเบเบเบตเปเบเบตเปเบชเบฒเบกเบฒเบ, เบเบฒเบกเบซเบผเบฑเบเบเบฒเบ, เปเบเปเบฎเบฑเบเบเบฒเบเบเบปเบเบเปเบญเบ:
# Stopping the www container
$ docker stop www
# Visualizing the impact on the disk usage
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 1 1 126M 0B (0%)
Containers 1 0 104.9MB 104.9MB (100%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเปเปเบเบงเปเบ? เปเบเบเบเบฒเบเบฅเบถเบเบเบนเปเบเบญเบเปเบเบเปเบเบต, เปเบเบดเปเบเบเบฐเปเบฎเบฑเบเปเบซเปเบกเบตเบเบฒเบเบฅเบถเบเบฅเปเบฒเบเบเบทเปเบเบเบตเปเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบญเปเบฒเบ-เบเบฝเบ.
เบเปเบงเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบเบฒเบเบฐเบเบฐเบเบตเปเบเบดเบเบเบฑเปเบเบเบฑเบเบซเบกเบปเบเบญเบญเบเปเบเบซเบเบถเปเบ swoop เปเบฅเบฐเบฅเปเบฒเบเปเบเปเบเบเบญเบเปเบเบฅเปเบญเปเบฒเบเบเบฝเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบชเปเบฒเบเปเบเบเบเบงเบเบกเบฑเบ:
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
5e7f8e5097ace9ef5518ebf0c6fc2062ff024efb495f11ccc89df21ec9b4dcc2
Total reclaimed space: 104.9MB
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบปเบเบเปเบญเบ 104,9 Megabytes เปเบเบเบเบฒเบเบฅเบถเบเบเบฑเบ. เปเบเปเปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเปเบฎเบนเบเบเบฒเบเบเบตเปเบเบฒเบงเปเบซเบฅเบเบกเบฒเบเปเบญเบเบซเบเปเบฒเบเบตเป, เบกเบฑเบเบเบฑเบเบเบฒเบเปเบเบฑเบเบเบปเบงเบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบถเบเปเบฅเบฐเบเปเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ:
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 1 0 126M 126M (100%)
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
เปเบฒเบเปเบซเบ: เบเบฒเบเปเบเบเบตเปเบฎเบนเบเบเบฒเบเบเบทเบเปเบเปเบขเปเบฒเบเปเปเบญเบเปเบถเปเบเบเปเบญเบ, เบเปเบฒเบเบเบฐเบเปเปเบชเบฒเบกเบฒเบเปเบเปเปเบเบฑเบเบฅเบฑเบเบเบตเปเปเบเป.
เบเปเบฒเบชเบฑเปเบเบเปเบญเบ prune เบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเบฒเบเปเบเบดเบเบเบตเปเบกเบตเบเบปเบเบเบฐเบเบปเบเบเบฑเบเบเบฒเบเบฐเบเบฐเบเบตเปเบขเบธเบเปเบเบปเบฒ. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบฅเบถเบเบเปเปเบเบฝเบเปเบเปเบขเบธเบเปเบเปเบเบฑเบเปเบฅเปเบ containers, เบเบงเบเปเบฎเบปเบฒเบเบงเบเปเบเปเบซเบเบถเปเบเปเบเบเปเบฒเบชเบฑเปเบเปเบซเบผเบปเปเบฒเบเบตเป:
# Historical command
$ docker rm -f $(docker ps โaq)
# More recent command
$ docker container rm -f $(docker container ls -aq)
เบซเบกเบฒเบเปเบซเบเบเปเบฒเบเบเบฝเบ: เบเปเบฒเบเปเบฒเบเปเบเปเบเบฒเบฅเบฒเบกเบดเปเบเบต -rm เปเบกเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเบฑเบเบเบธ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเบกเบฑเบเบขเบธเบ, เบเบทเปเบเบเบตเปเบเบดเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบฑเบเบเบญเบเบเบญเบเบเบฐเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒ.
เบเบฒเบโเบเปเบฒโเปเบเปโเบฎเบนเบโเบเบฒเบโเปเบเปเบโ
เบชเบญเบเบชเบฒเบกเบเบตเบเปเบญเบ, เบเบฐเบซเบเบฒเบเบฎเบนเบเบเบฒเบเบเบญเบเบซเบผเบฒเบเบฎเปเบญเบเปเบกเบเบฐเปเบเปเบกเปเบเบเบปเบเบเบฐเบเบดเบขเปเบฒเบเบชเบปเบกเบเบนเบ: เบฎเบนเบเบเบฒเบ Ubuntu เบกเบตเบเปเปเบฒเบซเบเบฑเบ 600 megabytes, เปเบฅเบฐเบฎเบนเบเบเบฒเบ Microsoft .Net เบกเบตเบเปเปเบฒเบซเบเบฑเบเบซเบผเบฒเบ gigabyte. เปเบเบกเบทเปเบเบตเปเบเบตเปเบฎเปเบฒเบเบเบฑเปเบ, เบเบฒเบเบเบฒเบงเปเบซเบผเบเบเบฝเบเบฎเบนเบเบเบฝเบงเบญเบฒเบเปเบฎเบฑเบเปเบซเปเปเบชเบเบเปเบฒเบซเบผเบฒเบเปเบเบเบทเปเบเบเบตเปเบเบดเบชเบเปเบเบญเบเบเปเบฒเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบฒเบเบเบฐเปเบเปเบเบเบฑเบเบฅเบฐเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบฎเบนเบเบเบฒเบ. เบกเบทเปเบเบตเป - เบชเบฑเบเบฅเบฐเปเบชเบตเบเบเบตเปเบเบดเปเบเปเบซเบเป - เบฎเบนเบเบเบฒเบเบกเบตเบเปเปเบฒเบซเบเบฑเบเบซเบเปเบญเบ, เปเบเปเปเบเบดเบเปเบกเปเบเบงเปเบฒ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบทเปเบกเบเปเปเบกเบนเบเปเบชเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบกเบตเบขเบนเปเบขเปเบฒเบเปเบงเบงเบฒเบเปเบฒเบเปเบฒเบเบเปเปเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเบเบฒเบเบขเปเบฒเบ.
เบกเบตเบซเบผเบฒเบเบเบฐเปเบเบเบเบญเบเบฎเบนเบเบเบฒเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเปเบเบเบเบปเบเบเบฑเบเบเบนเปเปเบเปเบชเบธเบเบเปเบฒเบ:
- เบฎเบนเบเบเบฒเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบ, เบเบปเบเบเบทเปเบเบเบฒเบเบเบญเบเบฎเบนเบเบเบฒเบเบญเบทเปเบเปเปเบเปเบเบทเบเปเบเบฑเบเบเปเบฒ - เบเบงเบเบกเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบเบทเบเบฅเบถเบเบฅเปเบฒเบเปเบเปเบเปเบฒเบเปเบฒเบเปเบเปเบเปเบญเบเบเบฑเบเบเบธเปเบเบเบญเบตเบเปเบชเปเบฎเบนเบเบเบฒเบ "เบญเบทเปเบเป" เปเบซเบผเบปเปเบฒเบเบตเป;
- เบฎเบนเบเบเบฒเบ dangling เปเบกเปเบเบฎเบนเบเบเบฒเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบตเปเบเปเปเปเบเปเบญเปเบฒเบเบญเบตเบเบเบฒเบเปเบเปเบเบญเบเบเบฑเบเบเบตเปเปเบฅเปเบ - เบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเบทเบเบฅเบถเบเบเบดเปเบก.
- เบเปเบงเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบงเบเปเบเบดเปเบเบฎเบนเบเบเบฒเบ dangling เปเบเบฅเบฐเบเบปเบเบเบญเบเบเปเบฒเบ:
$ docker image ls -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
none none 21e658fe5351 12 minutes ago 71.3MB
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบเบงเบเบกเบฑเบเบญเบญเบเบเปเบงเบเบงเบดเบเบตเบเปเปเปเบเบเบตเป:
$ docker image rm $(docker image ls -f dangling=true -q)
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเปเบเปเบเปเบฒเบชเบฑเปเบเบเปเบญเบ prune:
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:143407a3cb7efa6e95761b8cd6cea25e3f41455be6d5e7cda
deleted: sha256:738010bda9dd34896bac9bbc77b2d60addd7738ad1a95e5cc
deleted: sha256:fa4f0194a1eb829523ecf3bad04b4a7bdce089c8361e2c347
deleted: sha256:c5041938bcb46f78bf2f2a7f0a0df0eea74c4555097cc9197
deleted: sha256:5945bb6e12888cf320828e0fd00728947104da82e3eb4452f
Total reclaimed space: 12.9kB
เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบขเปเบฒเบโเบเบฐโเบเบฑเบโเบซเบฑเบโเบเบงเบโเปเบฎเบปเบฒโเบเปเบญเบโเบเบฒเบโเบเบตเปโเบเบฐโเบฅเบปเบโเบฎเบนเบโเบเบฒเบโเบเบฑเบโเบซเบกเบปเบโเบเบฑเบโเบซเบกเบปเบ (เปเบฅเบฐโเบเปเปโเบเบฝเบโเปเบเป danglingโ) เบเปเบงเบโเบเปเบฒโเบชเบฑเปเบโเบซเบเบถเปเบโ, เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเปเบฎเบฑเบโเปเบเปโเบเบฑเปเบโเบเบตเปโ:
$ docker image rm $(docker image ls -q)
เบเบฒเบเปเบเปเปเบเปเบเปเบเบเบเบฐเบฅเบดเบกเบฒเบ
เบเบฐเบฅเบดเบกเบฒเบเปเบกเปเบเปเบเปเปเบเบทเปเบญเปเบเบฑเบเบเปเปเบกเบนเบเบขเบนเปเบเบญเบเบฅเบฐเบเบปเบเปเบเบฅเปเบเบญเบเบเบฑเบ. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฑเบเบเบถเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบทเปเบญเปเบเปเบเบงเบเบกเบฑเบเปเบเบเบฒเบเบญเบทเปเบ. เบเบปเบงเบขเปเบฒเบเบเบปเปเบงเปเบเปเบกเปเบเบเบฒเบเบเปเปเบกเบนเบ.
เปเบซเปเปเบเบตเบเบเปเบญเบเบเบฑเบเบเบธ MongoDB, เปเบเบทเปเบญเบกเบเปเปเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเบเบญเบเปเบชเปเบเบฑเบเปเบเบฑเบเบกเปเบฝเบ, เปเบฅเบฐเบเบทเปเบเบเบนเบเบฒเบเบชเปเบฒเบฎเบญเบเบเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบกเบฑเบ (เบเบงเบเปเบฎเบปเบฒเบกเบตเบขเบนเปเปเบเปเบเบฅเป bck.json):
# Running a mongo container
$ docker run --name db -v $PWD:/tmp -p 27017:27017 -d mongo:4.0
# Importing an existing backup (from a huge bck.json file)
$ docker exec -ti db mongoimport
--db 'test'
--collection 'demo'
--file /tmp/bck.json
--jsonArray
เบเปเปเบกเบนเบเบเบฐเบเบฑเปเบเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบฎเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /var/lib/docker/volumes. เปเบเปเปเบเบฑเบเบซเบเบฑเบเบเปเปเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบญเปเบฒเบเบเบฝเบเบเบญเบเบเบฑเบ? เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเปเบ Dockerfile เบเบญเบเบฎเบนเบเบเบฒเบ MongoDB, เปเบเปเบฅเบเบฐเบเปเบฅเบต /data/db (เบเปเบญเบเบเบตเป MongoDB เปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบญเบเบกเบฑเบเปเบงเปเบเบฒเบกเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ) เบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบเบเบฐเบฅเบดเบกเบฒเบ.
เบซเบกเบฒเบเปเบซเบเบเปเบฒเบเบเบฝเบ: เบซเบผเบฒเบเบฎเบนเบเบเบตเปเบเปเบญเบเบเบฐเบฅเบดเบเบเปเปเบกเบนเบเปเบเปเบเบฐเบฅเบดเบกเบฒเบเปเบเบทเปเบญเปเบเบฑเบเบเปเปเบกเบนเบเบเบฑเปเบ.
เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบซเบผเบดเปเบเบเบฝเบเบเปเบเบฑเบ MongoDB เปเบฅเบฐเบขเบธเบ (เบซเบผเบทเบญเบฒเบเบเบฐเบฅเบถเบ) เบเบฑเบเบเบธ, เบเบฐเบฅเบดเบกเบฒเบเบเบฐเบเปเปเบเบทเบเบฅเบถเบ. เบกเบฑเบเบเบฐเบชเบทเบเบเปเปเบเบดเบเบเบทเปเบเบเบตเปเบเบดเบชเบเปเบเบตเปเบกเบตเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบฅเบถเบเบกเบฑเบเบญเบญเบเบขเปเบฒเบเบเบฐเปเบเปเบเบเปเบงเบเบเบณเบชเบฑเปเบเบเบฑเปเบเบเบตเป:
$ docker volume rm $(docker volume ls -q)
เบเบต, เบซเบผเบทเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเปเบเปเบฒเบชเบฑเปเบเบเปเบญเบ prune เบเบตเปเบเบธเปเบเปเบเบตเบเบเบฑเบเบเบงเบเปเบฎเบปเบฒ:
$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
d50b6402eb75d09ec17a5f57df4ed7b520c448429f70725fc5707334e5ded4d5
8f7a16e1cf117cdfddb6a38d1f4f02b18d21a485b49037e2670753fa34d115fc
599c3dd48d529b2e105eec38537cd16dac1ae6f899a123e2a62ffac6168b2f5f
...
732e610e435c24f6acae827cd340a60ce4132387cfc512452994bc0728dd66df
9a3f39cc8bd0f9ce54dea3421193f752bda4b8846841b6d36f8ee24358a85bae
045a9b534259ec6c0318cb162b7b4fca75b553d4e86fc93faafd0e7c77c79799
c6283fe9f8d2ca105d30ecaad31868410e809aba0909b3e60d68a26e92a094da
Total reclaimed space: 25.82GB
luc@saturn:~$
เบเบฒเบเบเปเบฒเปเบเปเปเบเปเบเบชเปเบฒเบฅเบฑเบเบฎเบนเบเบเบฒเบเบชเปเบฒเบ cache
เปเบ Docker 18.09, เบเบฐเบเบงเบเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเปเบเปเบเปเบฒเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบขเปเบฒเบเบเปเบญเบเปเบเบทเปเบญเบเบกเบท BuildKit. เบชเบดเปเบเบเบตเปเบเบฐเปเบเบตเปเบกเบเบงเบฒเบกเปเบงเบเบญเบเบเบฐเบเบงเบเบเบฒเบเปเบฅเบฐเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบงเบฒเบกเบเบญเบเปเบ. เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบเบดเบเบฒเบฅเบฐเบเบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบฑเบเบซเบกเบปเบเบเบญเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบเบฐเปเบชเบตเบเบเบตเป; เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบธเบกเปเบชเปเบงเบดเบเบตเบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฒเบเบเปเบฒเปเบเปเบเบทเปเบเบเบตเปเบเบดเบเปเบเบปเปเบฒเบเบฑเปเบ.
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Node.Js เบเปเบฒเบเบเบฒเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ:
- เปเบเบฅเป index.js เปเบฅเบตเปเบกเปเบเบตเบเปเบงเบต HTTP เปเบเบเบเปเบฒเบเบเบฒเบเบเบตเปเบเบญเบเบชเบฐเปเบญเบเบเปเบงเบเปเบเบงเบเปเปเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเปเบเบตเปเปเบเปเบฎเบฑเบ:
- เปเบเบฅเป package.json เบเปเบฒเบเบปเบเบเบฒเบเบเบถเปเบเบเบฑเบ, เบเบถเปเบเปเบเบเบฑเปเบเบเบฝเบเปเบเป expressjs เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ HTTP:
$ cat index.js
var express = require('express');
var util = require('util');
var app = express();
app.get('/', function(req, res) {
res.setHeader('Content-Type', 'text/plain');
res.end(util.format("%s - %s", new Date(), 'Got Request'));
});
app.listen(process.env.PORT || 80);
$ cat package.json
{
"name": "testnode",
"version": "0.0.1",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"express": "^4.14.0"
}
}
Dockerfile เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบเบฎเบนเบเบเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเป:
FROM node:13-alpine
COPY package.json /app/package.json
RUN cd /app && npm install
COPY . /app/
WORKDIR /app
EXPOSE 80
CMD ["npm", "start"]
เปเบซเปเบชเปเบฒเบเบฎเบนเบเบเบฒเบเปเบเปเบเบเบเบปเบเบเบฐเบเบด, เปเบเบเบเปเปเบเปเบญเบเปเบเป BuildKit:
$ docker build -t app:1.0 .
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบงเบเปเบเบดเปเบเบเบฒเบเปเบเปเบเบทเปเบเบเบตเปเบเบดเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเบเบฝเบเปเบเปเบฎเบนเบเบเบฒเบเบเบทเปเบเบเบฒเบ (node: 13-alpine) เปเบฅเบฐเบฎเบนเบเบเบฒเบเปเบเบปเปเบฒเบซเบกเบฒเบ (app: 1.0) เบเปเบฒเบฅเบฑเบเบเบดเบเบเบทเปเบเบเบตเป:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 0 109.3MB 109.3MB (100%)
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบงเบตเบเบฑเบเบเบตเบชเบญเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบเบเปเบเป BuildKit. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบเปเบฒเบเบปเบเบเบปเบงเปเบ DOCKER_BUILDKIT เปเบเบฑเบ 1:
$ DOCKER_BUILDKIT=1 docker build -t app:2.0 .
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบงเบเปเบเบดเปเบเบเบฒเบเบเปเบฒเปเบเปเปเบเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบซเบฑเบเบงเปเบฒ build cache (buid-cache) เบกเบตเบชเปเบงเบเบฎเปเบงเบกเปเบเบเบฑเบเบเบธเบเบฑเบ:
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 0 109.3MB 109.3MB (100%)
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 11 0 8.949kB 8.949kB
เปเบเบทเปเบญเบฅเบถเบเบกเบฑเบ, เปเบเปเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ docker builder prune
WARNING! This will remove all dangling build cache.
Are you sure you want to continue? [y/N] y
Deleted build cache objects:
rffq7b06h9t09xe584rn4f91e
ztexgsz949ci8mx8p5tzgdzhe
3z9jeoqbbmj3eftltawvkiayi
Total reclaimed space: 8.949kB
เบฅเปเบฒเบเบเบฑเบเปเบปเบ!
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบดเปเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบทเปเบเบเบตเปเบเบดเบชเบเปเบเบตเปเบเบญเบเบเบญเบเปเบเบเบเบฑเบเบเบธ, เบฎเบนเบเบเบฒเบเปเบฅเบฐเบเบฐเบฅเบดเบกเบฒเบ. เบเปเบฒเบชเบฑเปเบเบเปเบญเบ prune เบเปเบงเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบฅเบทเปเบญเบเบเบตเป. เปเบเปเบกเบฑเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบฅเบฐเบเบฑเบเบฅเบฐเบเบปเบ docker, เปเบฅเบฐเบกเบฑเบเบเบฐเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบธเบเบขเปเบฒเบเบเบตเปเบกเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป:
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N]
เบเปเบฒเบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบเปเบฒเบฅเบฑเบเบเบฐเบซเบเบฑเบเบเบทเปเบเบเบตเปเบเบดเบเบขเบนเปเปเบเปเบเบทเปเบญเบเบเบตเปเปเบเป Docker, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเปเบฅเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบเปเบฅเบฐเปเบฅเบเบฐเบเบงเบเบเบฒเบเปเบเบฑเบเบเบดเปเบช.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com