ื“ืึธืงืงืขืจ ืขืฆื•ืช: ื•ื™ืกืžืขืงืŸ ื“ื™ื™ืŸ ืžืึทืฉื™ืŸ ืคื•ืŸ ืึธืคึผืคืึทืœ

ื“ืึธืงืงืขืจ ืขืฆื•ืช: ื•ื™ืกืžืขืงืŸ ื“ื™ื™ืŸ ืžืึทืฉื™ืŸ ืคื•ืŸ ืึธืคึผืคืึทืœ

ื”ืขืœื, ื”ืื‘ืจ! ืื™ืš ืคืึธืจืฉื˜ืขืœืŸ ืฆื• ื“ื™ื™ืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ืึท ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ "ื“ืึธืงืงืขืจ ืขืฆื•ืช: ืจื™ื™ื ื™ืงืŸ ื“ื™ื™ืŸ ืœืืงืืœืข ืžืึทืฉื™ืŸ" ื“ืขืจ ืžื—ื‘ืจ ืœื•ืง ื“ื–ืฉื•ื’ืขืจื™.

ื”ื™ื™ึทื ื˜ ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื•ื•ื™ Docker ื ื™ืฆื˜ ื“ื™ ื“ื™ืกืง ืคึผืœืึทืฅ ืคื•ืŸ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืžืึทืฉื™ืŸ, ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืš ื’ืขืคึฟื™ื ืขืŸ ืื•ื™ืก ื•ื•ื™ ืฆื• ื‘ืึทืคืจื™ื™ึทืขืŸ ื“ืขื ืคึผืœืึทืฅ ืคื•ืŸ ืกืงืจืึทืคึผืก ืคื•ืŸ ืึทื ื™ื•ื–ื“ ื‘ื™ืœื“ืขืจ ืื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–.


ื“ืึธืงืงืขืจ ืขืฆื•ืช: ื•ื™ืกืžืขืงืŸ ื“ื™ื™ืŸ ืžืึทืฉื™ืŸ ืคื•ืŸ ืึธืคึผืคืึทืœ

ื’ืึทื ืฅ ืงืึทื ืกืึทืžืฉืึทืŸ

ื“ืึธืงืขืจ ืื™ื– ืึท ืงื™ืœ ื–ืึทืš, ืžื™ืกื˜ืึธืžืข ื•ื•ื™ื™ื ื™ืง ืžืขื ื˜ืฉืŸ ืฆื•ื•ื™ื™ืคืœ ืขืก ื”ื™ื™ึทื ื˜. ื‘ืœื•ื™ื– ืึท ื‘ื™ืกืœ ื™ืึธืจืŸ ืฆื•ืจื™ืง, ื“ืขื ืคึผืจืึธื“ื•ืงื˜ ื”ืื˜ ืื•ื ื“ื– ืึท ื’ืึธืจ ื ื™ื™ึทืข ื•ื•ืขื’ ืฆื• ื‘ื•ื™ืขืŸ, ืฆื•ืฉื˜ืขืœืŸ ืื•ืŸ ืœื•ื™ืคืŸ ืงื™ื™ืŸ ืกื•ื•ื™ื•ื•ืข, ืึทืœืึทื•ื™ื ื’ ืื•ื ื“ื– ืฆื• ื‘ืื˜ื™ื™ื˜ื™ืง ืฉืคึผืึธืจืŸ ืงืคึผื• ืื•ืŸ ื‘ืึทืจืึทืŸ ืจืขืกื•ืจืกืŸ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ืขื (ืื•ืŸ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื“ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ ืžืขืจืกื˜ ื•ื•ื™ื›ื˜ื™ืง ื–ืึทืš) ื“ืึธืงืขืจ ื”ืื˜ ื“ืขืจืœื•ื™ื‘ื˜ ืื•ื ื“ื– ืฆื• ื™ื ืงืจืขื“ืึทื‘ืœื™ ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ืื•ืŸ ื™ื•ื ืึทืคื™ื™ื“ ื“ื™ ืœื™ืคืขืกื™ืงืœืข ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืคึผืจืึธื“ื•ืงืฆื™ืข ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ.

ืึธื‘ืขืจ, ืึทืœืข ื“ื™ ื“ื™ืœื™ื™ืฅ ืคื•ืŸ ืžืึธื“ืขืจืŸ ืœืขื‘ืŸ ืงื•ืžืขืŸ ืฆื• ืึท ืคึผืจื™ื™ึทื–. ื•ื•ืขืŸ ืžื™ืจ ืœื•ื™ืคืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–, ืืจืืคืงืืคื™ืข ืึธื“ืขืจ ืฉืึทืคึฟืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ื‘ื™ืœื“ืขืจ ืื•ืŸ ืฆืขื•ื•ื™ืงืœืขืŸ ืงืึธืžืคึผืœืขืงืก ื™ืงืึธื•ืกื™ืกื˜ืึทืžื–, ืžื™ืจ ื”ืึธื‘ืŸ ืฆื• ื‘ืึทืฆืึธืœืŸ. ืื•ืŸ ืžื™ืจ ื‘ืึทืฆืึธืœืŸ, ืฆื•ื•ื™ืฉืŸ ืื ื“ืขืจืข ื–ืื›ืŸ, ืžื™ื˜ ื“ื™ืกืง ืคึผืœืึทืฅ.

ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ืงื™ื™ื ืžืึธืœ ื’ืขื“ืึทื ืง ื•ื•ืขื’ืŸ ื•ื•ื™ ืคื™ืœ ืคึผืœืึทืฅ ื“ืึธืงืงืขืจ ืึทืงืฉืœื™ ื ืขืžื˜ ืื•ื™ืฃ ื“ื™ื™ืŸ ืžืึทืฉื™ืŸ, ืื™ืจ ืงืขืŸ ื–ื™ื™ืŸ ืึทื ืคึผืœืขื–ืึทื ื˜ืœื™ ืกืึทืคึผืจื™ื™ื–ื“ ื“ื•ืจืš ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ืขื ื‘ืึทืคึฟืขืœ:

$ docker system df

ื“ืึธืงืงืขืจ ืขืฆื•ืช: ื•ื™ืกืžืขืงืŸ ื“ื™ื™ืŸ ืžืึทืฉื™ืŸ ืคื•ืŸ ืึธืคึผืคืึทืœ

ื“ืึธืก ื•ื•ื™ื™ื–ื˜ ื“ืึธืงืขืจ ืก ื“ื™ืกืง ื‘ืึทื ื™ืฅ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืงืึทื ื˜ืขืงืกืฅ:

  • ื‘ื™ืœื“ืขืจ - ื“ื™ ื’ืึทื ืฅ ื’ืจื™ื™ืก ืคื•ืŸ ื‘ื™ืœื“ืขืจ ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืคึฟื•ืŸ ื‘ื™ืœื“ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ื– ืื•ืŸ ื’ืขื‘ื•ื™ื˜ ืื•ื™ืฃ ื“ื™ื™ืŸ ืกื™ืกื˜ืขื;
  • ืงืึทื ื˜ื™ื™ื ืขืจื– - ื“ื™ ื’ืึทื ืฅ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื“ื™ืกืง ืคึผืœืึทืฅ ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ืคืœื™ืกื ื“ื™ืง ืงืึทื ื˜ื™ื™ื ืขืจื– (ื˜ื™ื™ึทื˜ืฉ ื“ื™ ื’ืึทื ืฅ ื‘ืึทื ื“ ืคื•ืŸ ืœื™ื™ืขื ืขืŸ-ืฉืจื™ื™ึทื‘ืŸ ืœื™ื™ึทืขืจืก ืคื•ืŸ ืึทืœืข ืงืึทื ื˜ื™ื™ื ืขืจื–);
  • ื”ื™ื’ืข ื•ื•ืึทืœื™ื•ืžื– - ื“ื™ ื‘ืึทื ื“ ืคื•ืŸ ื”ื™ื’ืข ืกื˜ืึธืจื™ื“ื–ืฉ ืžืึธื•ื ื˜ืขื“ ืฆื• ืงืึทื ื˜ื™ื™ื ืขืจื–;
  • ื‘ื•ื™ืขืŸ ืงืึทืฉ - ืฆื™ื™ื˜ื•ื•ื™ื™ืœื™ื’ืข ื˜ืขืงืขืก ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื“ื•ืจืš ื“ื™ ื‘ื™ืœื“ ื‘ื ื™ืŸ ืคึผืจืึธืฆืขืก (ื ื™ืฆืŸ ื“ื™ BuildKit ื’ืขืฆื™ื™ึทื’, ื‘ื ื™ืžืฆื ืกื˜ืึทืจื˜ื™ื ื’ ืžื™ื˜ Docker ื•ื•ืขืจืกื™ืข 18.09).

ืื™ืš ื’ืขื•ื•ืขื˜ ืึทื– ื ืึธืš ื“ืขื ืคึผืฉื•ื˜ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืื™ืจ ื–ืขื ื˜ ืœืึธืขื˜ ืฆื• ืจื™ื™ืŸ ื“ื™ื™ืŸ ื“ื™ืกืง ืคื•ืŸ ืžื™ืกื˜ ืื•ืŸ ื‘ืจืขื ื’ืขืŸ ื˜ื™ื™ึทืขืจ ื’ื™ื’ืื‘ื™ื™ื˜ ืฆื•ืจื™ืง ืฆื• ืœืขื‘ืŸ (ื‘ืึทืžืขืจืงื•ื ื’: ืกืคึผืขืฆื™ืขืœ ืื•ื™ื‘ ืื™ืจ ื‘ืึทืฆืึธืœืŸ ื“ื™ื ื’ืขืŸ ืคึฟืึทืจ ื“ื™ ื’ื™ื’ืื‘ื™ื™ื˜ ื™ืขื“ืขืจ ื—ื•ื“ืฉ).

ื“ื™ืกืง ื‘ืึทื ื™ืฅ ื“ื•ืจืš ืงืึทื ื˜ื™ื™ื ืขืจื–

ื™ืขื“ืขืจ ืžืึธืœ ืื™ืจ ืฉืึทืคึฟืŸ ืึท ืงืึทื ื˜ื™ื™ื ืขืจ ืื•ื™ืฃ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืžืึทืฉื™ืŸ, ืขื˜ืœืขื›ืข ื˜ืขืงืขืก ืื•ืŸ ื“ื™ื™ืจืขืงื˜ืขืจื™ื– ื–ืขื ืขืŸ ื‘ืืฉืืคืŸ ืื™ืŸ ื“ื™ /var/lib/docker ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ, ืฆื•ื•ื™ืฉืŸ ื•ื•ืึธืก ื“ื™ ืคืืœื’ืขื ื“ืข ื–ืขื ืขืŸ ื›ื“ืื™ ืฆื• ื‘ืืžืขืจืงืŸ:

  • Directory /var/lib/docker/containers/container_ID - ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ ื“ื™ ื ืึธืจืžืึทืœ ืœืึธื’ื™ื ื’ ืฉืึธืคืขืจ, ื“ืึธืก ืื™ื– ื•ื•ื• ื’ืขืฉืขืขื ื™ืฉ ืœืึธื’ืก ื–ืขื ืขืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜. ืฆื• ื“ื™ื˜ื™ื™ืœื“ ืœืึธื’ืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืœืึธื’ืก ืึทื– ืงื™ื™ืŸ ืื™ื™ื ืขืจ ืœื™ื™ืขื ื˜ ืึธื“ืขืจ ืึทื ื“ืขืจืฉ ืคึผืจืึทืกืขืกืึทื–, ืึธืคื˜ ื’ืจื•ื ื˜ ื“ื™ืกืงืก ืฆื• ื•ื•ืขืจืŸ ืคื•ืœ.
  • ื“ื™ /var/lib/docker/overlay2 ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื›ึผื•ืœืœ ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจ ืœื™ื™ืขื ืขืŸ-ืฉืจื™ื™ึทื‘ืŸ ืœื™ื™ึทืขืจืก (ืึธื•ื•ืขืจืœื™ื™ึท2 ืื™ื– ื“ืขืจ ื‘ื™ืœื›ืขืจ ืฉืึธืคืขืจ ืื™ืŸ ืจื•ื‘ึฟ ืœื™ื ื•ืงืก ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฉืึทื ื–). ืื•ื™ื‘ ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืกื˜ืึธืจื– ื“ืึทื˜ืŸ ืื™ืŸ ื–ื™ื™ืŸ ื˜ืขืงืข ืกื™ืกื˜ืขื, ืขืก ืื™ื– ืื™ืŸ ื“ืขื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืึทื– ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉื˜ืขืœื˜.

ืœืึธืžื™ืจ ื™ืžืึทื“ื–ืฉืึทืŸ ืึท ืกื™ืกื˜ืขื ืื•ื™ืฃ ื•ื•ืึธืก ืึท ืคึผืจื™ืกื˜ื™ื ืข ื“ืึธืงืงืขืจ ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ, ื•ื•ืึธืก ืื™ื– ืงื™ื™ื ืžืึธืœ ื’ืขื•ื•ืขืŸ ื™ื ื•ื•ืึทืœื•ื•ื“ ืื™ืŸ ืงืึทื˜ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจื– ืึธื“ืขืจ ื‘ื•ื™ืขืŸ ื‘ื™ืœื“ืขืจ. ื–ื™ื™ืŸ ื“ื™ืกืง ืคึผืœืึทืฅ ื‘ืึทื ื™ืฅ ื‘ืึทืจื™ื›ื˜ ื•ื•ืขื˜ ืงื•ืงืŸ ื•ื•ื™ ื“ืึธืก:

$ 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 ืžืขื’ืื‘ื™ื™ื˜ืŸ, ื“ืึธืก ืื™ื– ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ NGINX ื•ื•ืึธืก ืžื™ืจ ืœืึธื ื˜ืฉื˜ ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ;
  • ืงืึทื ื˜ื™ื™ื ืขืจื– ื ืขืžืขืŸ ืึทืจื•ื™ืฃ ืึท ืœืขื›ืขืจืœืขืš 2 ื‘ื™ื˜ืขืก.

$ 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 ื‘ื™ื˜ืขืก ืื™ื– ื’ืึธืจ ืœื™ื™ื›ื˜ื–ื™ื ื™ืงืข, ืœืึธื–ืŸ ืื•ื ื“ื– ื™ืžืึทื“ื–ืฉืึทืŸ ืึทื– ืื•ื ื“ื–ืขืจ NGINX ืึทื ื™ืงืกืคึผืขืงื˜ื™ื“ืœื™ ื’ืขืฉืจื™ื‘ืŸ ืขืจื’ืขืฅ 100 ืžืขื’ืื‘ื™ื™ื˜ ืคื•ืŸ ื“ืึทื˜ืŸ ืื•ืŸ ื‘ืืฉืืคืŸ ืึท ื˜ืขืงืข test.img ืคื•ืŸ ืคึผื•ื ืงื˜ ื“ืขื ื’ืจื™ื™ืก ืื™ืŸ ื–ื™ืš.

$ docker exec -ti www 
  dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100]

ื–ืืœ ืก ื•ื ื˜ืขืจื–ื•ื›ืŸ ื“ื™ ื“ื™ืกืง ืคึผืœืึทืฅ ื‘ืึทื ื™ืฅ ืื•ื™ืฃ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ื•ื•ื™ื“ืขืจ. ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืึทื– ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ (ืงืึธื ื˜ืึทืงื˜ืขืจื–) ืึทืงื™ืึทืคึผื™ื™ื– 100 ืžืขื’ืื‘ื™ื™ื˜ ื“ืึธืจื˜.

$ 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 ื˜ืขืงืข ืื™ื– ืงืึทื ื•ื•ื™ื ื™ืึทื ื˜ืœื™ ืœื™ื’ืŸ ืื•ื™ืฃ ื“ื™ ืœื™ื™ืขื ืขืŸ-ืฉืจื™ื™ึทื‘ืŸ ืžื“ืจื’ื”, ืงืึทื ื˜ืจืึธื•ืœื“ ื“ื•ืจืš ื“ื™ ืึธื•ื•ื•ืขืจืœื™ื™2 ืฉืึธืคืขืจ. ืื•ื™ื‘ ืžื™ืจ ื”ืึทืœื˜ืŸ ืื•ื ื“ื–ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ, ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ื•ื•ืขื˜ ื–ืึธื’ืŸ ืื•ื ื“ื– ืึทื– ื“ืขื ืคึผืœืึทืฅ ืงืขื ืขืŸ, ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ื–ื™ื™ืŸ ืคืจื™ื™:

# 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

ื•ื•ื™ ืงืขื ืขืŸ ืžื™ืจ ื˜ืึธืŸ ื“ืึธืก? ื“ื•ืจืš ื“ื™ืœื™ื˜ื™ื ื’ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ, ื•ื•ืึธืก ื•ื•ืขื˜ ืึทืจื™ื™ึทื ืฆื™ืขืŸ ืงืœืึธืจ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคึผืœืึทืฅ ืื™ืŸ ื“ื™ ืœื™ื™ืขื ืขืŸ-ืฉืจื™ื™ึทื‘ืŸ ืžื“ืจื’ื”.

ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ, ืื™ืจ ืงืขื ืขืŸ ืึทืจืึธืคึผื ืขืžืขืŸ ืึทืœืข ืื™ื ืกื˜ืึทืœื™ืจืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ืŸ ืื™ื™ืŸ ืกื•ื•ื•ืคึผ ืื•ืŸ ื•ื™ืกืžืขืงืŸ ื“ื™ื™ืŸ ื“ื™ืกืง ืคื•ืŸ ืึทืœืข ืœื™ื™ืขื ืขืŸ-ืฉืจื™ื™ึทื‘ืŸ ื˜ืขืงืขืก ื‘ืืฉืืคืŸ ื“ื•ืจืš ื–ื™ื™:

$ 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 ืžืขื’ืื‘ื™ื™ื˜ ื“ื•ืจืš ื“ื™ืœื™ื˜ื™ื ื’ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ. ืึธื‘ืขืจ ื–ื™ื ื˜ ืžื™ืจ ื ื™ื˜ ืžืขืจ ื ื•ืฆืŸ ื“ื™ ืคืจื™ืขืจ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ื‘ื™ืœื“, ืขืก ืื•ื™ืš ื•ื•ืขืจื˜ ืึท ืงืึทื ื“ื™ื“ืึทื˜ ืคึฟืึทืจ ื“ื™ืœื™ื˜ื™ื ื’ ืื•ืŸ ืคืจื™ื™ ืื•ื ื“ื–ืขืจ ืจืขืกื•ืจืกืŸ:

$ 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

ื‘ืึทืžืขืจืงื•ื ื’: ื•ื•ื™ ืœืึทื ื’ ื•ื•ื™ ื“ื™ ื‘ื™ืœื“ ืื™ื– ืื™ืŸ ื ื•ืฆืŸ ื“ื•ืจืš ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืื™ื™ืŸ ืงืึทื ื˜ื™ื™ื ืขืจ, ืื™ืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ื ื•ืฆืŸ ื“ืขื ื˜ืจื™ืง.

ื“ื™ ืคึผืจื•ื ืข ืกืึทื‘ืงืึทืžืึทื ื“ ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ ืื•ื™ื‘ืŸ ื”ืื˜ ื‘ืœื•ื™ื– ืึท ื•ื•ื™ืจืงื•ื ื’ ืื•ื™ืฃ ืคืืจืฉื˜ืืคื˜ ืงืึทื ื˜ื™ื™ื ืขืจื–. ืื•ื™ื‘ ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื•ื™ืกืžืขืงืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ืกื˜ืึทืคึผื˜ ืึธื‘ืขืจ ืื•ื™ืš ืคืœื™ืกื ื“ื™ืง ืงืึทื ื˜ื™ื™ื ืขืจื–, ืžื™ืจ ื–ืึธืœ ื ื•ืฆืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืงืึทืžืึทื ื“ื–:

# Historical command
$ docker rm -f $(docker ps โ€“aq)

# More recent command
$ docker container rm -f $(docker container ls -aq)

ื–ื™ื™ึทื˜ ื”ืขืจื•ืช: ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ื“ื™ -rm ืคึผืึทืจืึทืžืขื˜ืขืจ ื•ื•ืขืŸ ืื™ืจ ืึธื ื”ื™ื™ื‘ ืึท ืงืึทื ื˜ื™ื™ื ืขืจ, ื•ื•ืขืŸ ืขืก ืกื˜ืึทืคึผืก, ืึทืœืข ื“ื™ ื“ื™ืกืง ืคึผืœืึทืฅ ื•ื•ืึธืก ืขืก ืคืึทืจื ื•ืžืขืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืจื™ื™.

ื ื™ืฆืŸ ื“ื™ืกืง ื‘ื™ืœื“ืขืจ

ืžื™ื˜ ืขื˜ืœืขื›ืข ื™ืึธืจ ืฆื•ืจื™ืง, ืึท ื‘ื™ืœื“ ื’ืจื™ื™ืก ืคื•ืŸ ืขื˜ืœืขื›ืข ื”ื•ื ื“ืขืจื˜ ืžืขื’ืื‘ื™ื™ื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืึธืจ ื ืึธืจืžืึทืœ: ืึท ื•ื‘ื•ื ื˜ื• ื‘ื™ืœื“ ื•ื•ื™ื™ื“ 600 ืžืขื’ืื‘ื™ื™ื˜, ืื•ืŸ ืึท ืžื™ืงืจืึธืกืึธืคื˜ .ื ืขื˜ ื‘ื™ืœื“ ื•ื•ืขื’ืŸ ืขื˜ืœืขื›ืข ื’ื™ื’ืื‘ื™ื™ื˜. ืื™ืŸ ื™ืขื ืข ืฆืขืฉื•ื™ื‘ืขืจื˜ ื˜ืขื’, ื“ืึทื•ื ืœืึธื•ื“ื™ื ื’ ื‘ืœื•ื™ื– ืื™ื™ืŸ ื‘ื™ืœื“ ืงืขืŸ ื ืขืžืขืŸ ืึท ื’ืจื•ื™ืก ืึธืคึผืฆืึธืœ ืื•ื™ืฃ ื“ื™ื™ืŸ ืคืจื™ื™ ื“ื™ืกืง ืคึผืœืึทืฅ, ืืคื™ืœื• ืื•ื™ื‘ ืื™ืจ ื˜ื™ื™ืœืŸ ืœืขื•ื•ืขืœืก ืฆื•ื•ื™ืฉืŸ ื‘ื™ืœื“ืขืจ. ื”ื™ื™ึทื ื˜ - ืœื•ื™ื‘ ืฆื• ื“ื™ ื’ืจื•ื™ืก - ื‘ื™ืœื“ืขืจ ื•ื•ืขื’ืŸ ืคื™ืœ ื•ื•ื™ื™ื ื™ืงืขืจ, ืึธื‘ืขืจ ืืคื™ืœื• ืึทื–ื•ื™, ืื™ืจ ืงืขื ืขืŸ ื’ืขืฉื•ื•ื™ื ื“ ืคึผืœืึธืžื‘ื™ืจืŸ ื“ื™ ื‘ื ื™ืžืฆื ืจืขืกื•ืจืกืŸ ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื ืขืžืขืŸ ืขื˜ืœืขื›ืข ืคึผืจื™ืงืึธืฉืึทื ื–.

ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ื‘ื™ืœื“ืขืจ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืงืขื ื˜ื™ืง ื’ืœื™ื™ึทืš ืฆื• ื“ืขืจ ืกื•ืฃ ื‘ืึทื ื™ืฆืขืจ:

  • ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ื‘ื™ืœื“ืขืจ, ืื•ื™ืฃ ื“ืขืจ ื‘ืื–ืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืึธืก ืื ื“ืขืจืข ื‘ื™ืœื“ืขืจ ื–ืขื ืขืŸ ื’ืขื–ืืžืœื˜ - ื–ื™ื™ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ืื•ื™ืกื’ืขืžืขืงื˜ ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ "ืื ื“ืขืจืข" ื‘ื™ืœื“ืขืจ;
  • ื“ืึทื ื’ื’ื™ื ื’ ื‘ื™ืœื“ืขืจ ื–ืขื ืขืŸ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ื‘ื™ืœื“ืขืจ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืจืขืคืขืจืจืขื“ ื“ื•ืจืš ืงื™ื™ืŸ ืคื•ืŸ ื“ื™ ืคืœื™ืกื ื“ื™ืง ืงืึทื ื˜ื™ื™ื ืขืจื– - ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื•ื™ืกื’ืขืžืขืงื˜.
  • ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ ืื™ืจ ืงืขื ืขืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืคึฟืึทืจ ื“ืึทื ื’ื’ื™ื ื’ ื‘ื™ืœื“ืขืจ ืื•ื™ืฃ ื“ื™ื™ืŸ ืกื™ืกื˜ืขื:

$ 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)

ืžื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ื ื•ืฆืŸ ื“ื™ ืคึผืจื•ื ืข ืกืึทื‘ืงืึทืžืึทื ื“:

$ 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

ืื•ื™ื‘ ืžื™ืจ ืคึผืœื•ืฆืœื™ื ื’ ื•ื•ื™ืœืŸ ืฆื• ื•ื™ืกืžืขืงืŸ ืึทืœืข ื‘ื™ืœื“ืขืจ ื‘ืขืกืึทื›ืึทืงืœ (ืื•ืŸ ื ื™ื˜ ื ืึธืจ ื“ืึทื ื’ื’ื™ื ื’) ืžื™ื˜ ืื™ื™ืŸ ื‘ืึทืคึฟืขืœ, ืžื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ื“ืึธืก:

$ 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/volums ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืึธื‘ืขืจ ืคืืจื•ื•ืืก ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ืœื™ื™ืขื ืขืŸ-ืฉืจื™ื™ึทื‘ืŸ ืžื“ืจื’ื” ืคื•ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ? ื•ื•ื™ื™ึทืœ ืื™ืŸ ื“ื™ Dockerfile ืคื•ืŸ ื“ื™ MongoDB ื‘ื™ืœื“, ื“ื™ /data/db ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ (ื•ื•ื• MongoDB ืกื˜ืึธืจื– ื–ื™ื™ึทืŸ ื“ืึทื˜ืŸ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜) ืื™ื– ื“ื™ืคื™ื™ื ื“ ื•ื•ื™ ืึท ื‘ืึทื ื“.

ื“ืึธืงืงืขืจ ืขืฆื•ืช: ื•ื™ืกืžืขืงืŸ ื“ื™ื™ืŸ ืžืึทืฉื™ืŸ ืคื•ืŸ ืึธืคึผืคืึทืœ

ื–ื™ื™ึทื˜ ื˜ืึธืŸ: ืคื™ืœืข ื‘ื™ืœื“ืขืจ ื•ื•ืึธืก ืžื•ื–ืŸ ืคึผืจืึธื“ื•ืฆื™ืจืŸ ื“ืึทื˜ืŸ ื ื•ืฆืŸ ื•ื•ืึทืœื™ื•ืžื– ืฆื• ืงืจืึธื ื“ื™ ื“ืึทื˜ืŸ.

ื•ื•ืขืŸ ืžื™ืจ ืฉืคึผื™ืœืŸ ื’ืขื ื•ื’ ืžื™ื˜ MongoDB ืื•ืŸ ื”ืึทืœื˜ืŸ (ืึธื“ืขืจ ืืคึฟืฉืจ ืืคื™ืœื• ื•ื™ืกืžืขืงืŸ) ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ, ื“ืขืจ ื‘ืึทื ื“ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืื•ื™ืกื’ืขืžืขืงื˜. ืขืก ื•ื•ืขื˜ ืคืึธืจื–ืขืฆืŸ ืฆื• ื ืขืžืขืŸ ืื•ื ื“ื–ืขืจ ื˜ื™ื™ึทืขืจ ื“ื™ืกืง ืคึผืœืึทืฅ ื‘ื™ื– ืžื™ืจ ื•ื™ืกืžืขืงืŸ ืขืก ื‘ืคื™ืจื•ืฉ ืžื™ื˜ ืึท ื‘ืึทืคึฟืขืœ ื•ื•ื™ ื“ืึธืก:

$ docker volume rm $(docker volume ls -q)

ื ื•, ืึธื“ืขืจ ืžื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ ืคึผืจื•ื ืข ืกืึทื‘ืงืึทืžืึทื ื“ ื•ื•ืึธืก ืื™ื– ืฉื•ื™ืŸ ื‘ืึทืงืึทื ื˜ ืฆื• ืื•ื ื“ื–:

$ 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:~$

ื ื™ืฆืŸ ื“ื™ืกืง ืคึฟืึทืจ ื‘ื™ืœื“ ื‘ื•ื™ืขืŸ ืงืึทืฉ

ืื™ืŸ Docker 18.09, ื“ื™ ื‘ื™ืœื“ ืฉืึทืคื•ื ื’ ืคึผืจืึธืฆืขืก ื”ืื˜ ืึทื ื“ืขืจื’ืึธืŸ ืขื˜ืœืขื›ืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ืึทื ืง ืฆื• ื“ื™ BuildKit ื’ืขืฆื™ื™ึทื’. ื“ื™ ื–ืึทืš ื™ื ืงืจื™ืกื™ื– ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืื•ืŸ ืึธืคึผื˜ื™ืžื™ื–ืขืก ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’. ื“ืึธ ืžื™ืจ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืึทืœืข ื“ื™ ื“ืขื˜ืึทื™ืœืก ืคื•ืŸ ื“ืขื ื•ื•ื•ื ื“ืขืจืœืขืš ื’ืขืฆื™ื™ึทื’; ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืœื•ื™ื– ืคืึธืงื•ืก ืื•ื™ืฃ ื•ื•ื™ ืขืก ื•ื•ืขื ื“ื˜ ื™ืฉื•ื– ืคื•ืŸ ื“ื™ืกืง ืคึผืœืึทืฅ ื ื•ืฆืŸ.

ื–ืืœ ืก ื–ืึธื’ืŸ ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื’ืึธืจ ืคึผืฉื•ื˜ Node.Js ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ:

  • ื“ื™ index.js ื˜ืขืงืข ืกื˜ืึทืจืฅ ืึท ืคึผืฉื•ื˜ ื”ื˜ื˜ืคึผ ืกืขืจื•ื•ืขืจ ื•ื•ืึธืก ืจื™ืกืคึผืึทื ื“ื– ืžื™ื˜ ืึท ืฉื•ืจื” ืฆื• ื™ืขื“ืขืจ ื‘ืขื˜ืŸ ื‘ืืงื•ืžืขืŸ:
  • ื“ื™ package.json ื˜ืขืงืข ื“ื™ืคื™ื™ื ื– ื“ื™ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–, ืคื•ืŸ ื•ื•ืึธืก ื‘ืœื•ื™ื– ืขืงืกืคึผืจืขืกืกื“ื–ืฉืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืœื•ื™ืคืŸ ื“ื™ ื”ื˜ื˜ืคึผ ืกืขืจื•ื•ืขืจ:

$ 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 .

ืื•ื™ื‘ ืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ืกืง ืคึผืœืึทืฅ, ืžื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืึทื– ื‘ืœื•ื™ื– ื“ื™ ื‘ืึทื–ืข ื‘ื™ืœื“ (ื ืึธื“ืข: 13-ืึทืœืคึผื™ื™ืŸ) ืื•ืŸ ื“ื™ ืฆื™ืœ ื‘ื™ืœื“ (ืึทืคึผ: 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 .

ืื•ื™ื‘ ืžื™ืจ ืื™ืฆื˜ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื“ื™ืกืง ื‘ืึทื ื™ืฅ, ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืึทื– ื“ื™ ื‘ื•ื™ืขืŸ ืงืึทืฉ (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

ืžืขืง ืื•ื™ืก ืืœืข!

ืึทื–ื•ื™, ืžื™ืจ ื’ืขืงื•ืงื˜ ืื•ื™ืฃ ืจื™ื™ื ื™ืงื•ื ื’ ื“ื™ืกืง ืคึผืœืึทืฅ ืคืึทืจื ื•ืžืขืŸ ื“ื•ืจืš ืงืึทื ื˜ื™ื™ื ืขืจื–, ื‘ื™ืœื“ืขืจ ืื•ืŸ ื•ื•ืึทืœื™ื•ืžื–. ื“ื™ ืคึผืจื•ื ืข ืกืึทื‘ืงืึทืžืึทื ื“ ื”ืขืœืคื˜ ืื•ื ื“ื– ืžื™ื˜ ื“ืขื. ืึธื‘ืขืจ ืขืก ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื•ื™ืฃ ื“ื™ ื“ืึธืงืงืขืจ ืกื™ืกื˜ืขื ืžื“ืจื’ื”, ืื•ืŸ ืขืก ื•ื•ืขื˜ ืจื™ื™ื ื™ืงืŸ ืึทืœืฅ ืขืก ืงืขื ืขืŸ:

$ 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]

ืื•ื™ื‘ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื” ืื™ืจ ืฉืคึผืึธืจืŸ ื“ื™ืกืง ืคึผืœืึทืฅ ืื•ื™ืฃ ืึท ืžืึทืฉื™ืŸ ืžื™ื˜ ื“ืึธืงืงืขืจ, ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืœื•ื™ืคืŸ ื“ืขื ื‘ืึทืคึฟืขืœ ื–ืึธืœ ื•ื•ืขืจืŸ ืึท ืžื™ื“ืข.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’