Moby: ๊ณ ์•„ ์ฐจ์ด

์— ๋งŒ๋“  2016๋…„ 04์›” 20์ผ  ยท  126์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: moby/moby

_all_ ์ปจํ…Œ์ด๋„ˆ, ์ด๋ฏธ์ง€ ๋ฐ ๋ณผ๋ฅจ์„ ์ œ๊ฑฐํ•œ ํ›„์—๋„ docker๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€ ๋””์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์ด "diff"์— ๋ ˆ์ด์–ด๊ฐ€์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ์ด ๋ ˆ์ด์–ด๋Š” ์–ด๋–ค ๊ฒƒ๋„ ์ฐธ์กฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

/var/lib/docker/aufs/diff# du-summary
806628  c245c4c6d71ecdd834974e1e679506d33c4aac5f552cb4b28e727a596efc1695-removing
302312  a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
302304  957e78f9f9f4036689734df16dabccb98973e2c3de0863ef3f84de85dca8d92d
302256  8db1d610f3fbc71415f534a5d88318bbd2f3f783375813f2288d15f15846d312
288204  ac6b8ff4c0e7b91230ebf4c1caf16f06c1fdceff6111fd58f4ea50fc2dd5050b
288180  04a478c413ea80bcfa7f6560763beef991696eace2624254479e5e5dd69708c6
287804  d033ab6e4e5231dc46c6c417c680b239bb0e843024738517cbb0397128e166ca
233420  8e21143dca49e30cae7475b71b5aee9b92abe2069fbb9ab98ce9c334e3f6d4fa
212668  a631b94f7a2d5d21a96a78e9574d39cdeebbc81b51ac6c58bd48dc4045656477
205120  ae13341f8c08a925a95e5306ac039b0e0bbf000dda1a60afb3d15c838e43e349
205120  8d42279017d6095bab8d533ab0f1f7de229aa7483370ef53ead71fe5be3f1284
205116  59b3acd8e0cfd194d44313978d4b3769905cdb5204a590069c665423b10150e3
205116  040af0eee742ec9fb2dbeb32446ce44829cd72f02a2cf31283fcd067e73798ab
158024  ef0a29ff0b515c8c57fe78bcbd597243de9f7b274d9b212c774d91bd45a6c9b1
114588  061bd7e021afd4aaffa9fe6a6de491e10d8d37d9cbe7612138f58543e0985280
114576  149e8d2745f6684bc2106218711991449c452d4c7e6203e2a0f46651399162b0
114532  52b28112913abb0ed1b3267a0baa1cacd022ca6611812d0a8a428e61ec399589
114300  52475beba19687a886cba4bdb8508d5aaf051ceb52fb3a65294141ab846c8294
76668   4e6afb958b5ee6dea6d1a886d19fc9c780d4ecc4baeebfbde31f9bb97732d10d
76640   c61340c6a962ddd484512651046a676dbbc6a5d46aecc26995c49fe987bf9cdc

/var/lib/docker/aufs/diff# du -hs a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
296M    a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea

$ docker-find a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
+ docker=/var/lib/docker
+ sudo find /var/lib/docker '(' -path '/var/lib/docker/aufs/diff/*' -o -path '/var/lib/docker/aufs/mnt/*' ')' -prune -o -print
+ grep a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
/var/lib/docker/aufs/layers/a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
+ sudo find /var/lib/docker '(' -path '/var/lib/docker/aufs/diff/*' -o -path '/var/lib/docker/aufs/mnt/*' ')' -prune -o -type f -print0
+ sudo xargs -0 -P20 grep -l a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
/var/lib/docker/aufs/layers/993e4988c510ec3ab4f6d139740a059df40585576f8196817e573a9684554c5c
/var/lib/docker/aufs/layers/95e68d59a8704f2bb52cc1306ca910ddb7af8956eb7c57970fcf7d8b3d9baddb
/var/lib/docker/aufs/layers/4e6afb958b5ee6dea6d1a886d19fc9c780d4ecc4baeebfbde31f9bb97732d10d
/var/lib/docker/aufs/layers/fd895b6f56aedf09c48dba97931a34cea863a21175450c31b6ceadde03f7b3da
/var/lib/docker/aufs/layers/ac6b8ff4c0e7b91230ebf4c1caf16f06c1fdceff6111fd58f4ea50fc2dd5050b
/var/lib/docker/aufs/layers/f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579-init
/var/lib/docker/aufs/layers/d5bbef5adf2efb6f15d4f96c4bee21beb955255d1ec17baf35de66e98e6c7328
/var/lib/docker/aufs/layers/9646360df378b88eae6f1d6288439eebd9647d5b9e8a471840d4a9d6ed5d92a4
/var/lib/docker/aufs/layers/cf9fd1c4a64baa39b6d6d9dac048ad2fff3c3fe13924b07377e767eed230ba9f
/var/lib/docker/aufs/layers/f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579
/var/lib/docker/aufs/layers/23ce5a473b101d85f0e9465debe5a0f3b8a2079b99528a797b02052d06bc11d8
/var/lib/docker/image/aufs/layerdb/sha256/d1c659b8e3d0e893e95c8eedc755adcb91a1c2022e1090376b451f7206f9b1c0/cache-id

$ sudo cat /var/lib/docker/image/aufs/layerdb/sha256/d1c659b8e3d0e893e95c8eedc755adcb91a1c2022e1090376b451f7206f9b1c0/diff
sha256:b5185949ba02a6e065079660b0536672c9691fb0e0cb1fd912b2c7b29c91d625

$ docker-find sha256:b5185949ba02a6e065079660b0536672c9691fb0e0cb1fd912b2c7b29c91d625
+ docker=/var/lib/docker
+ sudo find /var/lib/docker '(' -path '/var/lib/docker/aufs/diff/*' -o -path '/var/lib/docker/aufs/mnt/*' ')' -prune -o -print
+ grep sha256:b5185949ba02a6e065079660b0536672c9691fb0e0cb1fd912b2c7b29c91d625
+ sudo find /var/lib/docker '(' -path '/var/lib/docker/aufs/diff/*' -o -path '/var/lib/docker/aufs/mnt/*' ')' -prune -o -type f -print0
+ sudo xargs -0 -P20 grep -l sha256:b5185949ba02a6e065079660b0536672c9691fb0e0cb1fd912b2c7b29c91d625
/var/lib/docker/image/aufs/layerdb/sha256/d1c659b8e3d0e893e95c8eedc755adcb91a1c2022e1090376b451f7206f9b1c0/diff
arestoragaufs kinbug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

# du -sh /var/lib/docker/aufs/diff/
1.9T    /var/lib/docker/aufs/diff/

๋ชจ๋“  126 ๋Œ“๊ธ€

# docker --version
Docker version 1.10.3, build 99b71ce

# docker info
Containers: 3
 Running: 0
 Paused: 0
 Stopped: 3
Images: 29
Server Version: 1.10.3
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 99
 Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 3.13.0-83-generic
Operating System: <unknown>
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 125.9 GiB
Name: dev34-devc
ID: VKMX:YMJ2:3NGV:5J6I:5RYM:AVBK:QPOZ:ODYE:VQ2D:AF2J:2LEM:TKTE
WARNING: No swap limit support

๋˜ํ•œ docker๊ฐ€ ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ ๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋‚˜์—ดํ•˜์ง€ ์•Š์Œ์„ ๋ณด์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.

$ docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

$ docker volume ls
DRIVER              VOLUME NAME

์ด์ƒํ•œ; ํŠนํžˆ ๋•Œ๋ฌธ์—;

Containers: 3
 Running: 0
 Paused: 0
 Stopped: 3
Images: 29

docker images / docker ps ์˜ ์ถœ๋ ฅ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์šด์˜ ์ฒด์ œ์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๊นŒ?

Operating System: <unknown>

@tonistiigi ์–ด๋–ค ์•„์ด๋””์–ด?

๊ทธ ํ›„์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ ์ผ๋ถ€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งํ•˜๋Š” ์ƒํƒœ (์ง€๊ธˆ ๊ฐ€์ง€๊ณ  ์žˆ์Œ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

$ sudo du -hs /var/lib/docker/aufs/diff/a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
296M    /var/lib/docker/aufs/diff/a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea

์šฐ๋ฆฌ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ๋œ ์ปค๋„๋กœ Ubuntu Lucid์— ์žˆ์Šต๋‹ˆ๋‹ค = /

$ uname -a
Linux dev34-devc 3.13.0-83-generic #127-Ubuntu SMP Fri Mar 11 00:25:37 UTC 2016 x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.1 LTS
Release:        10.04
Codename:       lucid

ํฅ๋ฏธ๋กœ์šด ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์„ ์žฌํ˜„ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฉ๋ฉ

ํ™•์‹คํžˆ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
ํ™œ์„ฑ Docker ํ˜ธ์ŠคํŠธ ์ค‘ ํ•˜๋‚˜์—์„œ ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚จ์€ ๋‚ด์šฉ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ญ์ƒ ๋งŽ์€ diff๊ฐ€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

```#! bash

! / bin / bash

set -eu

echo "๊ฒฝ๊ณ  :: ๋ชจ๋“  docker ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•˜๊ณ  ๋ชจ๋“  docker ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค."
์ฝ๊ธฐ -p "๊ณ„์† (y / n)?"
if [ "$ REPLY"! = "y"]; ๊ทธ๋•Œ
echo "์ค‘๋‹จ ์ค‘."
1 ๋ฒˆ ์ถœ๊ตฌ
fi

xdocker () {exec xargs -P10 -r -n1 --verbose docker "$ @"; }

-x ์„ค์ •

์šฉ๊ธฐ๋ฅผ ์ œ๊ฑฐํ•˜๋‹ค

๋„์ปค ps -q | xdocker ์ค‘์ง€
๋„์ปค ps -aq | xdocker rm

ํƒœ๊ทธ ์ œ๊ฑฐ

๋„์ปค ์ด๋ฏธ์ง€ | sed 1d | grep -v '^'| ์—ด 1 2 | sed 's / / : /'| xdocker rmi

์ด๋ฏธ์ง€ ์ œ๊ฑฐ

๋„์ปค ์ด๋ฏธ์ง€ -q | xdocker rmi
๋„์ปค ์ด๋ฏธ์ง€ -aq | xdocker rmi

๋ณผ๋ฅจ ์ œ๊ฑฐ

๋„์ปค ๋ณผ๋ฅจ ls -q | xdocker ๋ณผ๋ฅจ rm
```

์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜์žˆ๋Š” ํ•œ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์€ aufs ๋งˆ์šดํŠธ ํ•ด์ œ์— ์˜ค๋ฅ˜๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด EBUSY ์˜ค๋ฅ˜๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ์ด ์ด์ „์— ์ด๋ฏธ ์‚ญ์ œ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bukzor ๋นˆ ๊ทธ๋ž˜ํ”„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์™€์„œ ์‹คํ–‰ํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ ํ•œ ํ›„ ์™„์ „ํžˆ ์ •๋ฆฌ๋˜์ง€ ์•Š๋Š” ์ƒํƒœ๋กœ ๋งŒ๋“œ๋Š” ์žฌํ˜„

ํฅ๋ฏธ ๋กญ ๊ฒ ์ง€๋งŒ ํ•˜๋ฃจ ์ข…์ผ ์ž‘์—… ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

a800 ์œ„์˜ (์ž„์˜๋กœ ์„ ํƒ๋œ) ๋ฌธ์ œ๊ฐ€๋˜๋Š” diff์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

```#! sh
$ docker-find a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea | sudo xargs -n1 wc -l | ์ •๋ ฌ -rn

  • sudo find / nail / var / lib / docker '('-path '/ nail / var / lib / docker / aufs / diff / '-o -path '/ nail / var / lib / docker / aufs / mnt / ' ' ) '-prune -o -print
  • grep a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
  • sudo find / nail / var / lib / docker '('-path '/ nail / var / lib / docker / aufs / diff / '-o -path '/ nail / var / lib / docker / aufs / mnt / ' ' ) '-prune -o -type f -print0
  • sudo xargs -0 -P20 grep -l a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
    15 / nail / var / lib / docker / aufs / layers / f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579
    14 / nail / var / lib / docker / aufs / layers / f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579-init
    13 / nail / var / lib / docker / aufs / layers / 993e4988c510ec3ab4f6d139740a059df40585576f8196817e573a9684554c5c
    12 / nail / var / lib / docker / aufs / layers / cf9fd1c4a64baa39b6d6d9dac048ad2fff3c3fe13924b07377e767eed230ba9f
    11 / nail / var / lib / docker / aufs / layers / 4e6afb958b5ee6dea6d1a886d19fc9c780d4ecc4baeebfbde31f9bb97732d10d
    10 / nail / var / lib / docker / aufs / layers / 23ce5a473b101d85f0e9465debe5a0f3b8a2079b99528a797b02052d06bc11d8
    9 / nail / var / lib / docker / aufs / layers / 95e68d59a8704f2bb52cc1306ca910ddb7af8956eb7c57970fcf7d8b3d9baddb
    8 / nail / var / lib / docker / aufs / layers / ac6b8ff4c0e7b91230ebf4c1caf16f06c1fdceff6111fd58f4ea50fc2dd5050b
    7 / nail / var / lib / docker / aufs / layers / fd895b6f56aedf09c48dba97931a34cea863a21175450c31b6ceadde03f7b3da
    6 / nail / var / lib / docker / aufs / layers / d5bbef5adf2efb6f15d4f96c4bee21beb955255d1ec17baf35de66e98e6c7328
    5 / nail / var / lib / docker / aufs / layers / 9646360df378b88eae6f1d6288439eebd9647d5b9e8a471840d4a9d6ed5d92a4
    4 / nail / var / lib / docker / aufs / layers / a8001a0e9515cbbda89a54120a89bfd9a3d0304c8d2812401aba33d22a2358ea
    0 / nail / var / lib / docker / image / aufs / layerdb / sha256 / d1c659b8e3d0e893e95c8eedc755adcb91a1c2022e1090376b451f7206f9b1c0 / cache-id
So we see there's a chain of child layers, with `f3286009193` as the tip.

$ docker-find f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579 '$'

  • sudo find / nail / var / lib / docker '('-path '/ nail / var / lib / docker / aufs / diff / '-o -path '/ nail / var / lib / docker / aufs / mnt / ' ' ) '-prune -o -print
  • grep --color 'f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579 $'
    / nail / var / lib / docker / aufs / layers / f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579
  • sudo find / nail / var / lib / docker '('-path '/ nail / var / lib / docker / aufs / diff / '-o -path '/ nail / var / lib / docker / aufs / mnt / ' ' ) '-prune -o -type f -print0
  • sudo xargs -0 -P20 grep --color -l 'f3286009193f95ab95a16b2561331db06803ac536cea921d9aa64e1564046579 $'
    / nail / var / lib / docker / image / aufs / layerdb / mounts / eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e / mount-id
So that layer was used in mount `eb809c0321`. I don't find any references to that mount anywhere:

$ docker-find eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e

  • sudo find / nail / var / lib / docker '('-path '/ nail / var / lib / docker / aufs / diff / '-o -path '/ nail / var / lib / docker / aufs / mnt / ' ' ) '-prune -o -print
  • grep --color eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e
    / nail / var / lib / docker / image / aufs / layerdb / mounts / eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e
    / nail / var / lib / docker / image / aufs / layerdb / mounts / eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e / mount-id
    / nail / var / lib / docker / image / aufs / layerdb / mounts / eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e / init-id
    / nail / var / lib / docker / image / aufs / layerdb / mounts / eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e / parent
  • sudo find / nail / var / lib / docker '('-path '/ nail / var / lib / docker / aufs / diff / '-o -path '/ nail / var / lib / docker / aufs / mnt / ' ' ) '-prune -o -type f -print0
  • sudo xargs -0 -P20 grep -color -l eb809c0321a2501e61763333bc0dfb33ea0539c15957587f5de003ad21b8275e
    ```

๋งˆ์šดํŠธ๊ฐ€ ์‚ฌ์šฉ ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ฐพ์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋ฌธ์„œ๋Š” ๋งˆ์šดํŠธ ID๊ฐ€ ๋” ์ด์ƒ ์ปจํ…Œ์ด๋„ˆ ID์™€ ๊ฐ™์ง€ ์•Š๋‹ค๊ณ  ๋งŒ ๋งํ•˜๋Š”๋ฐ, ์ด๋Š”๋ณ„๋กœ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/

@bukzor eb809c0321 ๋Š” ์ปจํ…Œ์ด๋„ˆ ID์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ์˜ ์˜๋ฏธ๋Š” aufs id (๊ท€ํ•˜์˜ ๊ฒฝ์šฐ f3286009193f )๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ID๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

/ cc @dmcgowan ๋„

@tonistiigi ์ข‹์•„์š”.

๊ทธ๋ ‡๋‹ค๋ฉด ๋ถ„๋ช…ํžˆ ์‚ฐ์€ ์ปจํ…Œ์ด๋„ˆ๋ณด๋‹ค ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ์ˆ˜๋ช…์ฃผ๊ธฐ์˜ ์–ด๋Š ์‹œ์ ์—์„œ ๋งˆ์šดํŠธ๊ฐ€ ์ •๋ฆฌ๋ฉ๋‹ˆ๊นŒ?
์‹คํ–‰ / ์ค‘์ง€ ๋œ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ์ž„์‹œ ์“ฐ๊ธฐ ๊ฐ€๋Šฅ auf์ž…๋‹ˆ๊นŒ?

@bukzor (rw) ๋งˆ์šดํŠธ๋Š” ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ์‹œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ํ”„๋กœ์„ธ์Šค ์ค‘์ง€์‹œ ๋งˆ์šดํŠธ ํ•ด์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Diff ํด๋”๋Š” ๊ฐœ๋ณ„ ๋ ˆ์ด์–ด ์ฝ˜ํ…์ธ ๊ฐ€ ์ €์žฅ๋˜๋Š” ์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ๋ ˆ์ด์–ด๊ฐ€ ๋งˆ์šดํŠธ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@bukzor aufs ID์™€ ์ปจํ…Œ์ด๋„ˆ ID ์‚ฌ์ด์˜ ๋งํฌ๋Š” image/aufs/layerdb/mounts/<container-id>/mount-id ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. aufs ID๋ฅผ ์•Œ๊ธฐ ๋งŒํ•ด๋„ ์ปจํ…Œ์ด๋„ˆ ID๋ฅผ ์ฐพ๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ image/aufs/layerdb ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ grepํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์œผ๋ฉด ์ •๋ฆฌ๊ฐ€ ๊นจ๋—ํ•˜๊ฒŒ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Docker ๋ฐ๋ชฌ ์„œ๋ฒ„์—์„œ ๋งค์ผ CI๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. / var / lib / docker / aufs / diff๋Š” ๋””์Šคํฌ ์šฉ๋Ÿ‰์„ ์ƒ๋‹นํžˆ ๋งŽ์ด ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋˜๋Š” ๊ด€๋ จ ์Šค๋ ˆ๋“œ (์œ„์˜ @bukzor ์˜ bash ์Šคํฌ๋ฆฝํŠธ ํฌํ•จ)์—์„œ ์ œ์•ˆ ๋œ ํ•ฉ๋ฆฌ์ ์ธ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•œ ํ›„์—๋„ 2gb ์—์„œ aufs/diff ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์ ˆํ•œ ์ˆ˜์ •์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ๋™์‹œ์— ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๋‚จ์€ ๋งˆ์šดํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? (ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—†๋‹ค๋ฉด ๋งˆ์šดํŠธ๊ฐ€ ์—†์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๊ตฐ์š”?)

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŽ์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ…Œ์ŠคํŠธ ํ•œ ๋‹ค์Œ ์ปค๋ฐ‹ / ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋‚ด / var / lib / docker / aufs ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ˜„์žฌ 7.9G ๋ฌด๊ฒ์Šต๋‹ˆ๋‹ค. ์ด ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ €์žฅ ๊ณต๊ฐ„์ด ์ œํ•œ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๋งˆ์šดํŠธ ์ง€์ ์œผ๋กœ ์ด๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. :(

# du -sh /var/lib/docker/aufs/diff/
1.9T    /var/lib/docker/aufs/diff/

@mcallaway aufs/diff ๋ชจ๋“  ๊ฒƒ์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” fs ์“ฐ๊ธฐ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹คํ–‰ ์ƒํƒœ์— ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ์™€ ๊ด€๋ จ์ด์—†๊ณ  ์˜ค๋ž˜๋œ ์ œ๊ฑฐ ๋œ ์ปจํ…Œ์ด๋„ˆ์™€ ๊ด€๋ จ๋œ ๋งŽ์€ aufs diff ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์˜ต์…˜์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ํ–‰๋™์—๋Š” ์ด์œ ๊ฐ€ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

k8s 1.3.5์™€ docker 1.12๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc spotify/docker-gc ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. dind (๋„์ปค์˜ ๋„์ปค)์™€ ํ•จ๊ป˜ Gitlab CI๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

IMHO ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ์ด๋ฏธ์ง€๊ฐ€ ๋™์ผํ•œ ํƒœ๊ทธ ๋‚ด์—์„œ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ๊ฐ€์ ธ ์™”์„ ๋•Œ ๊ด€๋ จ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋˜๊ณ  spotify/docker-gc ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด ์ด์ „ ์ปจํ…Œ์ด๋„ˆ์™€ ์ด๋ฏธ์ง€๊ฐ€ GCed๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@kayrus๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค. docker๋Š” "ํƒœ๊ทธ๊ฐ€์—†๋Š”"์ด๋ฏธ์ง€๋„ _removed_๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ž๋™์œผ๋กœ ๊ฐ€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ์—ฌ์ „ํžˆ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ์ด๋ฏธ์ง€์—์„œ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ณ„์† ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (ID๋กœ ์ฐธ์กฐ). docker rmi $(docker images -qa -f dangling=true) ์‚ฌ์šฉํ•˜์—ฌ "๋งค๋‹ฌ๋ ค์žˆ๋Š”"์ด๋ฏธ์ง€๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ docker 1.13์€ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ช…๋ น (https://github.com/docker/docker/pull/26108 ์ฐธ์กฐ)์„ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ ๋“ฑ์„๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@thaJeztah ๋Š” /var/lib/docker/aufs/diff/ ์‹ค์ œ๋กœ "ํƒœ๊ทธ๊ฐ€์—†๋Š”"์ด๋ฏธ์ง€๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๊นŒ?

@kayrus ์˜ˆ ๊ทธ๋“ค์€ ์ด๋ฏธ์ง€์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค (ํƒœ๊ทธ ๋ฐ ํƒœ๊ทธ ์—†์Œ)

์œ ์‚ฌํ•œ ๋ฌธ์ œ, ์ปจํ…Œ์ด๋„ˆ / ์ด๋ฏธ์ง€ / ๋ณผ๋ฅจ ์—†์Œ, ~ 13Gb์˜ diff ๋ฐœ์ƒ

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 1030
 Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor
Kernel Version: 3.13.0-32-generic
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.861 GiB
Name: gitrunner
ID: GSAW:6X5Z:SHHU:NZIM:O76D:P5OE:7OZG:UFGQ:BOAJ:HJFM:5G6W:5APP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8
$ docker volume ls
DRIVER              VOLUME NAME
$ docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$
$ df -h
Filesystem                                 Size  Used Avail Use% Mounted on
...
/dev/mapper/gitrunner--docker-lib--docker   18G   15G  2.6G  85% /var/lib/docker
/var/lib/docker# sudo du -sm aufs/*
13782   aufs/diff
5       aufs/layers
5       aufs/mnt
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: xfs
 Dirs: 1122

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 1.13์ด ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ช…๋ น์„๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๊ทธ ๋™์•ˆ Docker๋ฅผ ์ฃฝ์ด์ง€ ์•Š๊ณ ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€์ด ์‹œ์ ์—์„œ ์ƒ๋Œ€์ ์œผ๋กœ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์•„์ง ๊ณต์‹์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ์—†์Šต๋‹ˆ๊นŒ?

(Docker Community) Slack์—์„œ์ด ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ถˆ๋Ÿฌ ์™”์Šต๋‹ˆ๋‹ค. ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์Šคํฌ๋ฆฝํŠธ / cmd ๋ชฉ๋ก์„ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์†”๋ฃจ์…˜์œผ๋กœ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ์‚ฌ์ด์— ๋„์›€์ด๋˜์—ˆ์ง€๋งŒ (์ฝ๊ธฐ : ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Œ-๊ณต๊ฐ„์ด ์—ฌ์ „ํžˆ ๊ฐ€๋“ ์ฐจ๊ณ  ์žˆ์Œ), ์ด๊ฒƒ์ด ์ด์ƒ์ ์ธ ์žฅ๊ธฐ ์ˆ˜์ •์ด ์•„๋‹ˆ๋ผ๋Š” ๋ฐ ๋ชจ๋‘ ๋™์˜ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@jadametz 1.13์—๋Š” docker system prune ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ์™ธ์—๋„ Docker๊ฐ€ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค (์ œ์•ˆ์— ๊ฐœ๋ฐฉ). ์ด๋ฏธ์ง€๋Š” ์ž์ฒด์ ์œผ๋กœ ์‹œ์Šคํ…œ์— ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋Œ์–ด ์˜ค๊ธฐ, ๋นŒ๋“œ ๋“ฑ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

์‹ค์ œ ๊ณ ์•„ ๋ ˆ์ด์–ด (์‹œ์Šคํ…œ์—์„œ ์ฐธ์กฐํ•˜๋Š” ์ด๋ฏธ์ง€ ์—†์Œ)์™€ ๊ด€๋ จํ•˜์—ฌ ๋ณ„๋„๋กœ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!

docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 1.12.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 2501 Dirperm1 Supported: false Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host null overlay Swarm: inactive Runtimes: runc Default Runtime: runc Security Options: apparmor Kernel Version: 3.13.0-96-generic Operating System: Ubuntu 14.04.2 LTS OSType: linux Architecture: x86_64 CPUs: 8 Total Memory: 14.69 GiB Name: ip-172-31-45-4 ID: R5WV:BXU5:AV6T:GZUK:SAEA:6E74:PRSO:NQOH:EPMQ:W6UT:5DU4:LE64 Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ WARNING: No swap limit support Insecure Registries: 127.0.0.0/8

์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” ๋ณผ๋ฅจ์ด ์—†์Šต๋‹ˆ๋‹ค. aufs / diff์—์„œ 42Gb

์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ง€์šฐ๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค! ์ด ์Šค๋ ˆ๋“œ์˜ ๋ชจ๋“  ๊ฒƒ์„ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ.

@adamdry ์ „์šฉ ํƒ€์‚ฌ ์Šคํฌ๋ฆฝํŠธ : https://github.com/docker/docker/issues/22207#issuecomment -252560212

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @kayrus ๋‚˜๋Š” ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ–ˆ๊ณ  ๊ทธ๊ฒƒ์€ ๋‚˜์˜ ์ด ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์•ฝ๊ฐ„ ์ฆ๊ฐ€ ์‹œ์ผฐ๊ณ  aufs / diff ๋””๋ ‰ํ† ๋ฆฌ์— ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€๋‹ค.

์‹คํ–‰๋˜์ง€ ์•Š์€ docker system prune ๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œ๊ฑฐ ํ•  ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ docker rmi $(docker images -qa -f dangling=true) ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ๋‚˜๋Š” ์ด์ œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ, ์ด๋ฏธ์ง€, ๋ณผ๋ฅจ ๋ฐ ์˜ค๋ž˜๋œ auf๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

### FYI I am a Docker noob so I don't know if this causes any underlying issues but it does work for me - use at your own risk ###

์—ฌ๊ธฐ์—์„œ ์–ป์€ ๋งŽ์€ ์˜๊ฐ : http://stackoverflow.com/questions/30984569/error-error-creating-aufs-mount-to-when-building-dockerfile

docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -q) && docker rmi -f $(docker images -a -q)
service docker stop
rm -rf /var/lib/docker/aufs
rm -rf /var/lib/docker/image/aufs
rm -f /var/lib/docker/linkgraph.db
service docker start

@adamdry ์ œ๊ฑฐ์‹œ ์˜ค๋ฅ˜๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ rm / rmi๋ฅผ ์ˆ˜ํ–‰ ํ•  ๋•Œ -f ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ
์ €๋Š” ํ˜„์žฌ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. -f ๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ์ˆจ๊ธฐ๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์™„์ „ํžˆ ๋ณด์ด์ง€ ์•Š๋Š” ๋‚จ์€ ์ƒํƒœ๊ฐ€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋กœ.

๋‚˜๋Š” ๋˜ํ•œ ์™„์ „ํžˆ ์ƒˆ๋กญ๊ณ  ๋†€๋ผ์šด ์„ค์น˜์—์„œ ์ด๊ฒƒ์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

root<strong i="6">@builder</strong>:/var/lib/docker# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.4
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 63
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: overlay host null bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options:
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 3.625 GiB
Name: builder
ID: 2WXZ:BT74:G2FH:W7XD:VVXM:74YS:EA3A:ZQUK:LPID:WYKF:HDWC:UKMJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
Insecure Registries:
 127.0.0.0/8
root<strong i="7">@builder</strong>:/var/lib/docker# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root<strong i="8">@builder</strong>:/var/lib/docker# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
root<strong i="9">@builder</strong>:/var/lib/docker# du -hd2
4.0K    ./swarm
6.0M    ./image/aufs
6.0M    ./image
4.0K    ./trust
28K ./volumes
4.0K    ./containers
276K    ./aufs/layers
292K    ./aufs/mnt
1.5G    ./aufs/diff <-------------------------
1.5G    ./aufs
4.0K    ./tmp
72K ./network/files
76K ./network
1.5G    .
root<strong i="10">@builder</strong>:/var/lib/docker# 

@robhaswell ์ƒˆ๋กœ์šด ์„ค์น˜์ด๋ฏ€๋กœ ์ด๊ฒƒ์„ ์‹œ๋„ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? https://github.com/docker/docker/issues/22207#issuecomment -266784433

@adamdry ๋‚ด ์ž‘์—…์„ ์ฐจ๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ /var/lib/docker/aufs ๋ฅผ) ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ์ง€์‹œ๊ฐ€ ๋ฌด์—‡์„ ์„ฑ์ทจํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๊นŒ? ๋‚˜์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒŒ๋˜๋ฉด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ณ  ์•ˆ๋‚ด๋ฅผ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชฉ์ ์ด ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ์ด๋ฏธ ๋‹ฌ์„ฑ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@robhaswell ์˜ˆ, ๋””์Šคํฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ํ›„์† ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ์ค‘์— ๋ ˆ์ด์–ด ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค (๋ณต์‚ฌ ํ•  Blob๋„ ํฌํ•จ) ์ค‘์— ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค‘์ง€๋˜๋ฉด / var / lib / docker / aufs / diff /์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค. ๋งค๋‹ฌ๋ฆฐ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ฒญ์†Œ๋„ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Docker ์‹œ์Šคํ…œ ์ •๋ฆฌ์˜ ์ผ๋ถ€๋กœ ํฌํ•จ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ํด๋” ๋‚ด์˜ Blob ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๊ณต๊ฐ„์„ ํ™•๋ณด ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Docker ๋ฒ„์ „ : 1.13.0-rc1

๋นŒ๋“œ ์ค‘์— ๋ ˆ์ด์–ด ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค (๋ณต์‚ฌ ํ•  Blob๋„ ํฌํ•จ) ์ค‘์— ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค‘์ง€๋˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ์˜ ์›์ธ ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋นŒ๋“œ๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

docker pull ๋™์•ˆ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ๊ด€์ฐฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์šด๋กœ๋“œ (/ var / lib / docker / tmp /์— ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•จ)๋ผ๊ณ  ๋งํ•  ๋•Œ ์ค‘๋‹จ๋˜๋ฉด ํ•ด๋‹น ํด๋”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์ถ”์ถœ ์ค‘์ด๋ผ๊ณ  ๋งํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด (tmp์—์„œ / var / lib / docker / aufs / diff /๋กœ ๋ ˆ์ด์–ด๋ฅผ ์ถ”์ถœํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค), tmp ๋ฐ diff blob ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ๋นŒ๋“œ ๊ณผ์ •์—์„œ

  1. "๋นŒ๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ๋„์ปค ๋ฐ๋ชฌ์œผ๋กœ ์ „์†ก"(๋‚ด ๊ฒฝ์šฐ์—๋Š” / var / lib / docker / tmp /์—์„œ blob ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌ) ํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•˜๋ฉด ์˜๊ตฌ์ ์œผ๋กœ ๋‚จ์•„ ์žˆ์œผ๋ฉฐ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ์–ด๋–ค ๋ช…๋ น์œผ๋กœ๋„ ์ •๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
  2. ๋Œ€๊ทœ๋ชจ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์ •๊ณผ ๊ฐ™์ด Blob ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ ˆ์ด์–ด๊ฐ€ ๋นŒ๋“œ๋˜๋Š” ๋™์•ˆ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ด๋ฏธ์ง€์—์„œ ๊ณ„์† ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์ด๋ฏธ tmp ํด๋”์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” 1 ๊ฐœ์˜ ๋ ˆ์ด์–ด blob ๋ฐ์ดํ„ฐ ๋งŒ ์ „์ฒด ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ docker stop ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•˜๋ฉด ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    ใ…. ๋งˆ์šดํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด tmp ๋ฐ diff ํด๋”์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค.
    ๋น„. ๋ฐ์ดํ„ฐ๊ฐ€ diff ํด๋”์— ๋ณต์‚ฌ๋˜๋ฉด tmp ํด๋”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  diff ํด๋”์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‚จ๊ฒจ๋‘๊ณ  ํด๋”๋ฅผ ๋งˆ์šดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ค‘์ง€ํ•˜๋ ค๋ฉด ์ œ์–ด๊ฐ€ ํ•„์š”ํ•œ ์ž๋™ํ™” ๋œ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๊ตฌ์„ฑ์ด ๋‚ฎ์€ ์‹œ์Šคํ…œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ปค๋„์— ์˜ํ•ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๊ฐ€ 2 ๊ฐœ์˜ ๋ ˆ์ด์–ด๋กœ ๋นŒ๋“œ๋˜๊ณ  1 ๊ฐœ์˜ ๋ ˆ์ด์–ด๊ฐ€ ๋นŒ๋“œ๋˜๊ณ  ๋‘ ๋ฒˆ์งธ๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด Docker ์‹œ์Šคํ…œ ์ •๋ฆฌ๋Š” ์ค‘๋‹จ๋˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค‘์ง€ ๋œ ๋ ˆ์ด์–ด์˜ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ์˜ ๊ฒฝ์šฐ ์ด์ „ ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฒญ๊ตฌ ๋œ ์ด ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๋ฐ˜์˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. aufs ํŒŒ์ผ ์‹œ์Šคํ…œ์ด์žˆ๋Š” AWS, ubuntu 14.04, x86_64 ๋น„ํŠธ ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. docker 1.13.0 rc3 ๋ฐ docker 1.12๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ docker prune ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
๋‚ด๊ฐ€ ์ž˜๋ชป ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

/var/lib/docker/tmp ํŒŒ์ผ์ด ์ •๋ฆฌ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/docker/docker/issues/29486

Docker ์‹œ์Šคํ…œ ์ •๋ฆฌ๋Š” ์ค‘๋‹จ๋˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค‘์ง€ ๋œ ๊ณ„์ธต์˜ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ์˜ ๊ฒฝ์šฐ ์ด์ „ ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ ์ƒํ™ฉ์„ ์žฌํ˜„ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ๊ฐ„๋‹จํ•œ ์‚ฌ๋ก€๋กœ๋Š” ๊ทธ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์—†์—ˆ๋‹ค.

๋น„์–ด์žˆ๋Š” /var/lib/docker ์ƒˆ๋กœ ์„ค์น˜๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค์Œ์„์œ„ํ•œ ํฐ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ ๋ฐ Dockerfile;

mkdir repro && cd repro
fallocate -l 300M bigfile
cat > Dockerfile <<EOF
FROM scratch
COPY ./bigfile /
COPY ./bigfile /again/
COPY ./bigfile /and-again/
EOF

docker build ์‹œ์ž‘ํ•˜๊ณ  ๋นŒ๋“œํ•˜๋Š” ๋™์•ˆ ์ทจ์†Œํ•˜์ง€๋งŒ ๋นŒ๋“œ ํ›„์—๋Š” _after_
์ปจํ…์ŠคํŠธ๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

docker build -t stopme .
Sending build context to Docker daemon 314.6 MB
Step 1/4 : FROM scratch
 --->
Step 2/4 : COPY ./bigfile /
 ---> 28eb6d7b0920
Removing intermediate container 98876b1673bf
Step 3/4 : COPY ./bigfile /again/
^C

/var/lib/docker/aufs/ ๋‚ด์šฉ ํ™•์ธ

du -h /var/lib/docker/aufs/
301M    /var/lib/docker/aufs/diff/9127644c356579741348f7f11f50c50c9a40e0120682782dab55614189e82917
301M    /var/lib/docker/aufs/diff/81fd6b2c0cf9a28026cf8982331016a6cd62b7df5a3cf99182e7e09fe0d2f084/again
301M    /var/lib/docker/aufs/diff/81fd6b2c0cf9a28026cf8982331016a6cd62b7df5a3cf99182e7e09fe0d2f084
601M    /var/lib/docker/aufs/diff
8.0K    /var/lib/docker/aufs/layers
4.0K    /var/lib/docker/aufs/mnt/9127644c356579741348f7f11f50c50c9a40e0120682782dab55614189e82917
4.0K    /var/lib/docker/aufs/mnt/81fd6b2c0cf9a28026cf8982331016a6cd62b7df5a3cf99182e7e09fe0d2f084
4.0K    /var/lib/docker/aufs/mnt/b6ffb1d5ece015ed4d3cf847cdc50121c70dc1311e42a8f76ae8e35fa5250ad3-init
16K /var/lib/docker/aufs/mnt
601M    /var/lib/docker/aufs/

docker system prune ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

docker system prune -a
WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all networks not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:253b2968c0b9daaa81a58f2a04e4bc37f1dbf958e565a42094b92e3a02c7b115
deleted: sha256:cad1de5fd349865ae10bfaa820bea3a9a9f000482571a987c8b2b69d7aa1c997
deleted: sha256:28eb6d7b09201d58c8a0e2b861712701cf522f4844cf80e61b4aa4478118c5ab
deleted: sha256:3cda5a28d6953622d6a363bfaa3b6dbda57b789e745c90e039d9fc8a729740db

Total reclaimed space: 629.1 MB

/var/lib/docker/aufs/ ๋‚ด์šฉ ํ™•์ธ

du -h /var/lib/docker/aufs/
4.0K    /var/lib/docker/aufs/diff
4.0K    /var/lib/docker/aufs/layers
4.0K    /var/lib/docker/aufs/mnt/b6ffb1d5ece015ed4d3cf847cdc50121c70dc1311e42a8f76ae8e35fa5250ad3-init
8.0K    /var/lib/docker/aufs/mnt
20K /var/lib/docker/aufs/

-init ๋งˆ์šดํŠธ๊ฐ€ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
(๋น„์–ด์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ )

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ dockerfile์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ (๋‹ค๋ฅธ ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ)
๊ธฐ์Šค๋กœ๋ถ€ํ„ฐ
COPY [ "./bigfile", "randomNoFile1", /]
COPY [ "./bigfile", "randomNoFile2", /]
EOF

์ฐจ์ด๊ฐ€ ๋‚˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ๋ฌธ์ œ๋Š” ๋นˆ init ํด๋”์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์–ผ๋ฃฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์›”์š”์ผ์— ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ 5GB ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ dev urandom์—์„œ ๋ฐ”์ดํŠธ๋ฅผ ์ฝ์–ด ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ๋™์ผํ•œ ํŒŒ์ผ์ด ๋‘ ๋ฒˆ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๋กœ๋ถ€ํ„ฐ ๋‘ ๋ฒˆ์งธ ๋ ˆ์ด์–ด๋ฅผ ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๋‘ ๊ฐœ์˜ ๋ณ„๋„ ๋ ˆ์ด์–ด์ž…๋‹ˆ๊นŒ? ์ œ ๊ฒฝ์šฐ์—๋Š” ํ•ญ์ƒ 2 ๊ฐœ์˜ ๋ณ„๋„ ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
๋ฌธ์ œ์— ๋Œ€ํ•œ ๋น ๋ฅธ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

@ monikakatiyar16 ADD ๋ฐ RUN ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ๋นŒ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ทจ์†Œํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์‚ญ์ œ ํ›„ aufs/diff ์•„๋ฌด๊ฒƒ๋„ ์œ ์ถœ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ADD/COPY ์ž‘์—… ์ค‘์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜์–ด์„œ๋Š” ์•ˆ๋˜๋ฏ€๋กœ ์ค‘์ง€ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” ์žฌ์ƒ๊ธฐ๋ฅผ ๋ชจ์•„ ์ฃผ์‹œ๋ฉด ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•˜๊ณ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋ง์— ์—ฌํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›”์š”์ผ์— ์—ฌ๊ธฐ์—์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์žฌํ˜„ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ
๋‚˜๋Š” ๋‹น์‹ ์ด ์˜ณ๋‹ค๊ณ  ๋Š๋‚๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ™œ์„ฑ ๋ฐ ์‹คํ–‰์ค‘์ธ ๊ฒƒ์œผ๋กœ ๋‚˜์—ด๋œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์ฃฝ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” Docker ์‹œ์Šคํ…œ ์ •๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด๋Š” Ctrl + C๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๊ณ„์† ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์ด์œ ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์–ผ๋ฃฉ์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Ctrl + C๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•˜๋ฉด ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€๋งŒ docker-untar ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‚ด์•„๋‚จ์•„ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ์ž‘์—…์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค. (์ฐธ๊ณ  : / var / lib / docker๋Š” AWS์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์— EBS ๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด / home / lib / docker์— ์†Œํ”„ํŠธ ๋งํฌ๋ฉ๋‹ˆ๋‹ค.)

root 12700 10781 7 11:43 ? 00:00:04 docker-untar /home/lib/docker/aufs/mnt/d446d4f8a7dbae162e7578af0d33ac38a63b4892905aa86a8d131c1e75e2828c

ํฐ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ–ˆ๋˜ ์Šคํฌ๋ฆฝํŠธ (gc_maxpush_pull.sh)๋ฅผ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Ctrl + C (DockerBuild_WOProcessKill)๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์˜ ๋™์ž‘์„ ์ฒจ๋ถ€ํ•˜๊ณ  Ctrl + C๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒ (DockerBuild_WithProcessKill)

๋ช…๋ น ์‚ฌ์šฉ-

๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ƒ์„ฑ : ./gc_maxpush_pull.sh 1 5gblayer 0 512 1

์ด๋ฏธ์ง€ ๋นŒ๋“œ : ./gc_maxpush_pull.sh 1 5gblayer 1 512 1

DockerBuild.zip

๋ณต์ œ ๋‹จ๊ณ„ :

  1. 5GB์˜ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ
  2. ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋นŒ๋“œ ์ปจํ…์ŠคํŠธ ๋ณด๋‚ด๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  ์‹ค์ œ๋กœ blob์„ ๋ณต์‚ฌ ํ•œ ํ›„์— ๋งŒ โ€‹โ€‹์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.
  3. ์ž ์‹œ ํ›„ ์ด๋ฏธ์ง€ ๋นŒ๋“œ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ๋„์ปค ์ด๋ฏธ์ง€์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : ๋‚ด๊ฐ€ ์ฒจ๋ถ€ ํ•œ ๊ฒฝ์šฐ 1-DockerBuild_WOProcessKill).
  4. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  blob ๋ฐ์ดํ„ฐ๊ฐ€ / diff์— ๋‚จ์Šต๋‹ˆ๋‹ค (ํŒŒ์ผ์— ์ฒจ๋ถ€ ๋œ๋Œ€๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ‘์ž๊ธฐ ์ข…๋ฃŒํ•ด์•ผ ํ•จ-DockerBuild_WithProcessKill).

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด ์˜ณ๋‹ค๋ฉด, ์ด๊ฒƒ์€ ๋„์ปค ํ”„๋ฃฌ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์–ด๋–ป๊ฒŒ ๋“  ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋„์ปค ๋นŒ๋“œ๋ฅผ ์ฃฝ์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(๋„์ปค ํ’€์—์„œ ์ฒ˜๋ฆฌ ๋œ๋Œ€๋กœ) ๋ณต์‚ฌ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋นŒ๋“œ ์ด๋ฏธ์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•˜๊ฑฐ๋‚˜ ์ค‘์ง€ํ•˜๋Š” ์šฐ์•„ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด์ „์—๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ docker-untar์˜ ๊ธฐ๋Šฅ๊ณผ / mnt ๋ฐ / diff ํด๋” ๋ชจ๋‘์— ๋งˆ์šดํŠธํ•˜๊ณ  ๋‚˜์ค‘์— / mnt ํด๋”๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

Docker ๋ฒ„์ „ 1.12.5, AWS์—์„œ 7392c3b ๋นŒ๋“œ๋กœ์ด๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„์ปค ์ •๋ณด
์ปจํ…Œ์ด๋„ˆ : 2
๋‹ฌ๋ฆฌ๊ธฐ : 0
์ผ์‹œ ์ค‘์ง€๋จ : 0
์ค‘์ง€๋จ : 2
์ด๋ฏธ์ง€ : 0
์„œ๋ฒ„ ๋ฒ„์ „ : 1.12.5
์Šคํ† ๋ฆฌ์ง€ ๋“œ๋ผ์ด๋ฒ„ : aufs
๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ : / home / lib / docker / aufs
๋ฐฑ์—… ํŒŒ์ผ ์‹œ์Šคํ…œ : extfs
Dirs : 4
Dirperm1 ์ง€์› : false
๋กœ๊น… ๋“œ๋ผ์ด๋ฒ„ : json-file
Cgroup ๋“œ๋ผ์ด๋ฒ„ : cgroupfs
ํ”Œ๋Ÿฌ๊ทธ์ธ :
๋ณผ๋ฅจ : ๋กœ์ปฌ
๋„คํŠธ์›Œํฌ : ์˜ค๋ฒ„๋ ˆ์ด ๋ธŒ๋ฆฌ์ง€ null ํ˜ธ์ŠคํŠธ
Swarm : ๋น„ํ™œ์„ฑ
๋Ÿฐํƒ€์ž„ : runc
๊ธฐ๋ณธ ๋Ÿฐํƒ€์ž„ : runc
๋ณด์•ˆ ์˜ต์…˜ : ์˜๋ฅ˜
์ปค๋„ ๋ฒ„์ „ : 3.13.0-105-generic
์šด์˜ ์ฒด์ œ : Ubuntu 14.04.4 LTS
OSType : ๋ฆฌ๋ˆ…์Šค
์•„ํ‚คํ…์ฒ˜ : x86_64
CPU : 2
์ด ๋ฉ”๋ชจ๋ฆฌ : 3.859GiB
์ด๋ฆ„ : master
ID : 2 NQU : D2C5 : 5 WPL : IIDR : P6FO : OAG7 : GHW6 : ZJMQ : VDHI : B5CI : XFZJ : ZSZM
Docker ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ : / home / lib / docker
๋””๋ฒ„๊ทธ ๋ชจ๋“œ (ํด๋ผ์ด์–ธํŠธ) : false
๋””๋ฒ„๊ทธ ๋ชจ๋“œ (์„œ๋ฒ„) : false
๋ ˆ์ง€์ŠคํŠธ๋ฆฌ : https://index.docker.io/v1/
๊ฒฝ๊ณ  : ์Šค์™‘ ์ œํ•œ ์ง€์› ์—†์Œ
์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ :
127.0.0.0/8

@ monikakatiyar16 ๋นŒ๋“œ ์ค‘์— untar ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ข…๋ฃŒ ํ•˜๋ฉด ๋นŒ๋“œ ์ถœ๋ ฅ์— Error processing tar file(signal: killed): ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ docker ps -a ์— ๋‚จ๊ฒจ ๋‘๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋™์ž‘์ด๋ฉฐ ๋ชจ๋“  ๋นŒ๋“œ ์˜ค๋ฅ˜์—์„œ ๋™์ผํ•œ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉฐ ๋นŒ๋“œ ์‹คํŒจ๋ฅผ ์œ ๋ฐœ ํ•œ ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉฐ ๊ทธ๋ ‡๊ฒŒํ•˜๋ฉด /var/lib/docker/aufs ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋„ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

@tonistiigi ๋„ค ๋งž์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ์™€ ๊ด€๋ จ๋œ ๋ณผ๋ฅจ์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  docker-untar ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒ ํ•œ ํ›„ ๋ชจ๋“  ๊ฒƒ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Docker ์‹œ์Šคํ…œ ์ •๋ฆฌ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ณผ๋ฅจ์„ ๋‚จ๊ธด ์‹ค์ œ ๋ฌธ์ œ๋Š” docker-untar ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜์ง€ ์•Š๊ณ  ๋ณผ๋ฅจ๊ณผ ํ•จ๊ป˜ docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

docker rm -v -f $(docker ps -a -q)
Error response from daemon: Driver aufs failed to remove root filesystem 97931bf059a0ec219efd3f762dbb173cf9372761ff95746358c08e2b61f7ce79: rename /home/lib/docker/aufs/diff/359d27c5b608c9dda1170d1e34e5d6c5d90aa2e94826257f210b1442317fad70 /home/lib/docker/aufs/diff/359d27c5b608c9dda1170d1e34e5d6c5d90aa2e94826257f210b1442317fad70-removing: device or resource busy

๋ฐ๋ชฌ ๋กœ๊ทธ :

Error removing mounted layer 78fb899aab981557bc2ee48e9738ff4c2fcf2d10a1984a62a77eefe980c68d4a: rename /home/lib/docker/aufs/diff/d2605125ef072de79dc948f678aa94dd6dde562f51a4c0bd08a210d5b2eba5ec /home/lib/docker/aufs/diff/d2605125ef072de79dc948f678aa94dd6dde562f51a4c0bd08a210d5b2eba5ec-removing: device or resource busy ERRO[0956] Handler for DELETE /v1.25/containers/78fb899aab98 returned error: Driver aufs failed to remove root filesystem 78fb899aab981557bc2ee48e9738ff4c2fcf2d10a1984a62a77eefe980c68d4a: rename /home/lib/docker/aufs/diff/d2605125ef072de79dc948f678aa94dd6dde562f51a4c0bd08a210d5b2eba5ec /home/lib/docker/aufs/diff/d2605125ef072de79dc948f678aa94dd6dde562f51a4c0bd08a210d5b2eba5ec-removing: device or resource busy ERRO[1028] Error unmounting container 78fb899aab981557bc2ee48e9738ff4c2fcf2d10a1984a62a77eefe980c68d4a: no such file or directory

Docker ๋นŒ๋“œ๋ฅผ ์ค‘๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ ๋”ฐ๋ผ์•ผ ํ•  ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Interrupt docker build > Kill docker untar process > remove container and volume : docker rm -v -f $(docker ps -a -q)

docker v1.13.0-rc4 ๊ฒฝ์šฐ Interrupt docker build > Kill docker untar process > docker system prune -a ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ •๋ฆฌ ๋ฌธ์ œ๋Š” ์—†์ง€๋งŒ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” docker-untar ํ”„๋กœ์„ธ์Šค๊ฐ€ docker-build ํ”„๋กœ์„ธ์Šค์™€ ํ•จ๊ป˜ ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Docker-untar ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•จ๊ป˜ ์ค‘์ง€ํ•˜๋Š” ๋„์ปค ๋นŒ๋“œ์˜ ์šฐ์•„ํ•œ ์ธํ„ฐ๋ŸฝํŠธ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ / ์—…๋ฐ์ดํŠธ / ๋กœ๊ทธํ•ฉ๋‹ˆ๋‹ค.

(๋„์ปค v1.12.5 ๋ฐ v1.13.0-rc4๋กœ ํ™•์ธ)

์—…๋ฐ์ดํŠธ : Docker ๋ฐ๋ชฌ์— ๋นŒ๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ๋™์•ˆ docker-untar๋ฅผ ์ฃฝ์ผ ๋•Œ build : Error response from daemon: Error processing tar file(signal: terminated) ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ๋ ˆ์ด์–ด ๋ณต์‚ฌ ์ค‘์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋‚˜์—๊ฒŒ)

์ธ๋‚ด์‹ฌ์„ ๊ฐ–๊ณ  ์‹œ๊ฐ„์„ ๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

/var/lib/docker/aufs ๋„์ปค ์Šค์›œ ๋ชจ๋“œ ์ž‘์—…์ž์˜ ํฌ๊ธฐ๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋–ผ ๊ด€๋ฆฌ์ž์— ์˜ํ•ด ์ž์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฉฐ ์—ฌ๊ธฐ ์ €๊ธฐ์—์„œ ์ผ๋ถ€ ์œ ์ง€ ๊ด€๋ฆฌ ๋ช…๋ น์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ˆ˜๋™ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ์—์„œ docker exec ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์›์ธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅธ ์ž‘์—…์ž๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ „์ฒด ๋…ธ๋“œ๋ฅผ --availability=drain ๋กœ ์„ค์ • ํ•œ ๋‹ค์Œ ๋ช‡ ๊ฐœ์˜ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ubuntu@ip-172-31-18-156:~$ docker --version
Docker version 1.12.3, build 6b644ec

์ด๊ฒƒ์€ ์˜ค๋žซ๋™์•ˆ ์šฐ๋ฆฌ CI ์„œ๋ฒ„๋ฅผ ๊ฐ•ํƒ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@orf ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ ๋ฐ ์ด๋ฏธ์ง€ ์ œ๊ฑฐ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ Docker 1.13 ์ •๋ฆฌ ๋ช…๋ น์ด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ผ๋ถ€ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ์ทจ์†Œ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋„๋‹ฌ ํ•  ์ˆ˜์—†๋Š” ํด๋”๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ์€ ์ข‹์€ ์˜ค๋ž˜๋œ rm ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด์ง€๋งŒ ์ด๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

/ var / lib / docker / aufs / diff์˜ ํŒŒ์ผ์ด 30G์˜ / dev / sda1 ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด 100 % ๊ณต๊ฐ„์„ ์ฑ„ ์›๋‹ˆ๋‹ค.

root @ Ubuntu : / var / lib / docker / aufs / diff # df -h

๋งˆ์šดํŠธ ๋œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์‚ฌ์šฉ๋ฅ  (%)์— ์‚ฌ์šฉํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ ํฌ๊ธฐ
udev 14G 0 14G 0 % / dev
tmpfs 2.8G 273M 2.5G 10 % / ์‹คํ–‰
/ dev / sda1 29G 29G 0100 % /
tmpfs 14G 0 14G 0 % / dev / shm
tmpfs 5.0M 0 5.0M 0 % / run / lock
tmpfs 14G 0 14G 0 % / sys / fs / cgroup
/ dev / sdb1 197G 60M 187G 1 % / mnt
tmpfs 2.8G 0 2.8G 0 % / run / user / 1000

du -h -d 1 / var / lib / docker / aufs / diff | grep '[0-9] G>'
์‡ผ

4.1G / var / lib / docker / aufs / diff / a0cde42cbea362bbb2a73ffbf30059bcce7ef0256d1d7e186264f915d15
14G / var / lib / docker / aufs / diff / 59aee33d8a607b5315ce103cd99f17b4dfdec73c9a2f3bb2afc7d02bfae
20G / var / lib / docker / aufs / diff

๋˜ํ•œ ๋„์ปค ์‹œ์Šคํ…œ ์ •๋ฆฌ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๊ฐ€ ์ฝ”๋“œ์—์„œ ์ˆ˜์ •๋˜๊ธฐ ์ „์— diff์—์„œ ์ดˆ๋Œ€ํ˜• ํŒŒ์ผ์˜ ์ง€์†์ ์ธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์€ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, ๋ฐฉ๋ฒ•์€ ์ด๋ฏธ ์ฃผ์–ด์กŒ์ง€๋งŒ ์—ฌ๊ธฐ์— ๋‚ด๊ฐ€ ์ง์žฅ์—์„œ ์—ฌ๊ธฐ์— ๋„ฃ์€ ๋ชจ๋“  ๊ฒƒ์„ ํŒŒ๊ดดํ•˜๋Š” ์ข…๋ง์˜ ์Šค ๋‹ˆํŽซ์ด ์žˆ์Šต๋‹ˆ๋‹ค (๋ณผ๋ฅจ์— ๋Œ€ํ•œ ๋กœ์ปฌ ํด๋” ์ œ์™ธ). bashrc ๋˜๋Š” ๋‹ค๋ฅธ bash ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋„ฃ์œผ๋ ค๋ฉด.

```
alias docker-full-cleanup = 'func_full-cleanup-docker'

func_full-cleanup-docker () {

echo "๊ฒฝ๊ณ  : ๋ณผ๋ฅจ, ์ปจํ…Œ์ด๋„ˆ ๋ฐ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ๋ชจ๋“  ๊ฒƒ์„ ๋„์ปค์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐํžˆ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? [y / N]"
์ฝ๊ธฐ ์„ ํƒ

if [( "$ choice"== "y") -o ( "$ choice"== "Y")]
๊ทธ๋•Œ
sudo echo "> sudo ๊ถŒํ•œ ํ™•์ธ [OK]"
sizea = sudo du -sh /var/lib/docker/aufs

echo "Stopping all running containers"
containers=`docker ps -a -q`
if [ -n "$containers" ]
then
  docker stop $containers
fi

echo "Removing all docker images and containers"
docker system prune -f

echo "Stopping Docker daemon"
sudo service docker stop

echo "Removing all leftovers in /var/lib/docker (bug #22207)"
sudo rm -rf /var/lib/docker/aufs
sudo rm -rf /var/lib/docker/image/aufs
sudo rm -f /var/lib/docker/linkgraph.db

echo "Starting Docker daemon"
sudo service docker start

sizeb=`sudo du -sh /var/lib/docker/aufs`
echo "Size before full cleanup:"
echo "        $sizea"
echo "Size after full cleanup:"
echo "        $sizeb"

fi
}```

์ง€๊ธˆ์€ rm -rf ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ diff ํด๋”์—์„œ ํŒŒ์ผ์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. diff ํด๋”๊ฐ€ ์ „์ฒด dis ๊ณต๊ฐ„์„ ๋‹ค์‹œ ์ฐจ์ง€ํ•˜๋ฉด ์•„๋งˆ๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์กฐ์‚ฌํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋Œ€์‹  ์ฝ”๋“œ์—์„œ ์ˆ˜์ •๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋„์ปค 1.10.2์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. kubernetes๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด ๋„์ปค ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

Containers: 7
 Running: 0
 Paused: 0
 Stopped: 7
Images: 4
Server Version: 1.10.2
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 50
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.954 GiB
Name: ubuntu-k8s-03
ID: NT23:5Y7J:N2UM:NA2W:2FHE:FNAS:56HF:WFFF:N2FR:O4T4:WAHC:I3PO
Debug mode (server): true
 File Descriptors: 10
 Goroutines: 23
 System Time: 2017-02-14T15:25:00.740998058+09:00
 EventsListeners: 0
 Init SHA1: 3e247d0d32543488f6e70fbb7c806203f3841d1b
 Init Path: /usr/lib/docker/dockerinit
 Docker Root Dir: /var/lib/docker
WARNING: No swap limit support

/var/lib/docker/image/aufs/imagedb ์•„๋ž˜์˜ ๋ ˆ์ด์–ด ํŒŒ์ผ์„ ๋ถ„์„ํ•˜์—ฌ /var/lib/docker/aufs/diff ๋ฐ /var/lib/docker/aufs/mnt/ ์•„๋ž˜์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  diff ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”์ ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ œ๊ฐ€ ์‚ฌ์šฉํ•œ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.

https://gist.github.com/justlaputa/a50908d4c935f39c39811aa5fa9fba33

ํ•˜์ง€๋งŒ ๋„์ปค ๋ฐ๋ชฌ์„ ์ค‘์ง€ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์ปค์˜ ์ƒํƒœ๊ฐ€ ์ผ๊ด€๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/var/log/upstart/docker.log :

DEBU[0277] Cleaning up old shm/mqueue mounts: start.
DEBU[0277] Cleaning up old shm/mqueue mounts: done.
DEBU[0277] Clean shutdown succeeded
Waiting for /var/run/docker.sock
DEBU[0000] docker group found. gid: 999
DEBU[0000] Server created for HTTP on unix (/var/run/docker.sock)
DEBU[0000] Using default logging driver json-file
INFO[0000] [graphdriver] using prior storage driver "aufs"
DEBU[0000] Using graph driver aufs
INFO[0000] Graph migration to content-addressability took 0.00 seconds
DEBU[0000] Option DefaultDriver: bridge
DEBU[0000] Option DefaultNetwork: bridge
INFO[0000] Firewalld running: false
DEBU[0000] /sbin/iptables, [--wait -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL -j DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t nat -D PREROUTING]
DEBU[0000] /sbin/iptables, [--wait -t nat -D OUTPUT]
DEBU[0000] /sbin/iptables, [--wait -t nat -F DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t nat -X DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t filter -F DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t filter -X DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION]
DEBU[0000] /sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION]
DEBU[0000] /sbin/iptables, [--wait -t nat -n -L DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t nat -N DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t filter -n -L DOCKER]
DEBU[0000] /sbin/iptables, [--wait -t filter -n -L DOCKER-ISOLATION]
DEBU[0000] /sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION -j RETURN]
DEBU[0000] /sbin/iptables, [--wait -I DOCKER-ISOLATION -j RETURN]
/var/run/docker.sock is up
DEBU[0000] Registering ipam driver: "default"
DEBU[0000] releasing IPv4 pools from network bridge (dcfcc71060f02440ae53da5ee0f083ca51c33a290565f1741f451754ae6b4257)
DEBU[0000] ReleaseAddress(LocalDefault/10.254.69.0/24, 10.254.69.1)
DEBU[0000] ReleasePool(LocalDefault/10.254.69.0/24)
DEBU[0000] Allocating IPv4 pools for network bridge (159d0a404ff6564b4fcfe633f0c8c123c0c0606d28ec3b110272650c5fc1bcb6)
DEBU[0000] RequestPool(LocalDefault, 10.254.69.1/24, , map[], false)
DEBU[0000] RequestAddress(LocalDefault/10.254.69.0/24, 10.254.69.1, map[RequestAddressType:com.docker.network.gateway])
DEBU[0000] /sbin/iptables, [--wait -t nat -C POSTROUTING -s 10.254.69.0/24 ! -o docker0 -j MASQUERADE]
DEBU[0000] /sbin/iptables, [--wait -t nat -C DOCKER -i docker0 -j RETURN]
DEBU[0000] /sbin/iptables, [--wait -t nat -I DOCKER -i docker0 -j RETURN]
DEBU[0000] /sbin/iptables, [--wait -D FORWARD -i docker0 -o docker0 -j DROP]
DEBU[0000] /sbin/iptables, [--wait -t filter -C FORWARD -i docker0 -o docker0 -j ACCEPT]
DEBU[0000] /sbin/iptables, [--wait -t filter -C FORWARD -i docker0 ! -o docker0 -j ACCEPT]
DEBU[0000] /sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT]
DEBU[0001] /sbin/iptables, [--wait -t nat -C PREROUTING -m addrtype --dst-type LOCAL -j DOCKER]
DEBU[0001] /sbin/iptables, [--wait -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER]
DEBU[0001] /sbin/iptables, [--wait -t nat -C OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8]
DEBU[0001] /sbin/iptables, [--wait -t nat -A OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8]
DEBU[0001] /sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -j DOCKER]
DEBU[0001] /sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -j DOCKER]
DEBU[0001] /sbin/iptables, [--wait -t filter -C FORWARD -j DOCKER-ISOLATION]
DEBU[0001] /sbin/iptables, [--wait -D FORWARD -j DOCKER-ISOLATION]
DEBU[0001] /sbin/iptables, [--wait -I FORWARD -j DOCKER-ISOLATION]
WARN[0001] Your kernel does not support swap memory limit.
DEBU[0001] Cleaning up old shm/mqueue mounts: start.
DEBU[0001] Cleaning up old shm/mqueue mounts: done.
DEBU[0001] Loaded container 0790b33ec8e5345ac944d560263b8e13cb75f80dd82cd25753c7320bbcb2747c
DEBU[0001] Loaded container 0e36a6c9319e6b7ca4e5b5408e99d77d51b1f4e825248c039ba0260e628c483d
DEBU[0001] Loaded container 135fb2e8cad26d531435dcd19d454e41cf7aece289ddc7374b4c2a984f8b094a
DEBU[0001] Loaded container 2c28de46788ce96026ac8e61e99c145ec55517543e078a781e8ce6c8cddec973
DEBU[0001] Loaded container 35eb075b5815e621378eb8a7ff5ad8652819ec851eaa4f7baedb1383dfa51a57
DEBU[0001] Loaded container 6be37a301a8f52040adf811041c140408224b12599aa55155f8243066d2b0b69
DEBU[0001] Loaded container d98ac7f052fef31761b82ab6c717760428ad5734df4de038d80124ad5b5e8614
DEBU[0001] Starting container 2c28de46788ce96026ac8e61e99c145ec55517543e078a781e8ce6c8cddec973
ERRO[0001] Couldn't run auplink before unmount: exit status 22
ERRO[0001] error locating sandbox id d4c538661db2edc23c79d7dddcf5c7a8886c9477737888a5fc2641bc5e66da8b: sandbox d4c538661db2edc23c79d7dddcf5c7a8886c9477737888a5fc2641bc5e66da8b not found
WARN[0001] failed to cleanup ipc mounts:
failed to umount /var/lib/docker/containers/2c28de46788ce96026ac8e61e99c145ec55517543e078a781e8ce6c8cddec973/shm: invalid argument
ERRO[0001] Failed to start container 2c28de46788ce96026ac8e61e99c145ec55517543e078a781e8ce6c8cddec973: error creating aufs mount to /var/lib/docker/aufs/mnt/187b8026621da2add42330c9393a474fcd9af2e4567596d61bcd7a40c85f71da: invalid argument
INFO[0001] Daemon has completed initialization
INFO[0001] Docker daemon                                 commit=c3959b1 execdriver=native-0.2 graphdriver=aufs version=1.10.2
DEBU[0001] Registering routers
DEBU[0001] Registering HEAD, /containers/{name:.*}/archive

docker run ๊นŒ์ง€ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ•˜๋ฉด ๋‹ค์Œ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

docker: Error response from daemon: error creating aufs mount to /var/lib/docker/aufs/mnt/f9609c0229baa2cdc6bc07c36970ef4f192431c1b1976766b3ea23d72c355df3-init: invalid argument.
See 'docker run --help'.

๋ฐ๋ชฌ ๋กœ๊ทธ์— ๋‹ค์Œ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

DEBU[0173] Calling POST /v1.22/containers/create
DEBU[0173] POST /v1.22/containers/create
DEBU[0173] form data: {"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/hyperkube","kubelet","--api-servers=http://localhost:8080","--v=2","--address=0.0.0.0","--enable-server","--hostname-override=172.16.210.87","--config=/etc/kubernetes/manifests-multi","--cluster-dns=10.253.0.10","--cluster-domain=cluster.local","--allow_privileged=true"],"Domainname":"","Entrypoint":null,"Env":[],"HostConfig":{"Binds":["/sys:/sys:ro","/dev:/dev","/var/lib/docker/:/var/lib/docker:rw","/var/lib/kubelet/:/var/lib/kubelet:rw","/var/run:/var/run:rw","/etc/kubernetes/manifests-multi:/etc/kubernetes/manifests-multi:ro","/:/rootfs:ro"],"BlkioDeviceReadBps":null,"BlkioDeviceReadIOps":null,"BlkioDeviceWriteBps":null,"BlkioDeviceWriteIOps":null,"BlkioWeight":0,"BlkioWeightDevice":null,"CapAdd":null,"CapDrop":null,"CgroupParent":"","ConsoleSize":[0,0],"ContainerIDFile":"","CpuPeriod":0,"CpuQuota":0,"CpuShares":0,"CpusetCpus":"","CpusetMems":"","Devices":[],"Dns":[],"DnsOptions":[],"DnsSearch":[],"ExtraHosts":null,"GroupAdd":null,"IpcMode":"","Isolation":"","KernelMemory":0,"Links":null,"LogConfig":{"Config":{},"Type":""},"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":-1,"NetworkMode":"host","OomKillDisable":false,"OomScoreAdj":0,"PidMode":"host","PidsLimit":0,"PortBindings":{},"Privileged":true,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":"always"},"SecurityOpt":null,"ShmSize":0,"UTSMode":"","Ulimits":null,"VolumeDriver":"","VolumesFrom":null},"Hostname":"","Image":"gcr.io/google_containers/hyperkube:v1.1.8","Labels":{},"NetworkingConfig":{"EndpointsConfig":{}},"OnBuild":null,"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","Tty":false,"User":"","Volumes":{},"WorkingDir":""}
ERRO[0173] Couldn't run auplink before unmount: exit status 22
ERRO[0173] Clean up Error! Cannot destroy container 482957f3e4e92a0ba56d4787449daa5a8708f3b77efe0c603605f35d02057566: nosuchcontainer: No such container: 482957f3e4e92a0ba56d4787449daa5a8708f3b77efe0c603605f35d02057566
ERRO[0173] Handler for POST /v1.22/containers/create returned error: error creating aufs mount to /var/lib/docker/aufs/mnt/f9609c0229baa2cdc6bc07c36970ef4f192431c1b1976766b3ea23d72c355df3-init: invalid argument

๋‚ด ์ ‘๊ทผ ๋ฐฉ์‹์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ์—ฌ๋ถ€๋ฅผ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ํ•ด๋‹น ํด๋”๋ฅผ ์‚ญ์ œ ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚˜๋Š” ์ ์–ด๋„ ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋„์ด dirs๋ฅผ ์œ ์ถœํ•˜์ง€ ์•Š๋„๋กํ•˜๊ธฐ ์œ„ํ•ด # 31012๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  busy ์˜ค๋ฅ˜์˜ ๋‹ค์–‘ํ•œ ์›์ธ๋„ ์‚ดํŽด ๋ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๊ธฐ์–ตํ•  ์ˆ˜์žˆ๋Š” ํ•œ ๋‚˜๋ฅผ ๋ฌผ๊ณ  ์žˆ์—ˆ๋‹ค. ๋ฉฐ์น  ์ „์— overlay2 ๋“œ๋ผ์ด๋ฒ„๋กœ ์ „ํ™˜ํ•˜๊ณ  aufs ํด๋”๋ฅผ ์™„์ „ํžˆ ๋ˆ„ํฌํ–ˆ์„ ๋•Œ ์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค ( docker system df ๋Š” 1.5Gigs, df ๋Š” 15Gigs) .

์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฝ 1T์˜ diff๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์ปค ๋ฐ๋ชฌ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ ์•ฝ 700GB๋ฅผ ๋ณต๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ๋ชฌ์„ ์ค‘์ง€ํ•˜๋ฉด ์ด๊ฒƒ๋“ค์ด ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ / ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ฑฐํ•ด๋„ ์ด๋Ÿฌํ•œ ์ฐจ์ด์ ์€ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ๋ชฌ์„ ์ค‘์ง€ํ•ด๋„ ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์€ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์—ฌ์ „ํžˆ diff dirs๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ์ผ๋ถ€ ์œ ์ถœ ๋œ rw ๋ ˆ์ด์–ด๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. /var/lib/docker/aufs/diff ์€ 28G๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ๋ฃจํŠธ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ 100 %๋กœ ์ „ํ™˜ํ•˜์—ฌ GitLab ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” GitLab CI์— ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์œ„์—์„œ ์ œ์•ˆํ•œ @sogetimaitral ๋ช…๋ น ์ค‘ ์ผ๋ถ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„์‹œ ํŒŒ์ผ์„ ์‚ญ์ œํ–ˆ์œผ๋ฉฐ ๋ฐฑ์—… ๋ฐ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  CI๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ ์ปค๋ฐ‹์„ ๋ณด๋ƒˆ๋Š”๋ฐ ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋‹ค์‹œ ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹คํžˆ ๊ฑฑ์ •ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฑฐ๋ž˜๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๋„์ปค ๋ฒ„๊ทธ์ž…๋‹ˆ๊นŒ?

  1. ์˜ˆ, ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (์ œ๊ฑฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  --force on rm์ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฌด์‹œ ํ•จ)
  2. ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ fs์— ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ์ง€ ๋ง๊ณ  ๋Œ€์‹  ๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค (ํ๊ธฐ ๋ณผ๋ฅจ ํฌํ•จ). diff dir์ด ํฌ๋ฉด ์ปจํ…Œ์ด๋„ˆ fs์— ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๋ก๋˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ œ๊ฑฐ ํ•  ๋•Œ "--force"๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค (๋˜๋Š” ์ ์–ด๋„ "์ฃฝ์€"์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŽ์ด ์žˆ๊ณ  ์ •๋ฆฌ ๋ฐฉ๋ฒ• / ๋ฌด์—‡์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.).

๋‚˜๋Š” ์ˆ˜๋™์œผ๋กœ ๋„์ปค๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” gitlab-ci-multi-runner๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด GitLab์˜ ๋์—์„œ ๋ฒ„๊ทธ์ผ๊นŒ์š”?

(๊ธฐ๋ณธ์ ์œผ๋กœ) ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ•์ œ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/dbdbce2848530df299836768c8ea01e209a2fe40/executors/docker/executor_docker.go#L878. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋ฌด์‹œ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ๋ชปํ•˜์—ฌ ๊ณ ์•„ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๊ทธ๋Ÿฌ๋ฉด ์ด๊ฒƒ์ด gitlab-ci-multi-runner ๋ฒ„๊ทธ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ํ•ด์„์ž…๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์–ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ถ”์ธกํ•˜๋Š” ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค. "๊ฐ•์ œ"์ œ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •๋ฆฌ (์˜ˆ : ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„์ง ์ค‘์ง€๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋“ฑ)๋ฅผ๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์œผ๋ฉฐ ๋™์‹œ์— ( @ cpuguy83์—์„œ ์–ธ๊ธ‰ ํ•œ "๋ฒ„๊ทธ"๋ผ๊ณ  ํ•จ) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ์ˆจ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. docker๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ œ๊ฑฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค (๋‹ค์–‘ํ•œ ์ด์œ ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Œ). "force"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์—†๋Š” ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฃผ๋ณ€์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋Ÿฌ๋‚˜ "์ฃฝ์Œ"์œผ๋กœ ํ‘œ์‹œ๋จ).

gitlab ์‹คํ–‰๊ธฐ๊ฐ€ ๊ฐ•์ œ ์ œ๊ฑฐ์—†์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ณ€๊ฒฝ (๋˜๋Š” ๊ตฌ์„ฑ ๊ฐ€๋Šฅ)ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋“œ๋ก ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ œ๊ฑฐ๋˜๋Š”์ง€ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ฐ•์ œ๋กœ ์ œ๊ฑฐํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Docker์˜ Docker ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? docker-compose๋กœ Drone์„ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ„์†ํ•ด์„œ ๊ฐœ๋ฐœ์ž๋ฅผ ๋ฐ˜๋ณตํ•˜๊ธฐ ์œ„ํ•ด gitlab-ci-multi-runner ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/2304

์†”์งํžˆ ์šฐ๋ฆฌ๋Š” Spotify์˜ docker gc๋ฅผ ๋“œ๋ก  CI๋กœ ์‹คํ–‰ํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

El El mar, 3 ์›”. 2017 ๋…„ 12 ์›” 28 ์ผ ์˜คํ›„ 3์‹œ 38 ๋ถ„, Geoffrey Fairchild <
[email protected]> escribiรณ :

๊ณ„์†ํ•ด์„œ gitlab-ci-multi-runner ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ์ž๋ฅผ ๋‹ค์Œ์—์„œ ๋ฃจํ”„ :
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/2304

โ€”
๋Œ“๊ธ€์„ ๋‹ฌ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/docker/docker/issues/22207#issuecomment-289926298 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AC6Wz197zkjWWOlq1-JOibiQP-xJym9Eks5rqYvegaJpZM4IMGt2
.

@sedouard ์ด ํŒ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! spotify์—์„œ ๋งค์‹œ๊ฐ„ docker-gc๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ๋นŒ๋“œ / ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ (Gitlab CI Docker ํ†ตํ•ฉ ์•„๋‹˜) ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Gitlab CI (๋„์ปค์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š์Œ)์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ํ˜•ํƒœ์˜ ๊ฐ•์ œ ์ œ๊ฑฐ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ docker run --rm ... ๋ฐ docker rmi image:tag

ํŽธ์ง‘ : ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, ์‹ค์ œ๋กœ ์›๋ž˜ ๋ฌธ์ œ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ spotify/docker-gc ๋ฅผ ์‹คํ–‰ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ _ ์•„๋‹™๋‹ˆ๋‹ค _.


์•„๋ž˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์ด๋ฏธ์ง€ 0 ๊ฐœ, ์ปจํ…Œ์ด๋„ˆ 0 ๊ฐœ, ์•„๋ฌด๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค!
docker system info ๋™์˜ํ•˜์ง€๋งŒ aufs ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•ด Dirs: 38 ๋ฅผ ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์ˆ˜์ƒํ•˜๋‹ค! /var/lib/docker/aufs/diff/ ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์‹ค์ œ๋กœ 41 ๊ฐœ ์ด์ƒ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— 1.7GB์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋‚ด ๊ฐœ์ธ ์ƒ์ž์ด๊ณ  ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„์—์„œ๋Š” 19GB์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ฒญ์†Œํ•ฉ๋‹ˆ๊นŒ? spotify/docker-gc ์‚ฌ์šฉํ•ด๋„ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

philippe@pv-desktop:~$ docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

philippe@pv-desktop:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

philippe@pv-desktop:~$ docker system info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.03.1-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 38
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-72-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 31.34 GiB
Name: pv-desktop
ID: 2U5D:CRHS:RUQK:YSJX:ZTRS:HYMV:HO6Q:FDKE:R6PK:HMUN:2EOI:RUWO
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: silex
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

philippe@pv-desktop:~$ ls -alh /var/lib/docker/aufs/diff/
total 276K
drwxr-xr-x 40 root root 116K Apr 13 15:32 .
drwxr-xr-x  5 root root 4.0K Sep 18  2015 ..
drwxr-xr-x  4 root root 4.0K Jun 17  2016 005d00efb0ba949d627ad439aec8c268b5d55759f6e92e51d7828c12e3817147
drwxr-xr-x  8 root root 4.0K May  2  2016 0968e52874bbfaa938ffc869cef1c5b78e2d4f7a670e19ef47f713868b9bfbdf
drwxr-xr-x  4 root root 4.0K Jun 20  2016 188233e6dcc37e2308e69807ffd19aca3e61be367daae921f2bcb15a1d6237d0
drwxr-xr-x  6 root root 4.0K Jun 20  2016 188233e6dcc37e2308e69807ffd19aca3e61be367daae921f2bcb15a1d6237d0-init
drwxr-xr-x 21 root root 4.0K Apr  8  2016 250ecb97108a6d8a8c41f9d2eb61389a228c95f980575e95ee61f9e8629d5180
drwxr-xr-x  2 root root 4.0K Dec 22  2015 291f16f99d9b0bc05100e463dbc007ef816e0cf17b85d20cf51da5eb2b866810
drwxr-xr-x  2 root root 4.0K May  2  2016 3054baaa0b4a7b52da2d25170e9ce4865967f899bdf6d444b571e57be141b712
drwxr-xr-x  2 root root 4.0K Feb  5  2016 369aca82a5c05d17006b9dca3bf92d1de7d39d7cd908ed665ef181649525464e
drwxr-xr-x  3 root root 4.0K Jun 17  2016 3835a1d1dfe755d9d1ada6933a0ea7a4943caf8f3d96eb3d79c8de7ce25954d2
(...strip)

philippe@pv-desktop:~$ du -hs /var/lib/docker/aufs/diff/
1.7G    /var/lib/docker/aufs/diff/

philippe@pv-desktop:~$ docker system prune -a
WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all networks not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B

์•ˆ์ „ํ•˜๊ฒŒ rm -r /var/lib/docker/aufs ํ•˜๊ณ  docker deamon์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

spotify/docker-gc ํ•ด๋„ ๊ณ ์•„๊ฐ€ ์ •๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : @CVTJNII ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Docker ๋ฐ๋ชฌ์„ ์ค‘์ง€ํ•˜๊ณ  / var / lib / docker๋ฅผ ๋ชจ๋‘ ์ง€์šฐ๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. / var / lib / docker / aufs๋ฅผ ์ง€์šฐ๋ฉด ์–ด์จŒ๋“  ์ด๋ฏธ์ง€๊ฐ€ ์†์‹ค๋˜๋ฏ€๋กœ ๊นจ๋—ํ•œ / var / lib / docker๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ง€๊ธˆ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ช‡ ๋‹ฌ ๋™์•ˆ ์‚ฌ์šฉํ•ด์˜จ "์†”๋ฃจ์…˜"์ž…๋‹ˆ๋‹ค.

17.06๋ถ€ํ„ฐ๋Š” ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ๋ถ„๋ฆฌ ๋œ diff๊ฐ€ ์—†์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์‹  Dead ์ƒํƒœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ‘œ์‹œ๋˜๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฑฐ ์ค‘์— ๋ณต๊ตฌ ํ•  ์ˆ˜์—†๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ด€๋ฆฌ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ œ๊ฑฐ๋Š” ์ข€ ๋” ๊ฐ•๋ ฅํ•˜๋ฉฐ ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด๋‚˜ ๋งˆ์šดํŠธ ํ•ด์ œ ์‹คํŒจ๋กœ ์ธํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

@ cpuguy83 : ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฌด์—‡์„ํ•ด์•ผํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@Silex ์›์ธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐœ์ƒํ•œ ๊ฒƒ์€ ์ผ๋ถ€ ๋งˆ์šดํŠธ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ˆ„์ถœ๋˜์–ด device or resource busy ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. cadvisor์™€ ๊ฐ™์€ ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ „์ฒด ๋„์ปค ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ cadvisor ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธํ•˜๋ผ๋Š” ์ง€์นจ์— ๋”ฐ๋ผ ๊ฑฐ์˜ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ ํ•œ ๋‹ค์Œ dead ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ์ปค๋„ (3.15+)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์•ฝ๊ฐ„์˜ ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker ๋ฒ„์ „ 17.06.0-ce, ๋นŒ๋“œ 02c1d87

๋ชจ๋“  ์ด๋ฏธ์ง€, ๋ณผ๋ฅจ, ๋„คํŠธ์›Œํฌ ๋ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์‹œ๋„ํ•œ ๋ช…๋ น :

docker system prune -af
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc

์—ฌ์ „ํžˆ ๋‚จ์•„์žˆ๋Š” ํŒŒ์ผ :

root<strong i="11">@Dark</strong>:/var/lib/docker/aufs# ls -la *
diff:
total 92
drwx------ 12 root root 45056 Jul 28 17:28 .
drwx------  5 root root  4096 Jul  9 00:18 ..
drwxr-xr-x  4 root root  4096 Jul 10 01:35 78f8ecad2e94fedfb1ced425885fd80bb8721f9fd70715de2ce373986785b882
drwxr-xr-x  6 root root  4096 Jul 10 01:35 78f8ecad2e94fedfb1ced425885fd80bb8721f9fd70715de2ce373986785b882-init
drwxr-xr-x  5 root root  4096 Jul 10 01:35 7caa9688638ea9669bac451b155b65b121e99fcea8d675688f0c76678ba85ccd
drwxr-xr-x  6 root root  4096 Jul 10 01:35 7caa9688638ea9669bac451b155b65b121e99fcea8d675688f0c76678ba85ccd-init
drwxr-xr-x  4 root root  4096 Jul 12 14:45 b7b7770aae461af083e72e5e3232a62a90f934c83e38830d06365108e302e7ac
drwxr-xr-x  6 root root  4096 Jul 12 14:45 b7b7770aae461af083e72e5e3232a62a90f934c83e38830d06365108e302e7ac-init
drwxr-xr-x  4 root root  4096 Jul 10 01:35 d5752b27b341e17e730d3f4acbec04b10e41dc01ce6f9f98ff38208c0647f2e4
drwxr-xr-x  6 root root  4096 Jul 10 01:35 d5752b27b341e17e730d3f4acbec04b10e41dc01ce6f9f98ff38208c0647f2e4-init
drwxr-xr-x  6 root root  4096 Jul 10 01:35 e412d3c6f0f5f85e23d7a396d47c459f5d74378b474b27106ab9b82ea829dbfb
drwxr-xr-x  6 root root  4096 Jul 10 01:35 e412d3c6f0f5f85e23d7a396d47c459f5d74378b474b27106ab9b82ea829dbfb-init

layers:
total 52
drwx------ 2 root root 45056 Jul 28 17:28 .
drwx------ 5 root root  4096 Jul  9 00:18 ..
-rw-r--r-- 1 root root     0 Jul 10 01:35 78f8ecad2e94fedfb1ced425885fd80bb8721f9fd70715de2ce373986785b882
-rw-r--r-- 1 root root     0 Jul 10 01:35 78f8ecad2e94fedfb1ced425885fd80bb8721f9fd70715de2ce373986785b882-init
-rw-r--r-- 1 root root     0 Jul 10 01:35 7caa9688638ea9669bac451b155b65b121e99fcea8d675688f0c76678ba85ccd
-rw-r--r-- 1 root root     0 Jul 10 01:35 7caa9688638ea9669bac451b155b65b121e99fcea8d675688f0c76678ba85ccd-init
-rw-r--r-- 1 root root     0 Jul 12 14:45 b7b7770aae461af083e72e5e3232a62a90f934c83e38830d06365108e302e7ac
-rw-r--r-- 1 root root     0 Jul 12 14:45 b7b7770aae461af083e72e5e3232a62a90f934c83e38830d06365108e302e7ac-init
-rw-r--r-- 1 root root     0 Jul 10 01:35 d5752b27b341e17e730d3f4acbec04b10e41dc01ce6f9f98ff38208c0647f2e4
-rw-r--r-- 1 root root     0 Jul 10 01:35 d5752b27b341e17e730d3f4acbec04b10e41dc01ce6f9f98ff38208c0647f2e4-init
-rw-r--r-- 1 root root     0 Jul 10 01:35 e412d3c6f0f5f85e23d7a396d47c459f5d74378b474b27106ab9b82ea829dbfb
-rw-r--r-- 1 root root     0 Jul 10 01:35 e412d3c6f0f5f85e23d7a396d47c459f5d74378b474b27106ab9b82ea829dbfb-init

mnt:
total 92
drwx------ 12 root root 45056 Jul 28 17:28 .
drwx------  5 root root  4096 Jul  9 00:18 ..
drwxr-xr-x  2 root root  4096 Jul 10 01:35 78f8ecad2e94fedfb1ced425885fd80bb8721f9fd70715de2ce373986785b882
drwxr-xr-x  2 root root  4096 Jul 10 01:35 78f8ecad2e94fedfb1ced425885fd80bb8721f9fd70715de2ce373986785b882-init
drwxr-xr-x  2 root root  4096 Jul 10 01:35 7caa9688638ea9669bac451b155b65b121e99fcea8d675688f0c76678ba85ccd
drwxr-xr-x  2 root root  4096 Jul 10 01:35 7caa9688638ea9669bac451b155b65b121e99fcea8d675688f0c76678ba85ccd-init
drwxr-xr-x  2 root root  4096 Jul 12 14:45 b7b7770aae461af083e72e5e3232a62a90f934c83e38830d06365108e302e7ac
drwxr-xr-x  2 root root  4096 Jul 12 14:45 b7b7770aae461af083e72e5e3232a62a90f934c83e38830d06365108e302e7ac-init
drwxr-xr-x  2 root root  4096 Jul 10 01:35 d5752b27b341e17e730d3f4acbec04b10e41dc01ce6f9f98ff38208c0647f2e4
drwxr-xr-x  2 root root  4096 Jul 10 01:35 d5752b27b341e17e730d3f4acbec04b10e41dc01ce6f9f98ff38208c0647f2e4-init
drwxr-xr-x  2 root root  4096 Jul 10 01:35 e412d3c6f0f5f85e23d7a396d47c459f5d74378b474b27106ab9b82ea829dbfb
drwxr-xr-x  2 root root  4096 Jul 10 01:35 e412d3c6f0f5f85e23d7a396d47c459f5d74378b474b27106ab9b82ea829dbfb-init
# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              0                   0                   0B                  0B
Containers          0                   0                   0B                  0B
Local Volumes       0                   0                   0B                  0B

์–ด๋–ป๊ฒŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@ haos616 ๋จผ์ € ์‹คํ–‰์ค‘์ธ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ ํ•œ ๋‹ค์Œ docker system prune -af ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ํŠธ๋ฆญ์„ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์˜ docker์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฒ„์ „์—์„œ ํ•ด๋‹น diff๊ฐ€ ์ƒ์„ฑ / ๋‚จ์€ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Docker 17.06์€ ๋ ˆ์ด์–ด ์ œ๊ฑฐ์— ์‹คํŒจํ•œ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (--force ์‚ฌ์šฉ์‹œ). ์ด์ „ ๋ฒ„์ „์€ ๊ณ ์•„ ๋ ˆ์ด์–ด๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ julian-pani ์ฒ˜์Œ์—๋Š” ๊ทธ๋ ‡๊ฒŒํ–ˆ์ง€๋งŒ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              0                   0                   0B                  0B
Containers          0                   0                   0B                  0B
Local Volumes       0                   0                   0B                  0B

@thaJeztah ์•„๋‹ˆ์š”. ํ•œ๋‘ ๋‹ฌ ์ „์— Docker๋ฅผ ์ฒญ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฒ„์ „์€ ์ด๋ฏธ 17.06์ด์—ˆ์Šต๋‹ˆ๋‹ค. docker system prune -af ๋ช…๋ น์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/spotify/docker-gc ๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ํ•œ ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ€ ํ•„์š”ํ•œ ์ด๋ฏธ์ง€ ์ค‘ ์ผ๋ถ€๋„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•ˆ์ „์„ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์€ ๋ž˜ํผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

#!/bin/sh
docker images -q > /etc/docker-gc-exclude    # Save all genuine images as exclude
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc

spotify์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค

IIUC, spotify ์Šคํฌ๋ฆฝํŠธ๋Š” docker rm ๋ฐ docker rmi ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ณ ์•„ diff๋ฅผ ์ œ๊ฑฐ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋Œ€ํ•œ ์ผ๋ถ€ ํ”ผ๋“œ๋ฐฑ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.์ด ๋ชจ๋“  ๋‚ด์šฉ์„ ์ฝ์—ˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ ์ผ๊ด€๋˜๊ฒŒ ๋˜๋Š” ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด "์ˆ˜์ •"์€ ๋‹จ์ˆœํžˆ ๋‚ด AWS ์ธ์Šคํ„ด์Šค์˜ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์—‰๋šฑํ•œ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๋Š” ๊ฒƒ์„ ๋„ˆ๋ฌด ์ž˜ ์•Œ๊ณ  ์žˆ์ง€๋งŒ Docker์˜ ๋ถ€ํ’€์–ด ์˜ค๋ฅธ aufs์— ๋Œ€ํ•ด ์ฐพ์€ ์ตœ๊ณ ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ •๋ง๋กœ ๊ณ ์ณ ์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค.

@fuzzygroup 17.06์€ ๋” ์ด์ƒ ๋ถ„๋ฆฌ ๋œ diff๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„์•ผํ•˜์ง€๋งŒ ์•„์ง ์ด์ „ diff๋ฅผ ์ •๋ฆฌํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์Šคํฌ๋ฆฝํŠธ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋ˆ„๊ฐ€ ์••๋‹ˆ๊นŒ.
์–ด์จŒ๋“  ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ ๋ฐ ๋ณผ๋ฅจ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ž์ฃผ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผํ•˜๋ฏ€๋กœ ์‚ฌ์†Œํ•œ ๋ถ€์ž‘์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋‹น์‹ ์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

https://gist.github.com/Karreg/84206b9711cbc6d0fbbe77a57f705979

https://stackoverflow.com/q/45798076/562769 ๋Š” ๊ด€๋ จ์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋น ๋ฅธ ์ˆ˜์ •์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, 17.06.1-ce ์—ฌ์ „ํžˆ์ด ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Containers: 20
 Running: 0
 Paused: 0
 Stopped: 20
Images: 124
Server Version: 17.06.1-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 185
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2
init version: 949e6fa
Security Options:
 apparmor
Kernel Version: 4.4.0-83-generic
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 7.796GiB
Name: gitlab-cirunner
ID: PWLR:R6HF:MK3Y:KN5A:AWRV:KHFY:F36D:WASF:7K7B:U7FY:2DJA:DBE2
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

/var/lib/docker/aufs/diff ์—๋Š” -init-removing ๋ฐ -removing ์ ‘๋‘์‚ฌ๊ฐ€์žˆ๋Š” ๋งŽ์€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ffd5477de24b0d9993724e40175185038a62250861516030a33280898243e742-removing
ffd900de0634992e99c022a16775805dfd0ffd1f6c89fece7deb6b1a71c5e38c-init-removing
ffd900de0634992e99c022a16775805dfd0ffd1f6c89fece7deb6b1a71c5e38c-removing

์ฐธ๊ณ ๋กœ, ์—ฌ์ „ํžˆ 17.06.1-ce์—์„œ ์ด๊ฒƒ์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ง๋„ ์ •ํ™•ํžˆ ๋ฌด์—‡์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
diff ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋ˆ„์ถœ ๋  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ์‹œ diff ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์กด์žฌํ–ˆ๋‹ค๋ฉด ์—ฌ์ „ํžˆ ์กด์žฌํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜์žˆ๋Š” ํ•œ ๊ณ ์•„๊ฐ€ ๋œ diff๊ฐ€ ์—ฌ์ „ํžˆ ๋ณด์ž…๋‹ˆ๋‹ค. docker system prune ๋„ ์‚ญ์ œํ•˜์ง€ ์•Š์•˜๊ณ  docker-gc ๋„ ์‚ญ์ œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. rm -rf /var/lib/docker/aufs/diff/*-removing ์ˆ˜๋™ ์‹คํ–‰์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ, docker๋Š” ์•„์ง ์˜ค๋ž˜๋œ ๊ณ ์•„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ค๋ž˜๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์€์ด ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ์ด์ „ ๋ฒ„์ „์˜ docker์—์„œ ๋งŒ๋“  ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์•ฝ 2 ์ฃผ ์ „์— ์ˆ˜ํ–‰ ํ•œ Docker์˜ ์ƒˆ๋กœ์šด ์„ค์น˜์ž…๋‹ˆ๋‹ค. ๊ทธ ๊ณ ์•„๋Š” ๊ทธ ์ดํ›„๋กœ ์ƒ์„ฑ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ docker๊ฐ€ ์—ฌ์ „ํžˆ ๊ณ ์•„๋ฅผ ๋งŒ๋“ค๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ง์€, ํ›„๋ฐ˜์— ์‹œ๊ฐ„ ๋‚˜๋Š”์žˆ์–ด 112 ์ƒˆ๋กœ์šด ์ฐจ์ด์  -removing ๋‚ด๊ฐ€ ์ˆ˜๋™์œผ๋กœ rm'ed ๋•Œ๋ฌธ์—.

$ ls /var/lib/docker/aufs/diff/ | grep removing | wc -l
112

"17.06์€ ๋” ์ด์ƒ ๋ถ„๋ฆฌ ๋œ diff๋ฅผ ๋งŒ๋“ค์ง€ ๋ง์•„์•ผํ•˜์ง€๋งŒ ์•„์ง ์ด์ „ diff๋ฅผ ์ •๋ฆฌํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค."๋ผ๊ณ  ๋งํ–ˆ์ง€๋งŒ ํ™•์‹คํžˆ ์ด๊ฒƒ์ด ๋งž์ง€ ์•Š๊ฑฐ๋‚˜ ๋ญ”๊ฐ€ ๋น ์กŒ์Šต๋‹ˆ๊นŒ? -removing ํƒœ๊ทธ๊ฐ€ ๋ถ™์€ ๊ฒƒ์€ ๊ณ ์•„๊ฐ€ ์•„๋‹Œ๊ฐ€?

@orf ์ตœ์‹  ์ปค๋„์—์„œ ์ œ๊ฑฐ ์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ผ์ž…๋‹ˆ๋‹ค. /var/lib/docker ์„ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

aufs ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹ค์ œ๋กœ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„ฑ๊ณต์ ์ธ ์ œ๊ฑฐ๋ฅผ๋ณด๊ณ ํ•˜๋Š” ํŠน์ • ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

/var/lib/docker ์„ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ uname -a
Linux gitlab-cirunner 4.4.0-83-generic #106~14.04.1-Ubuntu SMP Mon Jun 26 18:10:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

14.04 LTS๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

๋‹ค๋ฅธ ์ด์œ ๋กœ (swarm ๋ชจ๋“œ ๋„คํŠธ์›Œํ‚น) Docker๋ฅผ ์œ„ํ•ด 14.04๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๊ณ„.
2017 ๋…„ 8 ์›” 21 ์ผ ์›”์š”์ผ ์˜ค์ „ 8:23 orf [email protected] ์ž‘์„ฑ :

/ var / lib / docker๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ uname -a
Linux gitlab-cirunner 4.4.0-83-generic # 106 ~ 14.04.1-Ubuntu SMP Mon June 26 18:10:19 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux

14.04 LTS๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

โ€”
๋Œ“๊ธ€์„ ๋‹ฌ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/moby/moby/issues/22207#issuecomment-323773033 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์‹ค
https://github.com/notifications/unsubscribe-auth/AADRIfE2B2HNpbsKyTOj1CwGzulRT2C0ks5saaDPgaJpZM4IMGt2
.

์ด๊ฒƒ์€ 17.06.01-ce์—์„œ ๋” ๋‚˜๋น  ๋ณด์ž…๋‹ˆ๋‹ค. ๋นŒ๋“œ ๋จธ์‹ ์„์ด ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ฆ‰์‹œ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€๋กœ ๋‚จ์•„์žˆ๋Š” *-init-removing ๋ฐ *-removing ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜๊ณ  /var/lib/docker ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ ๋ช‡ ๋ฒˆ์˜ ๋นŒ๋“œ๊ฐ€ ๋””์Šคํฌ ๊ณต๊ฐ„ ๋ถ€์กฑ์— ๊ฐ€๊นŒ์›Œ์กŒ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์ค‘์ง€ํ•˜๊ณ  apt-get purge docker-ce ํ•˜๊ณ  /var/lib/docker ๋‹ค์‹œ ์ œ๊ฑฐํ•˜๊ณ  17.06.0-ce ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. /var/lib/docker/aufs/diff ๋ฐ ๋””์Šคํฌ ๊ณต๊ฐ„์—์„œ ์ถ”๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์–ป์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ๋นŒ๋“œ ๋จธ์‹ ์—์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ๋ฐœ ๋จธ์‹ ์—์„œ๋„ ๋™์ž‘์„ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ด๋ฏธ์ง€์˜ ๊ฐ ๋ ˆ์ด์–ด์— ๋Œ€ํ•ด ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์ •๋ง ๋นจ๋ฆฌ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, 17.06.0-ce๋กœ ๋˜ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ ์ง€๊ธˆ์€ ๊ฑฐ๊ธฐ์— ๋จธ๋ฌด๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@mmanderson ๋ณด๊ณ 

@mmanderson docker ps -a Dead ์ƒํƒœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ๋ชจ๋“  ๋„์ปค ๋นŒ๋“œ ์„œ๋ฒ„์— ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.
image
์ง€๋‚œ์ฃผ์— Docker ๋ฒ„์ „ 17.06.1-ce, ๋นŒ๋“œ 874a737๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค๋ฅธ ์–ด๋–ค ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ์ด ๋ฌธ์ œ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€๋กœ ๋‚˜ํƒ€ ๋‚ฌ๊ฑฐ๋‚˜ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. aufs diff ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ฐฉ๋Œ€ํ•˜๋ฉฐ ์ด๋ฏธ ๋ชจ๋“  ์ด๋ฏธ์ง€์™€ ๋งค๋‹ฌ๋ฆฐ ๋ณผ๋ฅจ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

issue-22207.txt
@ cpuguy83 ์–ด๋–ค ์ƒํƒœ์—๋„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ 17.06.01-ce๋กœ ์ด๊ฒƒ์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„์‹ ํžˆ ์ˆ˜ํ–‰ ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

  1. Ubuntu 16.04.03 LTS์— docker 17.06.01-ce๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•˜์—ฌ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค (์ฆ‰, docker๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š๊ณ  / var / lib / docker ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Œ). ์„ค์น˜ ํ›„ ๋นˆ / var / lib / docker / aufs / diff ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ubuntu : latest๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ dockerfile๋กœ docker ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค
  3. ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ ํ•œ ํ›„ docker ps -a ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์–ด๋–ค ์ƒํƒœ์˜ ์ปจํ…Œ์ด๋„ˆ๋„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ช‡ ๊ฐ€์ง€ *-remaining ์—์„œ ํด๋” /var/lib/docker/aufs/diff ํด๋”์— ์žˆ์Šต๋‹ˆ๋‹ค.
  4. docker system df ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ ๋ฐ ๋ณผ๋ฅจ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š”
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              2                   0                   132.7MB             132.7MB (100%)
Containers          0                   0                   0B                  0B
Local Volumes       0                   0                   0B                  0B
  1. du -sch /var/lib/docker/*/ ์‹คํ–‰ํ•˜๋ฉด /var/lib/docker/aufs/ 2,200 du -sch /var/lib/docker/*/ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  2. docker rmi $(docker images -q) ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋นŒ๋“œ ๋œ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ด ํ›„์— docker system df ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋‘ 0์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ du -sch /var/lib/docker/*/ ์‡ผ 152M /var/lib/docker/aufs/ ํ•˜๊ณ ์žˆ๋‹ค *-remaining ํด๋”์˜ ๋ชจ๋“  ํด๋” ๊ฒƒ์€ ๊ทธ ๊ธฐ์กด๊ณผ ํ•จ๊ป˜ํ•˜๊ธฐ ์ „์—์ด ์—†์—ˆ *-remaining ํด๋”๊ฐ€ ์•„์ง ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

@erikh ์ด๊ฒƒ์ด ๋‹น์‹ ์ด ๊ฒช๊ณ ์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

@ cpuguy83 17.06.01-ce๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  / var / lib / docker ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  17.06.0-ce๋ฅผ ์„ค์น˜ ํ•œ ํ›„ ๋™์ผํ•œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. 17.06.01์—์„œ ์ˆ˜์ • ๋œ ADD from remote URL's ๋ฒ„๊ทธ๋กœ ์ธํ•ด ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์™„๋ฃŒํ•˜๋Š” ๋‹จ๊ณ„์— ๋Œ€ํ•ด *-remaining ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉฐ docker system prune ๋ฐ docker rmi $(docker image -q) ๋ชจ๋“  ๊ฒƒ์„ ์ •๋ฆฌ ํ•œ ํ›„ /var/lib/docker/aufs/diff ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋‹ค์‹œ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐ„์ด ํ™•๋ณด๋ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 17.06.1์˜ ํšŒ๊ท€์ž…๋‹ˆ๋‹ค ...
์ˆ˜์ •ํ•ด์•ผ ํ•  PR : https://github.com/moby/moby/pull/34587

๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค, @ cpuguy83์˜ ๋น ๋ฅธ ํŒจ์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! / cc @erikh

@rogaha! ๋„ค, ๋‹น์‹ ๊ณผ @ cpuguy83 ๋•๋ถ„์—!

ํ›Œ๋ฅญํ•œ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด @Karreg ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ชจ๋“  ์˜ค๋ž˜๋œ ophaned diff๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์†์‹ค ๋œ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๋‹ค์‹œ ํ™•๋ณด ํ•œ ํ›„ ์ด์ œ ์ƒˆ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— VM์„ ์ •๋ฆฌํ•˜๋Š” ๋ฐ ์ •๊ธฐ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํฐ ๋„์›€๊ณผ ๊ฑฐ์˜ ์™„๋ฒฝํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. @ TP75

Docker, Inc.๊ฐ€ ์ปดํ“จํ„ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์ œ์กฐ์—…์ฒด์™€ ์ผ๋ถ€ ๊ณ„์•ฝ์„ ๋งบ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Karreg ์˜ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ €์—๊ฒŒ ์ž˜ ์ž‘๋™ํ–ˆ๊ณ  diffs ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ๊ณต๊ฐ„์„ ๋น„

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Docker ํ˜ธ์ŠคํŠธ ์„ธ๋ถ€ ์ •๋ณด

root @ UbuntuCont : ~ # ๋„์ปค ์ •๋ณด
์ปจํ…Œ์ด๋„ˆ : 3
๋‹ฌ๋ฆฌ๊ธฐ : 0
์ผ์‹œ ์ค‘์ง€๋จ : 0
์ค‘์ง€๋จ : 3
์ด๋ฏธ์ง€ : 4
์„œ๋ฒ„ ๋ฒ„์ „ : 17.06.1-ce
์Šคํ† ๋ฆฌ์ง€ ๋“œ๋ผ์ด๋ฒ„ : aufs
๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ : / var / lib / docker / aufs
๋ฐฑ์—… ํŒŒ์ผ ์‹œ์Šคํ…œ : extfs
Dirs : 14
Dirperm1 ์ง€์› : true
๋กœ๊น… ๋“œ๋ผ์ด๋ฒ„ : json-file
Cgroup ๋“œ๋ผ์ด๋ฒ„ : cgroupfs
ํ”Œ๋Ÿฌ๊ทธ์ธ :
๋ณผ๋ฅจ : ๋กœ์ปฌ
๋„คํŠธ์›Œํฌ : ๋ธŒ๋ฆฌ์ง€ ํ˜ธ์ŠคํŠธ macvlan null ์˜ค๋ฒ„๋ ˆ์ด
๋กœ๊ทธ : awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm : ๋น„ํ™œ์„ฑ
๋Ÿฐํƒ€์ž„ : runc
๊ธฐ๋ณธ ๋Ÿฐํƒ€์ž„ : runc
๋ฐ”์ด๋„ˆ๋ฆฌ ์ดˆ๊ธฐํ™” : docker-init
์ปจํ…Œ์ด๋„ˆ ๋ฒ„์ „ : 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc ๋ฒ„์ „ : 810190ceaa507aa2727d7ae6f4790c76ec150bd2
์ดˆ๊ธฐํ™” ๋ฒ„์ „ : 949e6fa
๋ณด์•ˆ ์˜ต์…˜:
์˜๋ฅ˜
seccomp
ํ”„๋กœํ•„ : ๊ธฐ๋ณธ๊ฐ’
์ปค๋„ ๋ฒ„์ „ : 4.4.0-93-generic
์šด์˜ ์ฒด์ œ : Ubuntu 16.04.3 LTS
OSType : ๋ฆฌ๋ˆ…์Šค
์•„ํ‚คํ…์ฒ˜ : x86_64
CPU : 1
์ด ๋ฉ”๋ชจ๋ฆฌ : 3.358GiB
์ด๋ฆ„ : UbuntuCont
ID : QQA5 : DC5S : C2FL : LCC6 : XY6E : V3FR : TRW3 : VMOQ : QQKD : AP2M : H3JA : I6VX
Docker ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ : / var / lib / docker
๋””๋ฒ„๊ทธ ๋ชจ๋“œ (ํด๋ผ์ด์–ธํŠธ) : false
๋””๋ฒ„๊ทธ ๋ชจ๋“œ (์„œ๋ฒ„) : false
๋ ˆ์ง€์ŠคํŠธ๋ฆฌ : https://index.docker.io/v1/
์‹คํ—˜์  : ๊ฑฐ์ง“
์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ :
127.0.0.0/8
๋ผ์ด๋ธŒ ๋ณต์› ํ™œ์„ฑํ™” : false

root @ UbuntuCont : / var / lib / docker / aufs / diff # ls
031c85352fe85f07fede77dee0ac9dc2c7723177a819e72c534e1399208c95fa
09d53040e7e6798b5987ea76fe4f84f0906785b94a392a72e8e41a66cd9f242d
09d53040e7e6798b5987ea76fe4f84f0906785b94a392a72e8e41a66cd9f242d-init
0fb1ffc90969e9706801e2a18870f3ecd857a58f1094fbb968b3fa873e4cf2e4
10549179bd21a9c7af018d4ef305bb9196413b9662fce333b607104c40f38781
10d86a48e03cabf9af2c765dc84824809f24674ac339e4b9ffe572f50bd26b9c-init-removing
10d86a48e03cabf9af2c765dc84824809f24674ac339e4b9ffe572f50bd26b9c- ์ œ๊ฑฐ
2e226946e8e6c2b3613de2afcff4cbb9890b6d9bd365fdda121a51ae96ec5606
2e226946e8e6c2b3613de2afcff4cbb9890b6d9bd365fdda121a51ae96ec5606-init
3601f6953132f557df8b52e03016db406168d3d6511d7ff5c08a90925ea288da-init-removing
3601f6953132f557df8b52e03016db406168d3d6511d7ff5c08a90925ea288da- ์ œ๊ฑฐ
4b29141243aea4e70472f25a34a91267ab19c15071862c53e903b99740603d4c-init-removing
4b29141243aea4e70472f25a34a91267ab19c15071862c53e903b99740603d4c- ์ œ๊ฑฐ
520e3fcf82e0fbbb48236dd99b6dee4c5bb9073d768511040c414f205c787dc5-init-removing
520e3fcf82e0fbbb48236dd99b6dee4c5bb9073d768511040c414f205c787dc5- ์ œ๊ฑฐ
59cbb25a4858e7d3eb9146d64ff7602c9abc68509b8f2ccfe3be76681481904f
5d1c661b452efce22fe4e109fad7a672e755c64f538375fda21c23d49e2590f6
605893aba54feee92830d56b6ef1105a4d2166e71bd3b73a584b2afc83319591
63bd53412210f492d72999f9263a290dfee18310aa0494cb92e0d926d423e281-init-removing
63bd53412210f492d72999f9263a290dfee18310aa0494cb92e0d926d423e281- ์ œ๊ฑฐ
72146e759ab65c835e214e99a2037f4b475902fdbe550c46ea0d396fb5ab2779-init-removing
72146e759ab65c835e214e99a2037f4b475902fdbe550c46ea0d396fb5ab2779- ์ œ๊ฑฐ
8147e0b06dcbce4aa7eb86ed74f4ee8301e5fe2ee73c3a80dcb230bd0ddfcc26-init-removing
8147e0b06dcbce4aa7eb86ed74f4ee8301e5fe2ee73c3a80dcb230bd0ddfcc26- ์ œ๊ฑฐ
a72735551217bb1ad01b77dbdbb9b8effa9f41315b0c481f8d74b5606c50deb4
aa58f2000b9f7d1ed2a6b476740c292c3c716e1d4dc04b7718580a490bba5ee8
b552cb853e33a8c758cb664aec70e2c4e85eacff180f56cbfab988a8e10c0174- ์ œ๊ฑฐ
cd80c351b81ed13c4b64d9dfdc20c84f6b01cbb3e26f560faf2b63dae12dec55-init-removing
cd80c351b81ed13c4b64d9dfdc20c84f6b01cbb3e26f560faf2b63dae12dec55- ์ œ๊ฑฐ
fe903be376821b7afee38a016f9765136ecb096c59178156299acb9f629061a2
fe903be376821b7afee38a016f9765136ecb096c59178156299acb9f629061a2-init

@kasunsjc ๊ท€ํ•˜์˜ ๊ฒŒ์‹œ๋ฌผ ๋ฐ”๋กœ ์œ„์—์žˆ๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ์œผ์‹ญ์‹œ์˜ค.

17.06.2-ce๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ (์ง€๋‚œ ์‹œ๊ฐ„์—) ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

17.06.2-ce _appears_๋„์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ๋” ์ด์ƒ -removing ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉฐ ์ถฉ๋ถ„ํ•œ ๊ณต๊ฐ„์„ ํ™•๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์žˆ์œผ๋ฆฌ๋ผ ๋ฏฟ๊ณ ์žˆ์–ด -init I๊ฐ€์—์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ aufs/diff (๊ทธ๋“ค ์ค‘ ์ผ๋ถ€๋Š” ๊ฝค ์˜ค๋ž˜๋œ) ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ๋“ค์€ ๋ชจ๋‘ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ์˜ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

17.07.0์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์—ฌ๊ธฐ์„œ๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. docker system prune --all -f ์กฐ์ฐจ๋„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ด์ „์— ์ œ๊ฑฐ๋˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„์— ์žฌ๋ถ€ํŒ…์‹œ ์ž๋™ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๋ฉด Ubuntu 16.04 (17.06.2-ce ํฌํ•จ)์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธํ•˜์ž๋งˆ์ž ๊ณต๊ฐ„์ด ์ •๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰