áá±áž áá¬á! áá±á¬ááºážáá«ážáá²á· áá¬áá¬ááŒááºáá»ááºááᯠáááºážáá²á·á¡á¬áá¯á¶ááᯠáá«áááºááŒáááºá
ááá±á·áá»áœááºá¯ááºááá¯á·ááẠDocker ááẠhost machine á disk space ááá¯áááºááá¯á·á¡áá¯á¶ážááŒá¯áááºááŸáá·áº áááºáááºá ááœá±ážááœá±ážáááºááŒá áºááŒá®ážá á¡áá¯á¶ážáááŒá¯áá±á¬áá¯á¶áá»á¬ážááŸáá·áº containers áá»á¬ážáá¡ááŒáœááºážá¡áá»ááºáá»á¬ážááŸá€áá±áá¬ááœááºááá¯áááºáá²á·ááá¯á·áááºááŸá¬ážááááºááá¯áá»áœááºá¯ááºááá¯á·áááºážá ááºážá á¬ážáá«áááºá
á á¯á á¯áá±á«ááºážá á¬ážáá¯á¶ážááŸá¯
Docker ááẠá¡á±ážááŒáá±á¬á¡áá¬ááŒá áºááŒá®áž ááá±á·áá°á¡áááºážáááºá áááºážááᯠáá¶ááááŒá áºááœááºááŸááááºá ááœááºáá²á·ááá·áºááŸá áºá¡áááºážáááºáá á€áá¯ááºáá¯ááºááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž áááºááá·áºáááºáááºážáá»ááºááá¯áááᯠáááºáá±á¬ááºá áá±ážááá¯á·áááºááŸáá·áº áá¯ááºáá±á¬ááºááẠáá¯á¶ážáá¡áá áºáá±á¬áááºážáááºážáá áºáá¯áá±ážáá²á·ááŒá®áž CPU ááŸáá·áº RAM á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááááá¬áᬠáá»áœá±áá¬ááá¯ááºá á±áá«áááºá áááºážá¡ááŒáẠ(á¡áá»áá¯á·á¡ááœááºáááºážááẠá¡áá±ážá¡ááŒá®ážáá¯á¶ážá¡áá¬ááŒá áºáááá·áºáááº) Docker ááẠáá»áœááºá¯ááºááá¯á·ááá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºá lifecycle á á®áá¶ááá·áºááœá²ááŸá¯ááᯠááá¯á¶ááá¯ááºáá±á¬ááºá¡á±á¬ááºááá¯ážááŸááºážá á±ááŒá®áž áá±á«ááºážá ááºážááá¯ááºá á±áá«áááºá
ááá¯á·áá±á¬áºáááºáž áá±ááºáá áºááá ááŒááºáá°ážá áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááᯠá á»á±ážááŸá¯ááºážááŒáá·áº áá±ážáá±á¬ááºááááºá áá»áœááºá¯ááºááá¯á·ááẠááœááºááááºáá¬áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážá áá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáá¯á¶áá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒááºáž ááá¯á·ááá¯áẠáááºáá®ážááŒááºážááŸáá·áº ááŸá¯ááºááœá±ážáá±á¬ áá±áá áá áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá« áá»áœááºá¯ááºááá¯á·ááẠááœá±áá±ážáá»á±ááá«áááºá ááŒá®ážáá±á¬á· áá«ááá¯á·á disk space áá²á· áááŒá¬ážá¡áá¬ááœá±ááᯠáá±ážáááºá
á¡áááºá Docker ááẠááá·áºá ááºááœáẠáá±áá¬ááœááºáááºáá»áŸ áá±áá¬áá°áááºááᯠááẠáá áºáá«á០áááœá±ážáá°ážáá«áá ဠcommand á output ááŒá±á¬áá·áº ááẠá¡á¶á·á¡á¬ážááá·áºá áᬠááŒá áºááá¯ááºáá«áááºá
$ docker system df
áááºážááẠááá°áá®áá±á¬á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááœáẠDocker ááá áºá¡áá¯á¶ážááŒá¯ááŸá¯ááá¯ááŒááááº-
- áá¯á¶áá»á¬áž â áá¯á¶ááá¯ááŸá±á¬ááºáá¬áá»á¬ážá០áá±á«ááºážáá¯ááºáá¯ááºááŒá®áž ááá·áºá áá áºáá±á«áºááœáẠáááºáá±á¬ááºáá¬ážááá·áº áá¯á¶áá»á¬ážá á á¯á á¯áá±á«ááºážá¡ááœááºá¡á á¬ážá
- ááœááºááááºáá¬áá»á¬áž - ááœááºááááºáá¬áá»á¬ážáááºáááºááŒááºážááŒáá·áºá¡áá¯á¶ážááŒá¯áá±á¬á á¯á á¯áá±á«ááºáž disk space (ááœááºááááºáá¬á¡á¬ážáá¯á¶ážááááºá á¬áá±ážá¡ááœáŸá¬áá»á¬ážáá á¯á á¯áá±á«ááºážááá¬áááá¯ááá¯ááá¯áááº)
- local volumes â ááœááºááááºáá¬áá»á¬ážááœááºáááºáááºáá¬ážáá±á¬ áá±áááá¯ááºáá¬ááá¯ááŸá±á¬ááºááŸá¯ááá¬áá
- build cache - áá¯ááºáá¯á¶áááºáá±á¬ááºááŸá¯áá¯ááºáááºážá ááºááŸáá¯ááºáá±ážáá±á¬ áá¬áá®ááá¯ááºáá»á¬áž (Docker áá¬ážááŸááºáž 18.09 ááŒáá·áº á áááºáááŸáááá¯ááºáá±á¬ BuildKit áááááá¬ááᯠá¡áá¯á¶ážááŒá¯á)á
á€ááá¯ážááŸááºážáá±á¬ááœáŸá²ááŒá±á¬ááºážááŸá¯á¡ááŒá®ážááœáẠáááºááẠáááºáá¡ááŸáá¯ááºáá áºááá¯ááŸááºážáááºážááŒá®áž á¡ááá¯ážáááºáá áºáá«ááá¯ááºáá»á¬ážááŒááºáááºá¡áááºáááºáá¬á á±ááẠá áááºá¡á¬ážáááºáááºáá±áá«ááẠ(ááŸááºáá»ááº- á¡áá°ážáááŒáá·áº á€áá áºáá«ááá¯ááºáá»á¬ážááᯠáá ááºááŸá¬ážáááºážááá±ážáá±á¬ááºáá«á)á
ááœááºááááºáá¬áá»á¬ážááŒáá·áº áá áºááºá¡áá¯á¶ážááŒá¯ááŸá¯
host machine ááœáẠcontainer áá áºáá¯ááᯠáááºáááºáá®ážááá¯ááºááá¯ááºážá ááá¯ááºáá»á¬ážááŸáá·áº directory á¡áá»á¬ážá¡ááŒá¬ážááᯠ/var/lib/docker directory ááœáẠáááºáá®ážáá¬ážááŒá®áž áááºážááá¯á·á¡áááºá០á¡á±á¬ááºáá«ááá¯á·ááẠááŸááºáá¬ážááá¯ááºáááº-
- áááºážááœáŸáẠ/var/lib/docker/containers/container_ID â á á¶ááŸááºáááºážáá±ážááœááºážááá·áºáááá¯ááºáá¬ááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á á€áá±áá¬ááẠááŒá áºáááºááŸááºáááºážáá»á¬ážááᯠJSON áá±á¬áºáááºááŒáá·áº ááááºážáááºážááá·áºáá±áá¬ááŒá áºáááºá á¡áá±ážá áááºááœááºážáá±á¬ ááŸááºáááºážáá»á¬ážá¡ááŒáẠáááºáá°áá»áŸ ááááºááŒááºáž ááá¯á·ááá¯áẠá¡ááŒá¬ážáááºážáááºážááŒáá·áº áá¯ááºáá±á¬ááºááŒááºážáááŸááá±á¬ ááŸááºáááºážáá»á¬ážááẠáá áºááºáá»á¬ážááᯠááŒáá·áºááœá¬ážá á±áááºá
- /var/lib/docker/overlay2 directory ááœáẠcontainer read-write layers áá«ááŸáááẠ(overlay2 ááẠLinux ááŒáá·áºáá»á®ááŸá¯á¡áá»á¬ážá á¯ááœáẠááŸá áºáááºáá±á¬ driver)á ááœááºááááºáá¬ááẠáááºážá ááá¯ááºá áá áºááœáẠá¡áá»ááºá¡áááºáá»á¬ážááᯠááááºážáááºážáá«áá áááºážááᯠá€áááºážááœáŸááºááœáẠáá¬ážááŸááááºááŒá áºáááºá
ááœááºááááºáá¬áá»á¬áž á áááºááŒááºáž ááá¯á·ááá¯áẠáááºáá±á¬ááºáá¯á¶áá»á¬ážááœáẠáá áºáá«á០ááá«áááºáá²á·áá±á¬ ááá¯ážá ááºážáá±á¬ 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
disk áá¬ááŒá áºááœá¬ážáá²
- áá¯á¶áá»á¬ážááẠ126 MB ááŸáááŒá®ážá áááºážááẠááœááºááááºáá¬ááœáẠáá»áœááºá¯ááºááá¯á·áá¯ááºááœáŸááºááá·áº NGINX ááŸáá·áº áá°áá®áá«áááºá
- ááœááºááááºáá¬áá»á¬ážááẠáááºá áá¬áá±á¬ááºážáá±á¬ 2 bytes ááᯠáá°áááºá
$ 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 ááẠáá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬áž ááŒá áºáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·á NGINX ááẠáá±áᬠ100 Megabytes áá±áá¬ááœáẠááááºááŸááºáá² áá±ážáá²á·ááŒá®áž áá°á·á¡ááœááºážá á€á¡ááœááºá¡á á¬áž á¡ááá¡áá»ááŸááá±á¬ ááá¯áẠtest.img ááᯠáááºáá®ážáá²á·ááŒá±á¬ááºáž á áááºáá°ážááŒáá·áºááŒáá«á áá¯á·á
$ docker exec -ti www
dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100]
host ááŸá disk space á¡áá¯á¶ážááŒá¯ááŸá¯ááᯠáááºáá¶á á áºáá±ážááŒáá·áºáá¡á±á¬ááºá ááœááºááááºáᬠ(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 á០ááááºážáá»á¯ááºáá¬ážáá±á¬ read-write á¡ááá·áºááœáẠá¡áááºááŒá±á áœá¬ áááºááŸááá±ááŒá±á¬ááºáž ááŸááºáá¬ážááá¯ááºáá«áááºá áá»áœááºá¯ááºááá¯á·áááœááºááááºáá¬ááᯠáááºááá·áºáá«áá á€áá±áá¬ááẠáá°á¡áá¡á¬ážááŒáá·áº ááœááºááŒá±á¬ááºááá¯ááºáááºáᯠá¡áááºááŸááºá០áá»áœááºá¯ááºááá¯á·á¡á¬áž ááŒá±á¬ááŒáááá·áºáááº-
# 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
áá«ááᯠáááºááᯠáá¯ááºááá²á ááœááºááááºáá¬ááᯠáá»ááºááŒááºážááŒáá·áºá áááºááŸá¯áá±ážá¡ááá·áºááœáẠáááºááá¯ááºáᬠáá±áá¬ááœááºáá»á¬ážááᯠááŸááºážáááºážááẠáá«áááºáááºá
á¡á±á¬ááºáá« command ááŒáá·áºá áááºááẠáááŸáááºááá¯áž áááºáááºáá¬ážááá·áº ááœááºááááºáá¬áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºááŸá¬ážááá¯ááºááŒá®áž áááºážááá¯á· áááºáá®ážáá¬ážááá·áº áááºá á¬áá±ážááá¯ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááá·áºáá áºááᯠááŸááºážáá áºááá¯ááºáááº-
$ 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 subcommand ááẠstop containers áá»á¬ážáá±á«áºááœááºáá¬á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááŸáááẠá áá»áœááºá¯ááºááá¯á·ááẠáááºááá·áºáá¯á¶áá¬áá ááœááºááááºáá¬áá»á¬ážááá¯áá« áááºáááºáá±á á±áá¬áá° áá»ááºááá¯áá«áá áá»áœááºá¯ááºááá¯á·ááẠá€á¡áááá·áºá á¬áá»á¬ážáá²á០áá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯ááá·áºáááº-
# Historical command
$ docker rm -f $(docker ps âaq)
# More recent command
$ docker container rm -f $(docker container ls -aq)
áá±ážááœááºááŸááºá á¯áá»á¬áž- ááœááºááááºáá¬áá áºáá¯á áááºáá±á¬á¡áá«ááœáẠ-rm áá«áá¬áá®áá¬ááᯠáááºá¡áá¯á¶ážááŒá¯áá«áá áááºážááẠáááºááœá¬ážááá·áºá¡áá«ááœáẠáááºážááááºážááá¯ááºáá¬ážáá±á¬ disk space á¡á¬ážáá¯á¶ážááᯠááœááºááœá¬ážáááºááŒá áºáááºá
áá áºááºáá¯á¶áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
ááœááºáá²á·áá±á¬ááŸá áºá¡áááºážáááºáá áá¬ááááºážáá®áá«ááá¯ááºáá»á¬ážá áœá¬ááŸááá±á¬ áá¯ááºáá¯á¶á¡ááœááºá¡á á¬ážááẠáá¯á¶ážááá¯á¶ááŸááºááŒá áºáááº- Ubuntu áá¯á¶áá áºáá¯á¶ááẠ600 megabytes á¡áá±ážáá»áááºááŸáááŒá®áž Microsoft .Net áá¯á¶áá áºáá¯á¶ááẠáá áºáá«ááá¯ááºáá»á¬ážá áœá¬á¡áá±ážáá»áááºááŸááááºá ááŒááºážáááºážáá±á¬áá±á·áááºáá»á¬ážááœááºá áá¯á¶áá áºáá¯á¶áááºážááá¯áᬠáá±á«ááºážáá¯ááºááœá²ááŒááºážááẠáá¯á¶áá»á¬ážááŒá¬ážááœáẠá¡ááá·áºáá»á¬ážááᯠáá»áŸáá±áá±áá±á¬áºáááºáž ááá·áºá¡ááá²á· disk space ááœáẠááŒá®ážáá¬ážáá±á¬ ááááá¯ááºááŸá¯ááŒá áºá á±ááá¯ááºáááºá ááá±á·ááœáẠ- ááŒá®ážáá»ááºáááºážáá¬ážá áœá¬ áá»á®ážááœááºážáá« - áá¯ááºáá¯á¶áá»á¬ážááẠá¡áá±ážáá»ááẠá¡ááœááºáááºážáá±á¬áºáááºáž ááŒáá¯áááºáááááá¬ážáá«á áááŸáááá¯ááºáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá»ááºááŒááºá áœá¬ ááŒáá·áºá áœááºááá¯ááºáá«áááºá
á¡áá¯á¶ážááŒá¯áá°á០ááá¯ááºááá¯ááºáááŒááºááá¯ááºáá±á¬ áá¯á¶á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áœá¬ ááŸááá«áááºá
- á¡ááŒá¬ážáá¯á¶áá»á¬ážááᯠá á¯áá±á¬ááºážáá¬ážááá·áº á¡ááŒá±áᶠá¡áááºá¡áááºáá¯á¶áá»á¬áž - ဠ"á¡ááŒá¬áž" áá¯á¶áá»á¬ážááᯠá¡ááŒá±áá¶á ááœááºááááºáá¬áá»á¬ážááᯠáááºá¡áá¯á¶ážááŒá¯áá«á áááºážááá¯á·ááᯠáá»ááºááááá«á
- dangling áá¯á¶áá»á¬ážááẠáááºáááºáá±ááá·áº ááœááºááááºáá¬áá áºáá¯á០áááºááœáŸááºážááŒááºážáááŸááá±á¬ á¡áááºá¡áááºáá¯á¶áá»á¬ážááŒá áºááẠ- áááºážááá¯á·ááᯠáá»ááºááá¯ááºáááºá
- á¡á±á¬ááºáá« command ááŒáá·áº ááá·áºá áá áºááœáẠáá»áááºááœá²áá¬ážáá±á¬ áá¯á¶áá»á¬ážááᯠá á áºáá±ážááá¯ááºáááº-
$ 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 subcommand ááá¯áá¯á¶ážááá¯ááºáááºá
$ 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)
ááá¬áá¡ááá¯áẠáá áºá¡áá¯á¶ážááŒá¯ááŸá¯
ááœááºááááºáá¬á ááá¯ááºá áá áºá¡ááŒááºáááºááœáẠáá±áá¬ááááºážáááºážááẠá¡ááœá²áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááá¯á·ááá¯áá áºáááºážáá áºáá¯á¶á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá¡ááá®áá±ážááŸááºážáá áºáá¯áááááºáá»á¬ážááá¯ááááºážáááºážááá¯áá«áá á¡áá¯á¶ážáá»á¬ážáá²á· á¥ááá¬áá áºáá¯ááá±á¬á· databases áá«á
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 directory ááŸá áááºáá¶á ááºáá±á«áºááœáẠáááºááŸááá±áááºááŒá áºáá«áááºá áá«áá±ááá·áº ááœááºááááºáá¬áá²á· read-write á¡ááá·áºááŸá¬ áá¬ááŒá±á¬áá·áº ááá¯ááºáá¬áá²á MongoDB áá¯á¶á Dockerfile ááœááºá /data/db directory (MongoDB ááẠáááºážááá±áá¬ááᯠáá°áááºážá¡ááá¯ááºážááááºážáááºážááá·áº) volume á¡ááŒá ẠáááºááŸááºáááºá
áá±ážááœááºááŸááºáá»ááº- áá±áá¬áá¯ááºáá¯ááºáá±ážáááá·áº áá¯á¶á¡áá»á¬ážá¡ááŒá¬ážááẠááá¯áá±áá¬ááᯠááááºážáááºážáááºá¡ááœáẠááá¬ááá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá
áá»áœááºá¯ááºááá¯á·ááẠMongoDB ááŒáá·áº áá¯á¶áá±á¬ááºá áœá¬áá á¬ážááŒá®áž ááœááºááááºáá¬ááᯠáááºááá¯ááºáá±á¬á¡áá« (ááá¯á·ááá¯áẠáá»ááºáá áºááá¯ááºáááº)á á¡áá¶á¡ááá¯ážá¡áá»ááºááᯠáá»ááºáááºááá¯ááºáá«á á€áá²á·ááá¯á·áá±á¬ ááœáŸááºááŒá¬ážáá»ááºááŒáá·áº áááºážááᯠáá»áœááºá¯ááºááá¯á· ááŒááºáá¬ážá áœá¬ ááá»ááºááá»ááºáž áááºážááẠáá»áœááºá¯ááºááá¯á·á á¡ááá¯ážááẠdisk space ááᯠáááºáááºáá°ááœá¬ážáá«áááº-
$ docker volume rm $(docker volume ls -q)
áá±á¬ááºážááŒá®á ááá¯á·ááá¯áẠáá»áœááºá¯ááºááá¯á·ááŸáá·áºáááºážááŸá®ážááŒá®ážáá¬ážááŒá áºáá±á¬ prune subcommand ááá¯áá¯á¶ážááá¯ááºáááº-
$ 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:~$
image build cache á¡ááœáẠdisk ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá
Docker 18.09 ááœááºá BuildKit tool ááŒá±á¬áá·áº áá¯ááºáá¯á¶áááºáá®ážááŸá¯ áá¯ááºáááºážá ááºááẠá¡ááŒá±á¬ááºážá¡áá²á¡áá»áá¯á· ááŒá¯áá¯ááºáá²á·áááºá á€á¡áá¬ááẠáá¯ááºáááºážá ááºá á¡ááŸáááºááᯠááá¯ážá á±ááŒá®áž áá±áᬠááááºážáááºážááŸá¯ááŸáá·áº áá¯á¶ááŒá¯á¶áá±áž á á®áá¶ááá·áºááœá²ááŸá¯ááá¯á·ááᯠááá¯áá±á¬ááºážá¡á±á¬áẠáá¯ááºáá±á¬ááºáááºá á€ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá€á¡á¶á·ááœááºáááááá¬áá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááá·áºááœááºážá ááºážá á¬ážáááºááá¯ááºáá«á áá áºááºáá±áá¬ááœááºá¡áá¯á¶ážááŒá¯ááŸá¯ááá¯ááºáá¬ááŒá¿áá¬áá»á¬ážááᯠáááºážá¡á¬áž áááºááá¯á·ááá¯ááºááœááºááŒá±ááŸááºážáááºááá¯áᬠáá»áœááºá¯ááºááá¯á·á¡á¬áá¯á¶á áá¯ááºáá«áááºá
áá»áœááºá¯ááºááá¯á·ááœáẠáá¯á¶ážáááá¯ážááŸááºážáá±á¬ Node.Js application áá áºáá¯ááŸáááẠááá¯ááŒáá«á áá¯á·á
- index.js ááá¯ááºááẠáááºáá¶áááŸááá±á¬ áá±á¬ááºážááá¯ááŸá¯ááá¯ááºážá¡ááœáẠá á¬ááŒá±á¬ááºážáá áºáá¯ááŒáá·áº áá¯á¶á·ááŒááºááá·áº ááá¯ážááŸááºážáá±á¬ HTTP áá¬áá¬ááᯠá áááºáááº-
- package.json ááá¯ááºááẠHTTP áá¬áá¬ááᯠáá¯ááºáá±á¬ááºááẠexpressjs ááá¯áᬠá¡áá¯á¶ážááŒá¯ááá·áº ááŸá®ááá¯ááŸá¯ááᯠáááºááŸááºáááº-
$ 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 variable ááᯠ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
áááºážááá¯ááŸááºážáááºážáááºá á¡á±á¬ááºáá« command ááá¯á¡áá¯á¶ážááŒá¯áá«á
$ 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
á¡á¬ážáá¯á¶ážááá¯ááŸááºáž!
ááá¯á·ááŒá±á¬áá·áºá ááœááºááááºáá¬áá»á¬ážá áá¯á¶áá»á¬ážááŸáá·áº volumes áá»á¬ážááŸááááºážááá¯ááºáá¬ážáá±á¬ disk space ááá¯ááŸááºážáááºážááŒááºážá¡á¬ážáá»áœááºá¯ááºááá¯á·ááŒáá·áºááŸá¯áá²á·áááºá Prune á subcommand ááẠáááºážááá¯áá°áá®áááºá ááá¯á·áá±á¬áº áááºážááᯠ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 á¡áá¯á¶ážááŒá¯ááá·áºá ááºááœáẠdisk space ááᯠáá»áœá±áá¬ááŒááºážááŒá áºáá«áá ဠcommand ááᯠá¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ áá¯ááºáá±á¬ááºááŒááºážááẠá¡áá±á·á¡ááá áºáᯠááŒá áºáá¬ááá·áºáááºá
source: www.habr.com