Docker Daemon์ ๊ณผ๋ถํ ์ํ์์ ์ค๋จ๋ฉ๋๋ค. ์๋๋ฆฌ์ค๋ ์ด๋น ๋ง์ ์ปจํ ์ด๋๋ฅผ ์์ / ์ค์ง / ์ข ๋ฃ / ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์ปจํ ์ด๋๋ ํ๋์ ํฌํธ๋ฅผ ํฌํจํ๋ฉฐ ๋ก๊น ์์ด ๋ถ๋ฆฌ ๋ ๋ชจ๋๋ก ์คํ๋ฉ๋๋ค. ์ปจํ ์ด๋๋ ๋ค์ด์ค๋ TCP ์ฐ๊ฒฐ์ ์์ ํ๊ณ ์ผ๋ถ ์์ ์ ์ํํ๊ณ ์๋ต์ ๋ณด๋ธ ๋ค์ ์ข ๋ฃํฉ๋๋ค. ์ธ๋ถ ํ๋ก์ธ์ค๋ ์ ์ปจํ ์ด๋๋ฅผ ์ฃฝ์ด๊ฑฐ๋ ์ ๊ฑฐํ๊ณ ์์ํ์ฌ ์ ๋ฆฌํฉ๋๋ค.
์ผ๋จ ์ค๋จ๋๋ฉด ์ฌ๋ถํ ์์ด ๋์ปค๋ฅผ ์คํํ ์ ์์ผ๋ฏ๋ก ์ค์ ์ค๋จ ๋ ์ธ์คํด์ค์์ ๋์ปค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์๋ ์ ๋ณด๋ ์ฌ๋ถํ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ธ์คํด์ค ์ค ํ๋์ ๋๋ค.
๋ํ ๋ฌด์ธ๊ฐ๊ฐ ์์ ํ ์ ๊ธฐ๊ณ ์ธ์คํด์ค๊ฐ ssh'd ๋ ์์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ๋์ปค ์ ๊ธ์ด ๋ฐ์ํ ํ ์ธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
Docker ์ ๋ณด
์ปจํ
์ด๋ : 8
์ด๋ฏธ์ง : 65
์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ : ์ค๋ฒ๋ ์ด
๋ฐฑ์
ํ์ผ ์์คํ
: extfs
์คํ ๋๋ผ์ด๋ฒ : native-0.2
์ปค๋ ๋ฒ์ : 3.18.0-031800-generic
์ด์ ์ฒด์ : Ubuntu 14.04.2 LTS
CPU : 2
์ด ๋ฉ๋ชจ๋ฆฌ : 3.675GiB
์ด๋ฆ:
์์ด๋ : FAEG : 2BHA : XBTO : CNKH : 3 RCA : GV3Z : UWIB : 76QS : 6 JAG : SVCE : 67LH : KZBP
๊ฒฝ๊ณ : ์ค์ ์ ํ ์ง์ ์์
Docker ๋ฒ์
ํด๋ผ์ด์ธํธ ๋ฒ์ : 1.6.0
ํด๋ผ์ด์ธํธ API ๋ฒ์ : 1.18
Go ๋ฒ์ (ํด๋ผ์ด์ธํธ) : go1.4.2
Git ์ปค๋ฐ (ํด๋ผ์ด์ธํธ) : 4749651
OS / Arch (ํด๋ผ์ด์ธํธ) : linux / amd64
์๋ฒ ๋ฒ์ : 1.6.0
์๋ฒ API ๋ฒ์ : 1.18
Go ๋ฒ์ (์๋ฒ) : go1.4.2
Git ์ปค๋ฐ (์๋ฒ) : 4749651
OS / Arch (์๋ฒ) : linux / amd64
uname -a
๋ฆฌ๋
์ค
ulimit -a
์ฝ์ด ํ์ผ ํฌ๊ธฐ (๋ธ๋ก, -c) 0
๋ฐ์ดํฐ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ (KB, -d) ๋ฌด์ ํ
์ค์ผ์ค๋ง ์ฐ์ ์์ (-e) 0
ํ์ผ ํฌ๊ธฐ (๋ธ๋ก, -f) ๋ฌด์ ํ
๋ณด๋ฅ์ค์ธ ์ ํธ (-i) 14972
์ต๋ ์ ๊ธด ๋ฉ๋ชจ๋ฆฌ (KB, -l) 64
์ต๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ (KB, -m) ๋ฌด์ ํ
์ด๋ฆฐ ํ์ผ (-n) 1024
ํ์ดํ ํฌ๊ธฐ (512 ๋ฐ์ดํธ, -p) 8
POSIX ๋ฉ์์ง ํ (๋ฐ์ดํธ, -q) 819200
์ค์๊ฐ ์ฐ์ ์์ (-r) 0
์คํ ํฌ๊ธฐ (KB, -s) 8192
CPU ์๊ฐ (์ด, -t) ๋ฌด์ ํ
์ต๋ ์ฌ์ฉ์ ํ๋ก์ธ์ค (-u) 14972
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ (KB, -v) ๋ฌด์ ํ
ํ์ผ ์ ๊ธ (-x) ๋ฌด์ ํ
์ด๊ฒ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ถ์ ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๊ฐ๊ฒ ๋ ๊น์? ์๋ง๋ ์ปจํ ์ด๋์์๋ ๊ฒ์ ๋ํ ์์ Dockerfile๊ณผ ์ปจํ ์ด๋ ์์ / ์ค์ง / ... ์์ ์ ์ํํ๋ bash ์คํฌ๋ฆฝํธ์ผ๊น์?
์ปจํ ์ด๋๊ฐ dockerhub kinvey / blrunner # v0.3.8์ ์์ต๋๋ค.
๋ค์ ์ต์ ๊ณผ ํจ๊ป ์๊ฒฉ API ์ฌ์ฉ :
์ฐฝ์กฐํ๋ค
์ด๋ฏธ์ง : 'kinvey / blrunner # v0.3.8'
AttachStdout : ๊ฑฐ์ง
AttachStderr : ๊ฑฐ์ง
ExposedPorts : { '7000 / tcp': {}}
Tty : ๊ฑฐ์ง
HostConfig :
PublishAllPorts : true
CapDrop : [
"CHOWN"
"DAC_OVERRIDE"
"FOWNER"
"์ฃฝ์"
"SETGID"
"SETPCAP"
"NET_BIND_SERVICE"
"NET_RAW"
"SYS_CHROOT"
"MKNOD"
"SETFCAP"
"AUDIT_WRITE"
]
LogConfig :
์ ํ : "์์"
๊ตฌ์ฑ : {}
์คํํธ
container.start
์์ ๋ค
force : true
ํ , ๊ณผ๋ํ ๋ฆฌ์์ค ์ฌ์ฉ๋์ด ๋ณด์ด์ญ๋๊น?
ssh๊ฐ ์๋ํ์ง ์๋๋ค๋ ์ฌ์ค์ ๋๋ฅผ ์์ฌํ๊ฒ ๋ง๋ญ๋๋ค.
์ค๋ฒ๋ ์ด์ inode ๋ฌธ์ ์ด๊ฑฐ๋ ๋๋ฌด ๋ง์ ์ด๋ฆฐ FD ๋ฑ์ด ๋ ์ ์์ต๋๋ค.
๊ณผ๋ํ ๋ฆฌ์์ค ์ฌ์ฉ๊ณผ ๊ด๋ จํ์ฌ ํนํ๋ ์๋์ง๋ง ์ด๊ธฐ ์ฆ์์ docker๊ฐ ์์ ํ ์ค๋จ๋๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ํ๋ณตํ๊ฒ ์์ ๊ฑฐ๋ฆฌ๋ ๊ฒ์ ๋๋ค ...
์ค์ํ ์ ์ ํ๋์ ์ธ์คํด์ค์์ ํ ๋ฒ์ 8 ๊ฐ์ ์ปจํ ์ด๋ ๋ง ์คํ๋๋ค๋ ๊ฒ์ ๋๋ค.
docker๊ฐ ๋ ์ด์ resposive๊ฐ ์๋ ์ผ๋ถ ํต๊ณ๋ฅผ ์บก์ฒํ์ต๋๋ค.
lsof | ํ์ฅ์ค -l
1025๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๊ทธ๋ฌ๋ ์ค๋ฅ๊ฐ ์ฌ๋ฌ ๋ฒ ๋ํ๋ฉ๋๋ค.
lsof : ๊ฒฝ๊ณ : ์ค๋ฒ๋ ์ด ํ์ผ ์์คํ
/ var / lib / docker / overlay / aba7820e8cb01e62f7ceb53b0d04bc1281295c38815185e9383ebc19c30325d0 / merged๋ฅผ stat () ํ ์ ์์ต๋๋ค.
์ถ๋ ฅ ์ ๋ณด๊ฐ โโ๋ถ์์ ํ ์ ์์ต๋๋ค.
์๋จ์ ์ํ ์ถ๋ ฅ :
์๋จ-00:16:53 12:22, ์ฌ์ฉ์ 2 ๋ช
,๋ก๋ ํ๊ท : 2.01, 2.05, 2.05
์์
: ์ด 123 ๊ฐ, ์คํ ์ค 1 ๊ฐ, ์๋ฉด 121 ๊ฐ, ์ค์ง 0 ๊ฐ, ์ข๋น 1 ๊ฐ
% Cpu (s) : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : ์ด 3853940, ์ฌ์ฉ 2592920, ๋ฌด๋ฃ 1261020, ๋ฒํผ 172660
KiB ์ค์ : ์ด 0 ๊ฐ, ์ฌ์ฉ 0 ๊ฐ, ๋ฌด๋ฃ 0 ๊ฐ. 1115644 ์บ์ ๋ ๋ฉ๋ชจ๋ฆฌ
24971 kinvey 20 0 992008 71892 10796 S 1.3 1.9 9 : 11.93 ๋
ธ๋
902 ๋ฃจํธ 200 1365860 62800 12108 S 0.3 1.6 30 : 06.10 ๋์ปค
29901 ์ฐ๋ถํฌ 200 27988 6720 2676 S 0.3 0.2 3 : 58.17 tmux
1 ๋ฃจํธ 2000 33612 4152 2716 S 0.0 0.1 14 : 22.00 ์ด๊ธฐํ
2 ๋ฃจํธ 20000 S 0.0 0.0 0 : 00.03 kthreadd
3 ๋ฃจํธ 20000 S 0.0 0.0 0 : 04.40 ksoftirqd / 0
5 ๋ฃจํธ 0-20 0 0 S 0.0 0.0 0 : 00.00 kworker / 0 : 0H
7 ๋ฃจํธ 200 000 S 0.0 0.0 2 : 21.81 rcu_sched
8 ๋ฃจํธ 200 000 S 0.0 0.0 0 : 01.91 rcu_bh
@mjsalinger ์ฌ์ฉ์ค์ธ ์ค์ ์ด ์ง์๋์ง ์์ต๋๋ค. ์ง์๋์ง ์๋ ์ด์ ๋ ์ฌ์ฉ์ ์ง์ ์ปค๋๊ณผ ํจ๊ป Ubuntu 14.04๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
3.18.0-031800 ์ปค๋์ ์ด๋์์ ์์ต๋๊น? ์ด ์ปค๋ ๋น๋๊ฐ ์ค๋๋ ๊ฒ์ ์์์ต๋๊น? ์ฌ์ฉ์ค์ธ ์ปค๋์ ์๋ 12 ์์ ๋น๋๋์์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ์ฌ๊ธฐ์ ๋๋ฒ๊น ํ ํญ๋ชฉ์ด ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ค์ ๋ก ์ค๋ฒ๋ ์ด์ ๊ด๋ จ๋ ์ปค๋ ๋ฒ๊ทธ์ด๊ฑฐ๋ ์ต์ ๋ฒ์ ์ ์ปค๋ 3.18์์ ๋ ์ด์ ๋ฌธ์ ๊ฐ๋์ง ์๋ ๋ค๋ฅธ ์ด๋ฏธ ์์ ๋ ์ปค๋ ๋ฒ๊ทธ ์ผ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ฒ ์ต๋๋ค. ์ต์ 3.18 ์ด์์ ์ปค๋๋ก ๋ค์ ์๋ํ๊ณ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ํ์ธํ์ญ์์ค. ์ค๋ฒ๋ ์ด์ ๋ํด ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ์ด๋ ค ์์ผ๋ฉฐ ์ต์ ์ปค๋ ๋ฒ์ ๋ฐ ์ต์ Docker ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ ํ์๋ ์ค๋ฒ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์์ ๋ช ์ฌํ์ญ์์ค.
@unclejack @ cpuguy83 @ LK4D4 ์ด ๋ฌธ์ ๋ฅผ ๋ค์์ฌ์ญ์์ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๊ตฌ์ฑ์ ๋ํ ์กฐ์ธ์ด ํนํ ๋์ปค ํ๊ณผ ์คํ์์ ์ ๊ณต ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ต์ ์ปค๋ (3.19 +)์ ์ฌ์ฉํด ๋ณด์๊ณ ์ด๋ค ์ข ๋ฅ์ ์ปค๋ ํจ๋ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ 12 ์ ์ด์ ์ 3.18์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ ์ดํ์ ์๋ ค์ง ์ปค๋ ๋ฒ๊ทธ๋ก ์ธํด ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์ปค๋ ํจ๋์ ์์ง ์์ ๋์ง ์์์ต๋๋ค.
OverlayFS์ ๊ดํด์๋ AUFS์์ _numerous_ ๊ฐ์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๊ฒฝํ ํ ํ Docker์ ์ด์์ ์ธ FS๋ก๋ ์ ์๋์์ต๋๋ค. ์ด๊ฒ์ด ์ง์๋๋ ๊ตฌ์ฑ์ด ์๋ ๊ฒฝ์ฐ ๋๊ตฐ๊ฐ๊ฐ์ด ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ ์ฑ๋ฅ์ ์ด๊ณ ์์ ์ ์ธ ๊ตฌ์ฑ์ ์ฐพ๋๋ก ๋์ ์ค ์ ์์ต๋๊น? ์ฐ๋ฆฌ๋์ด ์์ ์ ๋ช ๋ฌ ๋์ ์ถ์งํด ์์ต๋๋ค.
@mjsalinger ์ค๋ฒ๋ ์ด๊ฐ ์คํ๋๋ ๋ณผ๋ฅจ์ ๋ํ inode ์ฌ์ฉ๋์ ์ ๊ณต ํ ์ ์์ต๋๊น? ( df -i /var/lib/docker
ํด์ผํฉ๋๋ค).
๋ค์ ์ด์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ต์ด ๋ค๋ฅธ ์ปค๋์ด๋ฉด ๊ด์ฐฎ์ต๋๋ค. ์์ ์ ์ธ ์๋๋ฆฌ์ค๋ฅผ ์ํฉ๋๋ค.
df -i / ver / lib / docker
ํ์ผ ์์คํ
Inode IUsed IFree IUse % Mounted on
/ dev / xvda1 1638400 643893 994507 40 % /
์ค๋ฒ๋ ์ด์๋ ์ฌ์ ํ ๋ง์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค : https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3A%2Fsystem%2Foverlay
ํ๋ก๋์ ์์๋ ์ค๋ฒ๋ ์ด๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์์ด ์ด์ ํธ๋์ปค์ ๋ํด ํ๋ก๋์ ์์ AUFS๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์์ ์ ์ด๋ผ๊ณ ์ธ๊ธํ์ต๋๋ค.
Kernel 3.18์ Ubuntu 14.04์์ ์ง์๋์ง ์์ต๋๋ค. Canonical์ ์ด์ ๋ํ ์ง์์ ์ ๊ณตํ์ง ์์ต๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ์ AUFS๋ ์ฑ๋ฅ์ด ์ ํ ๋จ์ด์ง์ง ์์๊ณ ์ฐ๋ฆฌ์๊ฒ๋ ์์ ์ ์ด์์ง๋ง I / O ๋ณ๋ชฉ ํ์, ๋ฉ์ถค ๋ฑ์ด ์์ฃผ ๋ฐ์ํ์ต๋๋ค.
๋ณด๋ค:
์ค๋ฒ๋ ์ด๋ก ์ ํํ๋ฉด ์์ ๋ชจ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋จ์ ๋ฌธ์ ๋ ํ๋๋ฟ์ ๋๋ค.
๋ํ:
http://developerblog.redhat.com/2014/09/30/overview-storage-scalability-docker/
http://qconlondon.com/system/files/presentation-slides/Docker%20Clustering.pdf
Overlay๋ ์ผ๋ฐ์ ์ผ๋ก ์ปค๋ฎค๋ํฐ์์ ์ ํํ ๋์ธ์ผ๋ก ์ ๊ณต๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ง ์์ ์ ์ด์ง ์๋ค๋ฉด ๊ด์ฐฎ์ง ๋ง AUFS๋ ์๋๊ณ Docker์ ํ์ํ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ์ป์ ์์๋ ๋ฐฉ๋ฒ์ด ์์ด์ผํฉ๋๋ค. ๋๋ ๋ชจ๋ ์๋ก์ด ๊ฒ์ ์๋ํ๊ณ ์์ง๋ง ์ด์ ๊ตฌ์ฑ (Ubuntu 12.04์ AUFS ๋ฐ Ubuntu 14.04์ AUFS)์์๋ ์์ ์ฑ์ด๋ ์ฑ๋ฅ์ ์ป์ ์ ์์์ต๋๋ค. ์ ์ด๋ Overlay๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ด ํฅ์๋์ง๋ง์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด๋ฉ๋๋ค.
๋ํ AUFS (12.04, 14.04 ๋ฐ 15.04)์์ ์คํ์ค์ธ ๊ธฐ๋ณธ Ubuntu ์ธ์คํด์ค์ ์ ์ฌํ ์ฆ์์ ๊ฒฝํํ์ต๋๋ค.
ํ์ฌ Kernel ๋ฐ OverlayFS๋ก ์ ํ ํ ํ์ด ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ชจ๋ ์ฌ๋ผ์ก์ต๋๋ค.
@mjsalinger ์ต์ ์ปค๋ 3.13 ํจํค์ง์ ํจ๊ป Ubuntu 14.04๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ง์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด๋ฌํ ๋ฌธ์ ๋ ์ ํ ๋ฐ์ํ์ง ์์์ต๋๋ค.
@unclejack ๊ทธ๊ฒ์ ์๋ํ๊ณ ๋๋์ ๋๋ ์ฌ์ฉ (๋ง์ ์ปจํ ์ด๋ ์์ฑ / ํ๊ดด)์ผ๋ก ์์ ์ง์ ๋ ๋ฌธ์ ์ ๋ถ๋ช ์ณค๊ณ AUFS๋ ์ฑ๋ฅ์ด ๋งค์ฐ ๋จ์ด์ก์ต๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ ์ต์ ์ด ์๋๋๋ค.
@mjsalinger ๋์ปค๋ฅผ ์์ํ๊ธฐ ์ํด upstart๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? /etc/init/docker.conf๋ ์ด๋ป๊ฒ ์๊ฒผ์ต๋๊น?
์, upstart๋ฅผ ์ฌ์ฉํฉ๋๋ค.
/etc/init/docker.conf
description "Docker daemon"
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
limit nofile 524288 1048576
limit nproc 524288 1048576
respawn
pre-start script
# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
if grep -v '^#' /etc/fstab | grep -q cgroup \
|| [ ! -e /proc/cgroups ] \
|| [ ! -d /sys/fs/cgroup ]; then
exit 0
fi
if ! mountpoint -q /sys/fs/cgroup; then
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
fi
(
cd /sys/fs/cgroup
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
mkdir -p $sys
if ! mountpoint -q $sys; then
if ! mount -n -t cgroup -o $sys cgroup $sys; then
rmdir $sys || true
fi
fi
done
)
end script
script
# modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
DOCKER=/usr/bin/$UPSTART_JOB
DOCKER_OPTS=
if [ -f /etc/default/$UPSTART_JOB ]; then
. /etc/default/$UPSTART_JOB
fi
exec "$DOCKER" -d $DOCKER_OPTS
end script
# Don't emit "started" event until docker.sock is ready.
# See https://github.com/docker/docker/issues/6647
post-start script
DOCKER_OPTS=
if [ -f /etc/default/$UPSTART_JOB ]; then
. /etc/default/$UPSTART_JOB
fi
if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then
while ! [ -e /var/run/docker.sock ]; do
initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1
echo "Waiting for /var/run/docker.sock"
sleep 0.1
done
echo "/var/run/docker.sock is up"
fi
end script
์๋ฅผ ๋ค์ด ์ผ๋ถ ์ธ์คํด์ค์์ Docker ๋ช ๋ น์ ์คํํ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ํ์๋ฉ๋๋ค.
sudo docker ps
FATA [0000] Get http : ///var/run/docker.sock/v1.18/containers/json? all = 1 : dial unix /var/run/docker.sock : ๋ฆฌ์์ค๋ฅผ ์ผ์์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. TLS ์ง์์ ์ฐ๊ฒฐํ๋ ค๊ณ ํฉ๋๊น
TLS์๋ ๋ฐ๋ชฌ?
@mjsalinger ๊ทธ๋ฅ ์ํฐ๋ฆฌ ์ค๋ฅ ๋ฉ์์ง์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฐ๋ชฌ์ด ์ถฉ๋ํ์์ ์๋ฏธํฉ๋๋ค.
@mjsalinger ์ด ๋์ docker ๋ฐ๋ชฌ ๋ก๊ทธ๋ ๋ฌด์์ ๋งํฉ๋๊น? /var/log/upstart/docker.log
๋ ์์น ์ฌ์ผํฉ๋๋ค.
๊ณ ์ ๋ ์ ํญ๋ชฉ์ด ์์ต๋๋ค. ๋ค์์ ๋ก๊ทธ์ ๋ง์ง๋ง ํญ๋ชฉ์ ๋๋ค.
INFO[46655] -job log(create, 48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46655] -job create() = OK (0)
INFO[46655] POST /containers/48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a/start
INFO[46655] +job start(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a)
INFO[46655] +job allocate_interface(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a)
INFO[46655] -job allocate_interface(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a) = OK (0)
INFO[46655] +job allocate_port(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a)
INFO[46655] POST /containers/create?Image=kinvey%2Fblrunner%3Av0.3.8&AttachStdout=false&AttachStderr=false&ExposedPorts=&Tty=false&HostConfig=
INFO[46655] +job create()
INFO[46655] DELETE /containers/4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187?force=true
INFO[46655] +job rm(4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187)
INFO[46656] -job allocate_port(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a) = OK (0)
INFO[46656] +job log(start, 48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(start, 48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] +job log(create, 7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(create, 7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] -job create() = OK (0)
INFO[46656] +job log(die, 4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(die, 4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] +job release_interface(4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187)
INFO[46656] POST /containers/7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f/start
INFO[46656] +job start(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f)
INFO[46656] +job allocate_interface(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f)
INFO[46656] -job allocate_interface(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f) = OK (0)
INFO[46656] +job allocate_port(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f)
INFO[46656] -job release_interface(4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187) = OK (0)
INFO[46656] DELETE /containers/cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b?force=true
INFO[46656] +job rm(cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b)
INFO[46656] +job log(destroy, 4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(destroy, 4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] -job rm(4d447093f522f1d74f482b2f76c91adfd38b5ad264202b1c8262f05a0edaf187) = OK (0)
INFO[46656] +job log(die, cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(die, cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] +job release_interface(cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b)
INFO[46656] DELETE /containers/1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20?force=true
INFO[46656] +job rm(1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20)
INFO[46656] -job allocate_port(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f) = OK (0)
INFO[46656] +job log(start, 7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(start, 7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] -job start(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a) = OK (0)
INFO[46656] POST /containers/create?Image=kinvey%2Fblrunner%3Av0.3.8&AttachStdout=false&AttachStderr=false&ExposedPorts=&Tty=false&HostConfig=
INFO[46656] +job create()
INFO[46656] +job log(create, 1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(create, 1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] -job create() = OK (0)
INFO[46656] +job log(die, 1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(die, 1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] +job release_interface(1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20)
INFO[46656] GET /containers/48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a/json
INFO[46656] +job container_inspect(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a)
INFO[46656] -job container_inspect(48abb699bb6b8aefe042c010d06268d5e13515d616c5ca61f3a4930a325de26a) = OK (0)
INFO[46656] POST /containers/1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830/start
INFO[46656] +job start(1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830)
INFO[46656] +job allocate_interface(1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830)
INFO[46656] -job allocate_interface(1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830) = OK (0)
INFO[46656] +job allocate_port(1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830)
INFO[46656] -job release_interface(cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b) = OK (0)
INFO[46656] -job start(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f) = OK (0)
INFO[46656] GET /containers/7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f/json
INFO[46656] +job container_inspect(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f)
INFO[46656] -job release_interface(1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20) = OK (0)
INFO[46656] -job container_inspect(7ef9e347b762b4fb34a85508e5d259a609392decf9ffc8488730dbe8e731c84f) = OK (0)
INFO[46656] +job log(destroy, cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(destroy, cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] -job rm(cb03fc14e5eab2acf01d1d42dec2fc1990cccca69149de2dc97873f87474db9b) = OK (0)
INFO[46656] +job log(destroy, 1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(destroy, 1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20, kinvey/blrunner:v0.3.8) = OK (0)
INFO[46656] -job rm(1e8ddec281bd9b5bfe239d0e955874f83d51ffec95c499f88c158639f7445d20) = OK (0)
INFO[46656] DELETE /containers/4cfeb48701f194cfd40f71d7883d82906d54a538084fa7be6680345e4651aa60?force=true
INFO[46656] +job rm(4cfeb48701f194cfd40f71d7883d82906d54a538084fa7be6680345e4651aa60)
INFO[46656] -job allocate_port(1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830) = OK (0)
INFO[46656] +job log(start, 1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830, kinvey/blrunner:v0.3.8)
INFO[46656] -job log(start, 1ae5798d7aeec4857944b40a27f1a69789323bbe8edb8d67a250150241484830, kinvey/blrunner:v0.3.8) = OK (0)
@ cpuguy83 ๋ก๊ทธ๊ฐ ๋์์ด ๋์์ต๋๊น?
@mjsalinger ๋ฌธ์ ๋ฅผ ๋ํ๋ด๋ ๋ค๋ฅธ ๊ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋๊ฐ์ ๊ต์ฐฉ ์ํ๊ฐ ์๋ค๊ณ ์๊ฐํ๊ฒ ๋ง๋ญ๋๋ค.
@ cpuguy83 ์ฆ์์ ๊ฐ์ํ ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๊ทธ ์์ธ์ ์ถ์ ํ๊ธฐ ์ํด ๋ด๊ฐ ํ ์์๋ ์ผ์ด ์์ต๋๊น?
์๋ง๋ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์ค์ ๋ก ์๋ฌผ์ ์ ๋งค๋ฌ๋ ค ์๋์ง ํ์ธํ๊ธฐ ์ํด strace๋ฅผ ์ป์ ์ ์์ต๋๋ค.
ํ์ธ. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ป์ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ 1.7์ ๋จผ์ ์๋ํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ ๊ฒํ์ง๋ง ์ด๋ค ๊ฐ์ ๋ ๋์น ์ฑ์ง ๋ชปํ์ต๋๋ค.
@ cpuguy83 ์ํฅ์๋ฐ๋ ํธ์คํธ ์ค ํ๋์์ :
root@<host>:~# strace -q -y -v -p 899
futex(0x134f1b8, FUTEX_WAIT, 0, NULL^C <detached ...>
@ cpuguy83 ์ด๋ค ์์ด๋์ด?
์ปจํ ์ด๋๊ฐ ์ฃฝ๊ฑฐ๋ ์์๋์ง ์์ ์ํ์์ 1.7์์ ๋ค์์ ์ฐธ์กฐํ์ญ์์ค. ์ด๊ฒ์ ๋ฌธ์ ์ ์ ๊ตฌ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค (์ฐธ๊ณ ๋ก 1.6์์๋ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ณด์ง ๋ชปํ์ง๋ง ์ฃฝ์ด๊ธฐ / ์ ๊ฑฐํ๋ผ๋ ๋ช ๋ น์ด ์คํ ๋์์์๋ ๋ถ๊ตฌํ๊ณ ์ฃฝ์ ์ปจํ ์ด๋์ ์์ด ์์ด๊ธฐ ์์ํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค)
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container 09c12c9f72d461342447e822857566923d5532280f9ce25659d1ef3e54794484: Link not found
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container 5e29407bb3154d6f5778676905d112a44596a23fd4a1b047336c3efaca6ada18: Link not found
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container be22e8b24b70e24e5269b860055423236e4a2fca08969862c3ae3541c4ba4966: Link not found
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container c067d14b67be8fb81922b87b66c0025ae5ae1ebed3d35dcb4052155afc4cafb4: Link not found
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container 7f21c4fd8b6620eba81475351e8417b245f86b6014fd7125ba0e37c6684e3e42: Link not found
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container b31531492ab7e767158601c438031c8e9ef0b50b9e84b0b274d733ed4fbe03a0: Link not found
Error spawning container: Error: HTTP code is 500 which indicates error: server error - Cannot start container 477dc3c691a12f74ea3f07af0af732082094418f6825f7c3d320bda0495504a1: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 32822 -j DNAT --to-destination 172.17.0.44:7000 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container 6965eec076db173f4e3b9a05f06e1c87c02cfe849821bea4008ac7bd0f1e083a: Link not found
Error spawning container: Error: HTTP code is 404 which indicates error: no such container - Cannot start container 7c721dd2b8d31b51427762ac1d0fe86ffbb6e1d7462314fdac3afe1f46863ff1: Link not found
Error spawning container: Error: HTTP code is 500 which indicates error: server error - Cannot start container c908d059631e66883ee1a7302c16ad16df3298ebfec06bba95232d5f204c9c75: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 32837 -j DNAT --to-destination 172.17.0.47:7000 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)
Error spawning container: Error: HTTP code is 500 which indicates error: server error - Cannot start container c3e11ffb82fe08b8a029ce0a94e678ad46e3d2f3d76bed7350544c6c48789369: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 32847 -j DNAT --to-destination 172.17.0.48:7000 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)
์ต๊ทผ ์ฌ๊ฑด์ docker.log ๊ผฌ๋ฆฌ :
INFO[44089] DELETE /containers/4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25?force=true
INFO[44089] +job rm(4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25)
INFO[44089] DELETE /containers/a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96?force=true
INFO[44089] +job rm(a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96)
INFO[44089] +job log(die, 4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25, kinvey/blrunner:v0.3.8)
INFO[44089] -job log(die, 4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25, kinvey/blrunner:v0.3.8) = OK (0)
INFO[44089] +job release_interface(4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25)
INFO[44089] -job release_interface(4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25) = OK (0)
INFO[44089] +job log(die, a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96, kinvey/blrunner:v0.3.8)
INFO[44089] -job log(die, a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96, kinvey/blrunner:v0.3.8) = OK (0)
INFO[44089] +job release_interface(a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96)
INFO[44089] -job release_interface(a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96) = OK (0)
INFO[44092] +job log(destroy, 285274ee9c5b3bfa9fcea4d93b75e7e51949752b8d0eb101a31ea4f9aec5dad6, kinvey/blrunner:v0.3.8)
INFO[44092] -job log(destroy, 285274ee9c5b3bfa9fcea4d93b75e7e51949752b8d0eb101a31ea4f9aec5dad6, kinvey/blrunner:v0.3.8) = OK (0)
INFO[44092] -job rm(285274ee9c5b3bfa9fcea4d93b75e7e51949752b8d0eb101a31ea4f9aec5dad6) = OK (0)
INFO[44092] POST /containers/create?Image=kinvey%2Fblrunner%3Av0.3.8&AttachStdout=false&AttachStderr=false&ExposedPorts=&Tty=false&HostConfig=
INFO[44092] +job create()
INFO[44097] +job log(destroy, 4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25, kinvey/blrunner:v0.3.8)
INFO[44097] -job log(destroy, 4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25, kinvey/blrunner:v0.3.8) = OK (0)
INFO[44097] -job rm(4e455d01da8453688dd27cad41fea158757311c0c89f27619a728f272591ef25) = OK (0)
INFO[44097] POST /containers/create?Image=kinvey%2Fblrunner%3Av0.3.8&AttachStdout=false&AttachStderr=false&ExposedPorts=&Tty=false&HostConfig=
INFO[44097] +job create()
INFO[44098] +job log(destroy, c80a39f060f200f1aff8ae52538779542437745e4184ed02793f8873adcb9cd4, kinvey/blrunner:v0.3.8)
INFO[44098] -job log(destroy, c80a39f060f200f1aff8ae52538779542437745e4184ed02793f8873adcb9cd4, kinvey/blrunner:v0.3.8) = OK (0)
INFO[44098] -job rm(c80a39f060f200f1aff8ae52538779542437745e4184ed02793f8873adcb9cd4) = OK (0)
INFO[44098] POST /containers/create?Image=kinvey%2Fblrunner%3Av0.3.8&AttachStdout=false&AttachStderr=false&ExposedPorts=&Tty=false&HostConfig=
INFO[44098] +job create()
INFO[44098] +job log(create, 3b9a4635c068989ddb1983aa12460083e874d50fd42c743033ed3a08000eb7e9, kinvey/blrunner:v0.3.8)
INFO[44098] -job log(create, 3b9a4635c068989ddb1983aa12460083e874d50fd42c743033ed3a08000eb7e9, kinvey/blrunner:v0.3.8) = OK (0)
INFO[44098] -job create() = OK (0)
INFO[44098] POST /containers/3b9a4635c068989ddb1983aa12460083e874d50fd42c743033ed3a08000eb7e9/start
INFO[44098] +job start(3b9a4635c068989ddb1983aa12460083e874d50fd42c743033ed3a08000eb7e9)
INFO[44102] +job log(destroy, a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96, kinvey/blrunner:v0.3.8)
INFO[44102] -job log(destroy, a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96, kinvey/blrunner:v0.3.8) = OK (0)
INFO[44102] -job rm(a608bc1014317b083ac2f32a4c6c85dda65445420775e21d6406ca9146723c96) = OK (0)
INFO[44102] POST /containers/create?Image=kinvey%2Fblrunner%3Av0.3.8&AttachStdout=false&AttachStderr=false&ExposedPorts=&Tty=false&HostConfig=
INFO[44102] +job create()
@ cpuguy83 @ LK4D4 ์ด๋ค ์์ด๋์ด / ์ ๋ฐ์ดํธ?
๋ฌด์์ ์๊ฐํด์ผํ ์ง ๋ชฐ๋ผ. ๋์ปค ์ ๋ณด๋ ์ค๋จ๋๊ธฐ ๋๋ฌธ์ ์ํํธ์จ์ด ๊ต์ฐฉ ์ํ๊ฐ ์๋๋๋ค. ์ด๊ฒ์ด ๋ฉ๋ชจ๋ฆฌ ๋์ ์ผ ์ ์์ต๋๊น?
PID USER PR NI VIRT RES SHR S % CPU % MEM TIME + COMMAND
๋ฃจํธ 20 0 1314832 89688 11568 S 0.3 2.3 65 : 47.56 ๋์ปค
์ด๊ฒ์ด Docker ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๋์๊ฒ ๋ฉ๋ชจ๋ฆฌ ๋์์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค ...
๋๋ ๊ทธ๊ฒ์ ๋ํด "์ฐ๋ฆฌ๋"๋ผ๊ณ ๋งํ ๊ฒ์ด๋ค. ์ฐ๋ฆฌ๋ ํ ์คํธ ์ธํ๋ผ์ Docker๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋์ผํ ์กฐ๊ฑด / ์๋๋ฆฌ์ค ๋ด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๊ฒ์ Docker๊ฐ ๋ถํ ์ํ์์ ์ ๊ธด ๊ฒฝ์ฐ ์๋ฏธ์๋ ๋ฐฉ์์ผ๋ก Docker๋ฅผ ์ฌ์ฉํ๋ ๋ฅ๋ ฅ์ ์ํฅ์ ๋ฏธ์น ๊ฒ์ ๋๋ค.
์ ๋ณด๋ก ํ์ํ ๊ฒ์ ์๋ ค ์ฃผ์๋ฉด ๋ฌธ์ ํด๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๊บผ์ด ๊ธฐ๊บผ์ด ์ ๊ณตํ๊ฒ ์ต๋๋ค.
CentOS7 ํธ์คํธ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
$ docker version
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): ba1f6c3/1.6.2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): ba1f6c3/1.6.2
OS/Arch (server): linux/amd64
$ docker info
Containers: 7
Images: 672
Storage Driver: devicemapper
Pool Name: docker-253:2-67171716-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: xfs
Data file: /dev/mapper/vg01-docker--data
Metadata file: /dev/mapper/vg01-docker--metadata
Data Space Used: 54.16 GB
Data Space Total: 59.06 GB
Data Space Available: 4.894 GB
Metadata Space Used: 53.88 MB
Metadata Space Total: 5.369 GB
Metadata Space Available: 5.315 GB
Udev Sync Supported: true
Library Version: 1.02.93-RHEL7 (2015-01-28)
Execution Driver: native-0.2
Kernel Version: 3.10.0-229.7.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 8
Total Memory: 31.25 GiB
์ด๊ฒ์ ์ฐ๋ฆฌ CI ์์คํ ์์ ๋ฐ์ํ์ต๋๋ค. ๋ณ๋ ฌ ์์ ์๋ฅผ ๋ณ๊ฒฝ ํ ๋ค์ 4 ๊ฐ์ ์์ ์ ๋ณ๋ ฌ๋ก ์์ํ์ต๋๋ค. ๋ฐ๋ผ์ 4-6 ๊ฐ์ ์ปจํ ์ด๋๊ฐ ์คํ๋์์ต๋๋ค. ๋ก๋๋ ์ฝ 10 ๊ฐ์์ต๋๋ค (8 ๊ฐ ์ฝ์ด ์ค ์ผ๋ถ๋ ์ฌ์ ํ ์ ํด ์ํ ์).
๋ชจ๋ ์ปจํ
์ด๋๊ฐ ์ ์์ ์ผ๋ก ์๋ํ๋ ๋์ dockerd ์์ฒด๊ฐ ๋ฉ์ท์ต๋๋ค. docker images
์ (๋) ์ฌ์ ํ ์ด๋ฏธ์ง๋ฅผ ํ์ํ์ง๋ง docker ps
๋๋ docker info
์ ๊ฐ์ ๋ชจ๋ ๋ฐ๋ชฌ ๋ช
๋ น์ด ์ค๋จ๋์์ต๋๋ค.
๋ด strace๋ ์์ ๊ฒ๊ณผ ์ ์ฌํ์ต๋๋ค.
strace -p 1194
Process 1194 attached
futex(0x11d2838, FUTEX_WAIT, 0, NULL
์ ์ ํ ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ์์ (์ปดํ์ผ, ํ ์คํธ ..)์ ์๋ฃํ์ง๋ง ๋ ๋ค "๋ฐํ"๋์ง ์์์ต๋๋ค. ๋ง์น ๊ทธ๋ค์ด๋ ์ปค๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
๋ง์นจ๋ด dockerd๋ฅผ ์ฃฝ์์ ๋ ์ปจํ ์ด๋๋ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๋ก ์ข ๋ฃ๋์์ต๋๋ค.
time="2015-08-05T15:59:32+02:00" level=fatal msg="Post http:///var/run/docker.sock/v1.18/containers/9117731bd16a451b89fd938f569c39761b5f8d6df505256e172738e0593ba125/wait: EOF. Are you trying to connect to a TLS-enabled daemon without TLS?"
CI ํ๊ฒฝ์์ Centos 7์ @filex ์ ๋์ผํ ๊ฒ์๋ณด๊ณ ์์ต๋๋ค.
Containers: 1
Images: 19
Storage Driver: devicemapper
Pool Name: docker--vg-docker--pool
Pool Blocksize: 524.3 kB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 2.611 GB
Data Space Total: 32.17 GB
Data Space Available: 29.56 GB
Metadata Space Used: 507.9 kB
Metadata Space Total: 54.53 MB
Metadata Space Available: 54.02 MB
Udev Sync Supported: true
Deferred Removal Enabled: true
Library Version: 1.02.93-RHEL7 (2015-01-28)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-229.11.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 2
Total Memory: 7.389 GiB
Name: ip-10-1-2-234
ID: 5YVL:O32X:4NNA:ICSJ:RSYS:CNCI:6QVC:C5YR:XGR4:NQTW:PUSE:YFTA
Client version: 1.7.1
Client API version: 1.19
Package Version (client): docker-1.7.1-108.el7.centos.x86_64
Go version (client): go1.4.2
Git commit (client): 3043001/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Package Version (server): docker-1.7.1-108.el7.centos.x86_64
Go version (server): go1.4.2
Git commit (server): 3043001/1.7.1
OS/Arch (server): linux/amd64
์ฌ๊ธฐ์์๋ ๋์ผํฉ๋๋ค. docker๊ฐ ps, rm, stop, run, info ๋ฑ์ ์๋ตํ์ง ์์์ต๋๋ค. ๋ช ๋ฒ ์ฌ๋ถํ ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์ผ๋ก ๋์ ์์ต๋๋ค.
๋์ปค ์ ๋ณด ์ปจํ ์ด๋ : 25 ์ด๋ฏธ์ง : 1739 ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ : devicemapper ํ ์ด๋ฆ : docker-9 : 2-62521632-pool ํ ๋ธ๋ก ํฌ๊ธฐ : 65.54 kB ๋ฐฑ์ ํ์ผ ์์คํ : extfs ๋ฐ์ดํฐ ํ์ผ : / dev / loop0 ๋ฉํ ๋ฐ์ดํฐ ํ์ผ : / dev / loop1 ์ฌ์ฉ ๋ ๋ฐ์ดํฐ ๊ณต๊ฐ : 96.01GB ์ด ๋ฐ์ดํฐ ๊ณต๊ฐ : 107.4GB ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ณต๊ฐ : 11.36GB ์ฌ์ฉ ๋ ๋ฉํ ๋ฐ์ดํฐ ๊ณต๊ฐ : 110.5MB ์ด ๋ฉํ ๋ฐ์ดํฐ ๊ณต๊ฐ : 2.147GB ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉํ ๋ฐ์ดํฐ ๊ณต๊ฐ : 2.037GB Udev ๋๊ธฐํ ์ง์ : true ์ง์ฐ ์ ๊ฑฐ ํ์ฑํ : false ๋ฐ์ดํฐ ๋ฃจํ ํ์ผ : / var / lib / docker / devicemapper / devicemapper / data ๋ฉํ ๋ฐ์ดํฐ ๋ฃจํ ํ์ผ : / var / lib / docker / devicemapper / devicemapper / metadata ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ : 1.02.93-RHEL7 (2015-01-28) ์คํ ๋๋ผ์ด๋ฒ : native-0.2 ๋ก๊น ๋๋ผ์ด๋ฒ : json-file ์ปค๋ ๋ฒ์ : 3.10.0-229.11.1.el7.x86_64 ์ด์ ์ฒด์ : CentOS Linux 7 (์ฝ์ด) CPU : 8 ์ด ๋ฉ๋ชจ๋ฆฌ : 31.2GiB ์ด๋ฆ : CentOS-70-64-minimal ID : EM3I : PELO : SBH6 : JRVL : AM6C : UM7W : XJWJ : FI5N : JO77 : 7PMF : S57A : PLAT
๋์ปค ๋ฒ์ ํด๋ผ์ด์ธํธ ๋ฒ์ : 1.7.1 ํด๋ผ์ด์ธํธ API ๋ฒ์ : 1.19 ํจํค์ง ๋ฒ์ (ํด๋ผ์ด์ธํธ) : docker-1.7.1-108.el7.centos.x86_64 Go ๋ฒ์ (ํด๋ผ์ด์ธํธ) : go1.4.2 Git ์ปค๋ฐ (ํด๋ผ์ด์ธํธ) : 3043001 / 1.7.1 OS / Arch (ํด๋ผ์ด์ธํธ) : linux / amd64 ์๋ฒ ๋ฒ์ : 1.7.1 ์๋ฒ API ๋ฒ์ : 1.19 ํจํค์ง ๋ฒ์ (์๋ฒ) : docker-1.7.1-108.el7.centos.x86_64 Go ๋ฒ์ (์๋ฒ) : go1.4.2 Git ์ปค๋ฐ (์๋ฒ) : 3043001 / 1.7.1 OS / Arch (์๋ฒ) : linux / amd64
๋๋ 1.6.2์ 1.8.2๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋์ปค ์ค์ ๋ ๋ถํ๋ก ์ธํด ๋ น๊ณ ์์ต๋๋ค. Docker ์์ ๋๊ธฐ์ด์ด ์๋ก์ด ํธ์ถ์ด ๋ช ๋ถ ๊ฑธ๋ฆฌ๋ ์ง์ ๊น์ง ์ฒ์ฒํ ์ฑ์์ง๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ผ ์์คํ ์ ์กฐ์ ํ๊ณ ์ปจํ ์ด๋ ์๋ฅผ ์ ๊ฒ ์ ์งํ๋ฉด ์ํฉ์ด ์ข ๋ ๋์์ง๋๋ค. ๋๋ ์ฌ์ ํ ๋ช ๊ฐ์ง ํจํด์ ์ฐพ๊ณ ์์ต๋๋ค.
$ docker version
Client:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 44b3b67
Built: Mon Sep 14 23:56:40 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 44b3b67
Built: Mon Sep 14 23:56:40 UTC 2015
OS/Arch: linux/amd64
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ์ด ์ค๋ ๋๋ฅผ ๋ฐ๊ฒฌํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค. ์ง๋ 2 ์ฃผ ๋์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ํ์ธํ๋ ค๊ณ ๋ง์์ ์์์ต๋๋ค.
๋์์ ์์๋๋ ์ปจํ
์ด๋์ ์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ณ ์ ์ ์ธ ๊ต์ฐฉ ์ํ์ ๊ฒฝ์ฐ์ฒ๋ผ ๋ณด์
๋๋ค.
์ ๊ฒฝ์ฐ์๋ ๋์์ ์์๋๋ ์ปจํ ์ด๋๋ก ๊ฐ๋ ์ฐฌ ์์ ๋ถ๊ณผํ์ต๋๋ค (์๋ง๋ 3-5). ๊ทธ๋ฌ๋ ๊ทธ๋ค ๋ชจ๋๋ ๋ฐ๋ชฌ์ ์ถ๊ฐ ์คํธ๋ ์ค๋ฅผ ์ค ์์๋ STDIN (๋์ปค ์คํ์)์ ํตํด ํฐ ์ ๋ ฅ ์คํธ๋ฆผ์ ์์ ํฉ๋๋ค.
@filex ๋ ๋น์ทํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. 1.8.2๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ ์๋ ์ด๋ฌํ ๋๊ฒฐ์ ์ง๋ฉดํ์ง ์์์ง๋ง
์ค๋ ๋๋ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๋๋ค-docker ps frozen, docker๋ 100 % cpu๋ฅผ ๋จน์ต๋๋ค.
์ด์ ๋ด datadog-agent๊ฐ์ด ์ต์
์ ์ฌ์ฉํ์ฌ ์ปจํ
์ด๋์ ๋ํด ๋ฃจํ์์ docker๋ฅผ ์์ฒญํ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
collect_container_size: true
๊ทธ๋์ ๋๋ ๋งค์ฐ ์ด๋ ค์ด ์์ ์ผ๋ก ๋ฌดํ ๋ฃจํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค (10k ์ด์์ ์ปจํ ์ด๋๊ฐ ์์ต๋๋ค). ๋ด๊ฐ datadog docker ํตํฉ์ ์ค์ง ํ ํ ์์คํ runnig ok-docker ps๊ฐ ์๋ํ๊ณ docker๋ 0 % cpu๋ฅผ ๋จน์ต๋๋ค.
๋๋ cadvisor๋ก ์คํํ๊ณ ์๊ณ ๊ทธ๊ฒ์ ๋ํ ๋์ปค๋ฅผ ๋ น์ด๊ณ ์์ต๋๋ค.
๋น์ ์ ๋ฐ๊ฒฌ์ ๋ํด ๋ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
2015 ๋ 10 ์ 1 ์ผ ๋ชฉ์์ผ 00:23 Alexander Vagin [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์ค๋ ๋๋ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๋๋ค-docker ps frozen, docker๋ 100 % cpu๋ฅผ ๋จน์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๋ด datadog-agent๊ฐ ๋ฃจํ์์ ๋์ปค์๊ฒ ๋ฌผ์ด ๋ดค์ต๋๋ค.
์ด ์ต์ ์ด์๋ ์ปจํ ์ด๋ :collect_container_size : true
๊ทธ๋์ ๋๋ ๋งค์ฐ ์ด๋ ค์ด ์์ ์ผ๋ก ๋ฌดํ ๋ฃจํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค (๋๋ 10k ์ด์
์ฉ๊ธฐ). ๋ฐ์ดํฐ ๋ ๋์ปค ํตํฉ์ ์ค์ง ํ ํ ์์คํ ์คํ ํ์ธ-
docker ps๊ฐ ์๋ํ๊ณ docker๋ 0 % cpu๋ฅผ ๋จน์ต๋๋ค.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/docker/docker/issues/13885#issuecomment -144546581.
@ohade ๋ด ๋์ปค๋ ์ฐ์ค ๋ฌดํด๋ก ์๋ํ์ง ์์ต๋๋ค. ๋งค๋ฒ 60-80 ๊ฐ์ ์์๋ ์ปจํ
์ด๋๊ฐ ์์ต๋๋ค. ํ๋ฃจ์ ์ฝ 1500 ๊ฐ์ ์ ์ปจํ
์ด๋๊ฐ ์์ต๋๋ค. ๊ทธ๋์์ด ๋ถํ๋ก ์ธํด ๊ณ ์ ๋๊ณ ๋์ปค์์๋ง (์์คํ
์ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ, io, cpu๊ฐ ๋ง์) ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋๊ตฐ๊ฐ๊ฐ ๋ก๊ทธ (/var/log/upstart/docker.logs)์์ ๋ด ๋์ปค์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๊ฒ์ด ๋๊ตฌ์ธ์ง ์ฐพ์์ต๋๋ค :)
๋ฌด์์ ๋ ๋งํฉ๋๊น?
:) ์ ๋ ๊ทธ ์์ด์ ํธ๊ฐ ๋์ปค์ ์ผ๋ถ์ด๋ฉฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
๋๋ฌด ํ์ธํ๊ฑฐ๋ ์ธ๋ถ ์์ด์ ํธ์
๋๊น?
2015 ๋ 10 ์ 1 ์ผ ๋ชฉ์์ผ 14:03 Alexander Vagin [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@ohade https://github.com/ohade ๋ด๋ ์ปค๊ฐ ๋ฉ์ถ์ง ์๊ณ ์๋ํฉ๋๋ค.
24/7. ๋งค๋ฒ 60-80 ๊ฐ์ ์์๋ ์ปจํ ์ด๋๊ฐ ์์ต๋๋ค. ๋๋ ์ฝ 1500 ๊ฐ์ ์๋ก์ด
ํ๋ฃจ์ ์ฉ๊ธฐ. ๊ทธ๋์์ด ๋ถํ๋ก๋ดค์ ๋ ์ผ์ด ๋ถ๊ณ
๋์ปค์์๋ง (์์คํ ์ ๋ง์ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ, io, cpu๊ฐ ์์), ๋๋
์ผ๋ฐ์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
๋๊ตฐ๊ฐ ๋ก๊ทธ์์ ๋ด ๋์ปค์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
(/var/log/upstart/docker.logs). ๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๊ฒ์ด ๋๊ตฌ์ธ์ง ์ฐพ์์ต๋๋ค :)
๋ฌด์์ ๋ ๋งํฉ๋๊น?โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/docker/docker/issues/13885#issuecomment -144697619.
@ohade ์๋, ๋์ปค์ ์ผ๋ถ๊ฐ ์๋๋๋ค. ๋์ปค ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. Docker์ ๋ํ ๊ณผ๋ํ ์์ฒญ์ด ์๋์ง ํ๊ฒฝ์ ํ์ธํด์ผํฉ๋๋ค.
๋์ปค 1.8.2๋ก ์ ๋ฐ์ดํธ ํ ์ดํ์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ์ง์ ์ด ์์ต๋๊น? ํ ์คํธ ์ธํ๋ผ์์ ๋ง์ ์ ๋๋ ์๋ช ์ด ์งง์ ์ปจํ ์ด๋๋ฅผ ํ์ ํ๊ณ ์์ผ๋ฉฐ ํ๋ฃจ์ ํ ๋ฒ ์ด์์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค.
docker version
Client:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 0a8c2e3
Built: Thu Sep 10 19:12:52 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 0a8c2e3
Built: Thu Sep 10 19:12:52 UTC 2015
OS/Arch: linux/amd64
Linux ๋ฒ์ :
$ uname -a
Linux grpc-interop1 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3~bpo70+1 (2015-08-08) x86_64 GNU/Linux
1.8.3์ผ๋ก ์ด๋ํ์ต๋๋ค.
# docker version
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: f4bf5c7
Built: Mon Oct 12 06:06:01 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: f4bf5c7
Built: Mon Oct 12 06:06:01 UTC 2015
OS/Arch: linux/amd64
๊ทธ๋ฌ๋ ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฒ์์๋ ๋ฉฐ์น ์ ํ ๋ฒ, ๋์ค์๋ ํ๋ฃจ์ 10 ๋ฒ๊น์ง ๊ณ์ ์ถฉ๋ํ์ต๋๋ค. ์ฅ์น ๋งคํผ / ๋ฃจํ๋ฐฑ์ด์๋ CentOS 7์์ AUFS๊ฐ ์ ๋ ฌ ๋ Ubuntu 14.04 LTS๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ํ์ธํ์ต๋๋ค. https://github.com/docker/docker/issues/12606#issuecomment -149659953
์ด kubernetes์ e2e ํ ์คํธ๋ฅผ ๋ฃจํ์์ ์คํํ์ฌ ๋ฌธ์ ๋ฅผ ์์ ์ ์ผ๋ก ์ฌํ ํ ์ ์์ต๋๋ค.
๋ฐ๋ชฌ์ ์ถ์ ๋ก๊ทธ๋ฅผ ์ก์์ต๋๋ค. ๊ต์ฐฉ ์ํ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์ ๊ณ ๋ฃจํด์ด semacquire
์ ๊ฑธ๋ ค ์์ต๋๋ค.
goroutine 8956 [semacquire, 8 minutes]:
sync.(*Mutex).Lock(0xc208961650)
/usr/lib/go/src/sync/mutex.go:66 +0xd3
github.com/docker/docker/daemon.funcยท028(0xc20861c1e0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/daemon/list.go:84 +0xfc
github.com/docker/docker/daemon.(*Daemon).Containers(0xc2080a50a0, 0xc209ec4820, 0x0, 0x0, 0x0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/daemon/list.go:187 +0x917
github.com/docker/docker/api/server.(*Server).getContainersJSON(0xc208032540, 0xc3f700, 0x4, 0x7f214584f110, 0xc20a306d20, 0xc209d4a9c0, 0xc20a09fa10, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/api/server/server.go:562 +0x3ba
github.com/docker/docker/api/server.*Server.(github.com/docker/docker/api/server.getContainersJSON)ยทfm(0xc3f700, 0x4, 0x7f214584f110, 0xc20a306d20, 0xc209d4a9c0, 0xc20a09fa10, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/api/server/server.go:1526 +0x7b
github.com/docker/docker/api/server.funcยท008(0x7f214584f110, 0xc20a306d20, 0xc209d4a9c0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/api/server/server.go:1501 +0xacd
net/http.HandlerFunc.ServeHTTP(0xc208033380, 0x7f214584f110, 0xc20a306d20, 0xc209d4a9c0)
/usr/lib/go/src/net/http/server.go:1265 +0x41
github.com/gorilla/mux.(*Router).ServeHTTP(0xc2080b1090, 0x7f214584f110, 0xc20a306d20, 0xc209d4a9c0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/vendor/src/github.com/gorilla/mux/mux.go:98 +0x297
net/http.serverHandler.ServeHTTP(0xc20804f080, 0x7f214584f110, 0xc20a306d20, 0xc209d4a9c0)
/usr/lib/go/src/net/http/server.go:1703 +0x19a
net/http.(*conn).serve(0xc208743680)
/usr/lib/go/src/net/http/server.go:1204 +0xb57
created by net/http.(*Server).Serve
/usr/lib/go/src/net/http/server.go:1751 +0x35e
์ฌ๊ธฐ์ ์ ์ฒด ์ถ์ :
https://gist.github.com/yifan-gu/ac0cbc2a59a7b8c3fe2d
์ต์ ๋ฒ์ ์์ ํ ์คํธ๋ฅผ ์๋ํฉ๋๋ค.
์ฌ์ ํ 1.7.1๋ก ๋ค๋ฅธ ์คํ์ ์๋ํ์ง๋ง ์ด๋ฒ์๋ ๋ ํฅ๋ฏธ๋ก์ด ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
goroutine 114 [syscall, 50 minutes]:
syscall.Syscall6(0x3d, 0x514, 0xc2084e74fc, 0x0, 0xc208499950, 0x0, 0x0, 0x44199c, 0x441e22, 0xb28140)
/usr/lib/go/src/syscall/asm_linux_amd64.s:46 +0x5
syscall.wait4(0x514, 0xc2084e74fc, 0x0, 0xc208499950, 0x90, 0x0, 0x0)
/usr/lib/go/src/syscall/zsyscall_linux_amd64.go:124 +0x79
syscall.Wait4(0x514, 0xc2084e7544, 0x0, 0xc208499950, 0x41a768, 0x0, 0x0)
/usr/lib/go/src/syscall/syscall_linux.go:224 +0x60
os.(*Process).wait(0xc2083e2b20, 0xc20848a860, 0x0, 0x0)
/usr/lib/go/src/os/exec_unix.go:22 +0x103
os.(*Process).Wait(0xc2083e2b20, 0xc2084e7608, 0x0, 0x0)
/usr/lib/go/src/os/doc.go:45 +0x3a
os/exec.(*Cmd).Wait(0xc2083c9a40, 0x0, 0x0)
/usr/lib/go/src/os/exec/exec.go:364 +0x23c
github.com/docker/libcontainer.(*initProcess).wait(0xc20822cf30, 0x1b6, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/vendor/src/github.com/docker/libcontainer/process_linux.go:194 +0x3d
github.com/docker/libcontainer.Process.Wait(0xc208374a30, 0x1, 0x1, 0xc20839b000, 0x47, 0x80, 0x127e348, 0x0, 0x127e348, 0x0, ...)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/vendor/src/github.com/docker/libcontainer/process.go:60 +0x11d
github.com/docker/libcontainer.Process.Waitยทfm(0xc2084e7ac8, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/daemon/execdriver/native/driver.go:164 +0x58
github.com/docker/docker/daemon/execdriver/native.(*driver).Run(0xc20813c230, 0xc20832a900, 0xc20822cc00, 0xc208374900, 0x0, 0x41a900, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/daemon/execdriver/native/driver.go:170 +0xa0a
github.com/docker/docker/daemon.(*Daemon).Run(0xc2080a5880, 0xc2080a21e0, 0xc20822cc00, 0xc208374900, 0x0, 0xc2084b6000, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/daemon/daemon.go:1068 +0x95
github.com/docker/docker/daemon.(*containerMonitor).Start(0xc20853d180, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/daemon/monitor.go:138 +0x457
github.com/docker/docker/daemon.*containerMonitor.Startยทfm(0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/daemon/container.go:732 +0x39
github.com/docker/docker/pkg/promise.funcยท001()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/pkg/promise/promise.go:8 +0x2f
created by github.com/docker/docker/pkg/promise.Go
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.7.1-r4/work/docker-1.7.1/.gopath/src/github.com/docker/docker/pkg/promise/promise.go:9 +0xfb
๋๋ ์ฌ๊ธฐ์ ๊ทธ๋ฐ ๊ณ ๋ฃจํด์ด ๋งค๋ฌ๋ ค์๋ ๊ฒ์ ๋ณด์๋ค. Container.Start()
๊ฐ ์ค๋จ๋๋ฉด ์ปจํ
์ด๋ ์ ๊ธ์ด ํด์ ๋์ง ์๊ณ ๋ค์ docker ps
์ด ๋ชจ๋ ์ค๋จ๋ฉ๋๋ค. (์ด๊ฒ์ v.1.9.0-rc1์์๋ ๋ง์ฐฌ๊ฐ์ง์ธ ๊ฒ ๊ฐ์ต๋๋ค)
๋๋ ํ์คํ์ง ์ ๋๋ ๋น๋ก Container.Start()
์ด ์ค๋จ์ด๊ฐ ์ ์ผํ ์์ธ์ธ์ง docker ps
๋์ต๋๋ค.
https://github.com/docker/docker/blob/v1.9.0-rc1/daemon/container.go#L243
https://github.com/docker/docker/blob/v1.9.0-rc1/daemon/container.go#L304
https://github.com/docker/docker/blob/v1.9.0-rc1/daemon/list.go#L113
์ด์จ๋ ๊ทธ๋ฌํ syscall ์ ์ ๋ฎคํ ์ค๋ฅผ ๋ณด์ ํ์ง ์๋๋ก ๋ ธ๋ ฅํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๊ฒ์ ๋์๊ฒ ์ค์ํ ๋ฌธ์ ์ ๋๋ค. Docker์ ๋๊ตฐ๊ฐ๊ฐ ์ด๊ฒ์ ์กฐ์ฌํ๊ณ ์์ต๋๊น?
ํ @ LK4D4 @tiborvass ^^ https://github.com/docker/docker/issues/13885#issuecomment -149767470
docker 1.8.2์์ ๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฐ๋ชฌ์ ์ผ์์ ์ธ ๋์ถ์ด๋ ๊ธฐํ ๋์ถ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋น ๋ฅธ ์์ฑ / ์ญ์ ์คํธ๋ ์ค๋ฅผ ๋ฐ์ผ๋ฉด docker ps
์ (๋) ์๋ฃํ๋ ๋ฐ ์์ํ ๊ฑธ๋ฆฌ๊ณ ๊ฒฐ๊ตญ docker ๋ฐ๋ชฌ์ ํด์์ ์๊ฒ๋ฉ๋๋ค.
1.8.2์ ๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋๋ 1.9 rc2๋ฅผ ์๋ํ๊ณ ๋น์ทํ ๋ฌธ์ , ๋ง์ ์ค๋จ ๋ฐ docker ๋ฐ๋ชฌ์ ๋ค์ ์์ํ๋๋ฐ ๋๋ก๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ง๋ง ๋ ์์ฃผ ๊ทธ๋ ์ง ์์์ต๋๋ค.
๋ฌด์ธ๊ฐ๊ฐ ์ธ์ ๋ฉ์ถ๋ ์ง ๊ถ๊ธํฉ๋๋ค. ์ฃฝ๊ธฐ๊น์ง ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์?
๊ทธ๋ฅ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋๋ฉด ๋ค์ ๋์ ์ค๋์?
์๊ฐ์ ์ ํ์ง๋ ์์์ง๋ง ์ ์ด๋ 20 ๋ถ์ด ๋์๋ค ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ๋๋ docker-compose kill vs. stop์ ์ฌ์ฉํ๊ธฐ ์์ํ์ผ๋ฉฐ ๋ ์ข์ ๋ณด์ด์ง๋ง ์๊ฐ์ด ์๋ ค์ค ๊ฒ์ ๋๋ค. ๋ก๊ทธ์์๋ ๋ถ๋ช ํ ๊ฒ์ด ๋ณด์ด์ง ์์ต๋๋ค.
centos 7.1, docker 1.8.2์์๋ ๋ณผ ์ ์์ต๋๋ค. ๋ด ์ง๊ฐ์ ๊ทธ๊ฒ์ด ๋ฐ์ดํฐ ๋งคํผ / ๋ฃจํ๋ฐฑ ๋ฌธ์ ๋ผ๊ณ ๋งํด์ค๋๋ค.
๋ค์ ๋ชฉ๋ก์ ์ด๊ฒ์ ์๋ํ๋ ๊ฒ์ ๋๋ค : https://github.com/projectatomic/docker-storage-setup (h / t @ibuildthecloud )
๋ํ ์ด๊ฒ์ ๊ฒฝํํ๊ณ ๋ฌด๊ฑฐ์ด ๋ถํ๊ฐ ์๋๋๋ค.
Centos 7
Docker ๋ฒ์
Client:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 0a8c2e3
Built: Thu Sep 10 19:08:45 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 0a8c2e3
Built: Thu Sep 10 19:08:45 UTC 2015
OS/Arch: linux/amd64
Docker ์ ๋ณด
Containers: 4
Images: 40
Storage Driver: devicemapper
Pool Name: docker-202:1-25190844-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 2.914 GB
Data Space Total: 107.4 GB
Data Space Available: 81.05 GB
Metadata Space Used: 4.03 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.143 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.93-RHEL7 (2015-01-28)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-123.8.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 4
Total Memory: 6.898 GiB
Name: ip-10-50-185-203
ID: EOMR:4G7Y:7H6O:QOXE:WW4Z:3R2G:HLI4:ZMXY:GKF3:YKSK:TIHC:MHZF
[centos@ip-10-50-185-203 ~]$ uname -a
Linux ip-10-50-185-203 3.10.0-123.8.1.el7.x86_64 #1 SMP Mon Sep 22 19:06:58 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
docker ์ด๋ฏธ์ง๋ ์๋ํ์ง๋ง docker ps๊ฐ ์ค๋จ๋ฉ๋๋ค.
strace ์ถ๋ ฅ์ ๋ง์ง๋ง ๋ช ์ค :
clock_gettime(CLOCK_MONOTONIC, {2393432, 541406232}) = 0
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
connect(3, {sa_family=AF_LOCAL, sun_path="/run/systemd/journal/socket"}, 30) = 0
epoll_create1(EPOLL_CLOEXEC) = 4
epoll_ctl(4, EPOLL_CTL_ADD, 3, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=2856433208, u64=139812631852600}}) = 0
getsockname(3, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(3, {sa_family=AF_LOCAL, sun_path="/run/systemd/journal/socket"}, [30]) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 542834304}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 542897330}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543010460}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543090332}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543157219}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543208557}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543306537}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543364486}) = 0
clock_gettime(CLOCK_REALTIME, {1446718224, 108316907}) = 0
mmap(0xc208100000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc208100000
mmap(0xc207fe0000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc207fe0000
clock_gettime(CLOCK_MONOTONIC, {2393432, 543814528}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543864338}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 543956865}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 544018495}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 544402150}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 544559595}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 544607443}) = 0
clock_gettime(CLOCK_REALTIME, {1446718224, 109474379}) = 0
epoll_wait(4, {{EPOLLOUT, {u32=2856433208, u64=139812631852600}}}, 128, 0) = 1
clock_gettime(CLOCK_MONOTONIC, {2393432, 544968692}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 545036728}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 545095771}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 545147947}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 545199057}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 545251039}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 545308858}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 545756723}) = 0
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_REALTIME, {1446718224, 112187655}) = 0
clock_gettime(CLOCK_REALTIME, {1446718224, 112265169}) = 0
clock_gettime(CLOCK_REALTIME, {1446718224, 112345304}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 547677486}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 547743669}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 547801800}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 547864215}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 547934364}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 548042167}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 548133574}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 548209405}) = 0
clock_gettime(CLOCK_REALTIME, {1446718224, 113124453}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 548493023}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 548566472}) = 0
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
futex(0xc208020ed8, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {2393432, 549410983}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 549531015}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 549644468}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 549713961}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 549800266}) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 549864335}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
stat("/root/.docker/config.json", 0xc208052900) = -1 ENOENT (No such file or directory)
stat("/root/.dockercfg", 0xc208052990) = -1 ENOENT (No such file or directory)
clock_gettime(CLOCK_REALTIME, {1446718224, 115099477}) = 0
clock_gettime(CLOCK_REALTIME, {1446718224, 115153125}) = 0
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 5
setsockopt(5, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
connect(5, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, 23) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 550603891}) = 0
clock_gettime(CLOCK_REALTIME, {1446718224, 115517051}) = 0
epoll_ctl(4, EPOLL_CTL_ADD, 5, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=2856433016, u64=139812631852408}}) = 0
getsockname(5, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(5, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, [23]) = 0
clock_gettime(CLOCK_MONOTONIC, {2393432, 550961223}) = 0
read(5, 0xc208131000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {2393432, 551138398}) = 0
write(5, "GET /v1.20/containers/json HTTP/"..., 108) = 108
epoll_wait(4, {{EPOLLOUT, {u32=2856433016, u64=139812631852408}}}, 128, 0) = 1
epoll_wait(4,
@chbatey ๋๊ธ์ ํธ์งํ๊ณ docker version
์ถ๋ ฅ์ ์ถ๊ฐ ํ ์ ์์ต๋๊น?
๋์ ๋ด ์ผ๊ตด์ ๋นจ๊ฐ๊ฒ ์น ํด. ๋๋ฒ๊ทธ์์ ๋ฐ๋ชฌ์ ์คํํ๊ณ cifs ๋ง์ดํธ๊ฐ ์ค๋จ ๋ ๊ณต์ ๋ณผ๋ฅจ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ผ๋จ ๋ด๊ฐ ๊ทธ๊ฒ์ ์ฒ๋ฆฌํ๋ฉด ์ด์ ๋ ์ ์๋ํฉ๋๋ค.
@pspierce ๋ฌธ์ ์์ต๋๋ค. ๋ค์ ์ ๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋๋ ์ด๊ฒ์ด 1.9์์ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์๋์ง ๋ฃ๊ณ ์ถ์ต๋๋ค.
๋ํ centos 7.1์์ 1.8.2๋ก์ด ํ์์ด ์์ฃผ ๋ฐ์ํ์ง๋ง ์ดํ๋ฅ ์ด ๋์ ํธ์คํธ์์๋ง ๋ฐ์ํฉ๋๋ค (~ 2,100 ์ปจํ ์ด๋ / ์๊ฐ). ๋์ผํ๊ฒ ๊ตฌ์ฑ๋ ํธ์คํธ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ ๊ฐ์ง๋ง ๋ณผ๋ฅจ (์๊ฐ๋น ์ต๋ 300 ๊ฐ ์ปจํ ์ด๋)์ ํธ์คํธ์ ์ํฅ์์ฃผ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ๋ง์ ๋์ ์์ ์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ ์ผ์ข ์ ๊ต์ฐฉ ์ํ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ ~ / 6 ์๊ฐ์ ๋์ ์ดํ ํ๋์ ๋ด ๋๋ค. ์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ ์ฐพ์ ์ ์ผํ ํด๊ฒฐ์ฑ ์ '/ var / lib / docker / containers'๋ฅผ ์คํํ๊ณ '/ var / lib / docker / containers'
์ฐ๋ฆฌ๋ ์ด๋ฒ ์ฃผ์ 1.9๋ฅผ ์๋ํ๊ณ ๊ทธ๊ฒ์ด ์ ํ ๋์์ด๋๋์ง ๋ณผ ๊ฒ์ ๋๋ค (์๊ฐ๋ฝ์ด ๊ต์ฐจํ์ต๋๋ค!). fwiw, ์ฐ๋ฆฌ๋ 1.6.2์์ ์ด๋ฌํ ์ ์ง์ ์ธ ์๋ต ์ฑ ์ ํ (๋ฐ ์ต์ข ๊ต์ฐฉ ์ํ)๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ์ฌ ์ค์ :
PRODUCTION [[email protected] ~]$ docker -D info
Containers: 8
Images: 41
Storage Driver: overlay
Backing Filesystem: xfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.3.0-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 4
Total Memory: 7.796 GiB
Name: cc-docker01.prod.iad01.treehouse
ID: AB4S:SO4Z:AEOS:MC3H:XPRV:SIH4:VE2N:ELYX:TA5S:QQWP:WDAP:DUKE
Username: xxxxxxxxxxxxxx
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
PRODUCTION [[email protected] ~]$ docker -D version
Client:
Version: 1.8.2
API version: 1.20
Package Version: docker-1.8.2-7.el7.centos.x86_64
Go version: go1.4.2
Git commit: bb472f0/1.8.2
Built:
OS/Arch: linux/amd64
Server:
Version: 1.8.2
API version: 1.20
Package Version:
Go version: go1.4.2
Git commit: bb472f0/1.8.2
Built:
OS/Arch: linux/amd64
๋ํ ์ฐ๋ถํฌ 14.04์์ 8 ๊ฐ์ ์ปจํ ์ด๋ ๋ง ์คํ๋์ง๋ง ๋์คํฌ ๋ฐ CPU ๋ถํ๊ฐ ๋์ต๋๋ค. ์ปจํ ์ด๋๋ ์๋ฃ๋๋ฉด ๋ค์ ์์๋๋ฏ๋ก ํญ์ 8 ๊ฐ๊ฐ ์คํ๋ฉ๋๋ค. ๋ฐ๋ชฌ์ ์๋ฐฑ์์ ์์ฒ ๊ฐ์ ๋์ ์ปจํ ์ด๋ ์คํ ํ์ ์ฃฝ์ด ๊ฐ๊ณ ์์ต๋๋ค. ๋ฃจํ๋ฐฑ์ ์คํํ ๋ ๋ฐ๋ชฌ์ด ๋ฉ์ถ๋ ๊ฒ์ ๋ณด์ง ๋ชปํ์ง๋ง ์ฌํ์ ์ฌ์ฉํ์ฌ ์ง๋ ๋ฉฐ์น ๋์ ๋ ๋ฒ ๋ฐ์ํ์ต๋๋ค. ์ด๊ฒ์ 64GB RAM์ด์๋ 40 ์ฝ์ด ์ํฌ ์คํ ์ด์ ์ ์์ต๋๋ค.
Docker ๋ฒ์ :
~ $ ๋์ปค ๋ฒ์
๊ณ ๊ฐ:
๋ฒ์ : 1.9.1
API ๋ฒ์ : 1.21
Go ๋ฒ์ : go1.4.2
ํ๋ด ์ปค๋ฐ : a34a1d5
๊ฑด์ถ : 2015 ๋
11 ์ 20 ์ผ ๊ธ์์ผ 13:12:04 UTC
OS / ์์น : linux / amd64
์ฌ๊ธฐ๋ ์ฌ๋:
๋ฒ์ : 1.9.1
API ๋ฒ์ : 1.21
Go ๋ฒ์ : go1.4.2
ํ๋ด ์ปค๋ฐ : a34a1d5
๊ฑด์ถ : 2015 ๋
11 ์ 20 ์ผ ๊ธ์์ผ 13:12:04 UTC
OS / ์์น : linux / amd64
--- Docker ์ด๋ฏธ์ง๊ฐ ์๋ํ์ง๋ง docker ps๊ฐ ์ค๋จ๋ฉ๋๋ค. ๋์ปค ์ ๋ณด๋ ์ค๋จ๋ฉ๋๋ค. ๋ค์์ docker ps์ ๋ํ strace์ ๋์
๋๋ค.
์์ผ (PF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0) = 3
setsockopt (3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
connect (3, {sa_family = AF_LOCAL, sun_path = "/ var / run / docker.sock"}, 23) = 0
epoll_create1 (EPOLL_CLOEXEC) = 4
epoll_ctl (4, EPOLL_CTL_ADD, 3, {EPOLLIN | EPOLLOUT | EPOLLRDHUP | EPOLLET, {u32 = 3565442144, u64 = 140517715498080}}) = 0
getsockname (3, {sa_family = AF_LOCAL, NULL}, [2]) = 0
getpeername (3, {sa_family = AF_LOCAL, sun_path = "/ var / run / docker.sock"}, [23]) = 0
read (3, 0xc208506000, 4096) = -1 EAGAIN (์ผ์์ ์ผ๋ก ์ฌ์ฉํ ์์๋ ๋ฆฌ์์ค)
write (3, "GET /v1.21/containers/json HTTP /"..., 108) = 108
epoll_wait (4, {{EPOLLOUT, {u32 = 3565442144, u64 = 140517715498080}}}, 128, 0) = 1
epoll_wait (4,
1.7.1 ๋ฏธ๋ง์ด์๊ณ ๋งค์ฐ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ์ต๋๋ค (1.7.1 ๋ฏธ๋ง์์ ๋ช ์๊ฐ๋ง๋ค ํ์ธํ์ง๋ง 1 ๊ฐ์ ์ด์์ ์ฌํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์์์ต๋๋ค).
udevadm control --timeout=300
RHEL7.1์ ์คํํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋ณ๊ฒฝ์์ด Docker 1.8.2๋ก ์ ๊ทธ๋ ์ด๋ํ๊ณ ๋ช ์๊ฐ ๋ด์ ์ฑ์ด ์ ๊ฒผ์ต๋๋ค. Strace :
``
[pid 4200] open ( "/ sys / fs / cgroup / freezer / system.slice / docker-bcb29dad6848d250df7508f85e78ca9b83d40f0e22011869d89a176e27b7ef87.scope / freezer.state", O_RDONLY | O_CLOEXEC) = 36
[pid 4200] fstat (36, {st_mode = S_IFREG | 0644, st_size = 0, ...}) = 0
[pid 4239] <... ์ฌ๊ฐ ์ ํ>) = 0 (์๊ฐ ์ด๊ณผ)
[pid 4200] ์ฝ๊ธฐ (36,
[pid 4200] read (36, "", 1527) = 0
[pid 4200] close (36) = 0
[pid 4200] futex (0x1778e78, FUTEX_WAKE, 1
[pid 5252] <... ํจ ํ
์ค ์ฌ๊ฐ ๋จ>) = 0
[pid 4200] <... futex ์ฌ๊ฐ ๋จ>) = 1
[pid 5252] futex (0xc2085daed8, FUTEX_WAIT, 0, NULL
[pid 4200] <... futex ์ฌ๊ฐ ๋จ>) = 0
[pid 5252] epoll_wait (4,
[pid 5252] futex (0xc2085daed8, FUTEX_WAIT, 0, NULL
์ฐ๋ฆฌ๋ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค https://github.com/giantswarm/giantswarm/issues/289
์
๋ฐ์ดํธ : ์ธํฐ๋ฆฌ๋ธ ๋ docker run
/ docker rm
์ ๋ํ ๋ด ๊ฐ์ค์ด ๋ถ๊ฑด์ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๋์์ ๋ง์ docker run
์๋ํ์ง๋ง ๋์์ ํธ๋ฆฌ๊ฑฐํ๊ธฐ์ ์ถฉ๋ถํ์ต๋๋ค. ๋ํ dm thinpool๋ก ์ ํํ๋ ค๊ณ ์๋ํ์ง๋ง ๋์์ด๋์ง ์์์ต๋๋ค. ๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋จ์ํ ์ฌ๋ฌ ์ปจํ
์ด๋๊ฐ "๋์ผ"์๊ฐ์ ์์๋์ง ์๋๋กํ๋ ๊ฒ์
๋๋ค. ์ฆ, ์์ ์ฌ์ด์ ์ต์ ~ 10-30 ์ด ๊ฐ๊ฒฉ์ ์ถ๊ฐํฉ๋๋ค. ์ด์ ๋ฐ๋ชฌ์ 2 ์ฃผ ์ด์ ๋ฌธ์ ์์ด ์คํ๋ฉ๋๋ค. ์
๋ฐ์ดํธ ์ข
๋ฃ.
ํ์ธ์ ํ๋ ๋ ์ถ๊ฐํ๊ธฐ ์ํด 1.9.0์์์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ ๋ฒ์ ์ต๋ 8 ๊ฐ์ ์ปจํ
์ด๋ (์ฝ์ด ๋น 1 ๊ฐ)๋ฅผ ์์ฑํ์ง ์๊ณ ์๊ฐ๋น 40 ๊ฐ๋ฅผ ๋์ง ์์ต๋๋ค. ์๋ณธ ๋ณด๊ณ ์์ ๊ณตํต์ ์ค ํ๋๋ docker run
๋ฐ docker rm -f
์ธํฐ๋ฆฌ๋ธ ํธ์ถ๋ ๋ช ๋ฒ ์ํํ๋ค๋ ๊ฒ์
๋๋ค. ๋ด ์ง๊ฐ์ ๊ต์ฐฉ ์ํ๋ฅผ ์ ๋ฐํ๋ ๋์ ์ปจํ
์ด๋ ์์ฑ ๋ฐ ์ญ์ ์ ์กฐํฉ์ด๋ผ๋ ๊ฒ์
๋๋ค.
$ docker version
Client:
Version: 1.9.0
API version: 1.21
Go version: go1.4.2
Git commit: 76d6bc9
Built: Tue Nov 3 18:00:05 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.0
API version: 1.21
Go version: go1.4.2
Git commit: 76d6bc9
Built: Tue Nov 3 18:00:05 UTC 2015
OS/Arch: linux/amd64
$ docker -D info
Containers: 10
Images: 119
Server Version: 1.9.0
Storage Driver: devicemapper
Pool Name: docker-253:1-2114818-pool
Pool Blocksize: 65.54 kB
Base Device Size: 107.4 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 7.234 GB
Data Space Total: 107.4 GB
Data Space Available: 42.64 GB
Metadata Space Used: 10.82 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.137 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.93-RHEL7 (2015-01-28)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-229.20.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 8
Total Memory: 15.51 GiB
@mjsalinger ์ฐ๋ฆฌ๋ ๋น์ ๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ๊ฐ์ ์ค์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ์ต๋๊น?
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์
~ # docker info
Containers: 118
Images: 2239
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.2.2-coreos-r1
Operating System: CoreOS 835.8.0
CPUs: 16
Total Memory: 29.44 GiB
Username: util-user
Registry: https://index.docker.io/v1/
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: cedd534-dirty
Built: Tue Dec 1 02:00:58 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: cedd534-dirty
Built: Tue Dec 1 02:00:58 UTC 2015
OS/Arch: linux/amd64
์ฐ๋ฆฌ์ ๋ก๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค.
time="2016-01-08T21:38:34.735146159Z" level=error msg="Failed to compute size of container rootfs e4565ff148266389cbf70af9f22f9c62aa255bacaec0925a72eab5d0dca9da5f: Error getting container e4565ff148266389cbf70af9f22f9c62aa255bacaec0925a72eab5d0dca9da5f from driver overlay: stat /var/lib/docker/overlay/e4565ff148266389cbf70af9f22f9c62aa255bacaec0925a72eab5d0dca9da5f: no such file or directory"
๊ณผ
time="2016-01-08T21:42:34.846701169Z" level=error msg="Handler for GET /containers/json returned error: write unix @: broken pipe"
time="2016-01-08T21:42:34.846717812Z" level=error msg="HTTP Error" err="write unix @: broken pipe" statusCode=500
๊ทธ๋ฌ๋ ์ด๋ค ๊ฒ์ด ๊ต์ํ ๋ฌธ์ ์ ๊ด๋ จ์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
SIGUSR1์ ๋ฐ๋ชฌ์ ์ ์กํ์ฌ ๋ชจ๋ ๋์ปค ๊ณ ๋ฃจํด ์คํ์ ๋คํ๋ฅผ ํฌํจํ๋ ๊ฒ์ด ๋์์ด ๋ ์ ์์ต๋๋ค ..
@whosthatknocking ์ ๋ด๊ฐ ํ ์ ์๋ค๋ ๊ฒ์ ๋ชฐ๋์ต๋๋ค.
time="2016-01-08T22:20:16.181468178Z" level=info msg="=== BEGIN goroutine stack dump ===
goroutine 11 [running]:
github.com/docker/docker/pkg/signal.DumpStacks()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/signal/trap.go:60 +0x7a
github.com/docker/docker/daemon.funcยท025()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/debugtrap_unix.go:18 +0x6d
created by github.com/docker/docker/daemon.setupDumpStackTrap
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/debugtrap_unix.go:20 +0x18e
goroutine 1 [chan receive, 33262 minutes]:
main.(*DaemonCli).CmdDaemon(0xc20807d1a0, 0xc20800a020, 0x1, 0x1, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/docker/daemon.go:289 +0x1781
reflect.callMethod(0xc208142060, 0xc20842fce0)
/usr/lib/go/src/reflect/value.go:605 +0x179
reflect.methodValueCall(0xc20800a020, 0x1, 0x1, 0x1, 0xc208142060, 0x0, 0x0, 0xc208142060, 0x0, 0x452ecf, ...)
/usr/lib/go/src/reflect/asm_amd64.s:29 +0x36
github.com/docker/docker/cli.(*Cli).Run(0xc20810df80, 0xc20800a010, 0x2, 0x2, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/cli/cli.go:89 +0x38e
main.main()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/docker/docker.go:69 +0x428
goroutine 5 [syscall]:
os/signal.loop()
/usr/lib/go/src/os/signal/signal_unix.go:21 +0x1f
created by os/signal.initยท1
/usr/lib/go/src/os/signal/signal_unix.go:27 +0x35
goroutine 17 [syscall, 33262 minutes, locked to thread]:
runtime.goexit()
/usr/lib/go/src/runtime/asm_amd64.s:2232 +0x1
goroutine 13 [IO wait, 33262 minutes]:
net.(*pollDesc).Wait(0xc2081eb100, 0x72, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2081eb1
00, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).readMsg(0xc2081eb0a0, 0xc2081bd9a0, 0x10, 0x10, 0xc208440020, 0x1000, 0x1000, 0xffffffffffffffff, 0x0, 0x0, ...)
/usr/lib/go/src/net/fd_unix.go:296 +0x54e
net.(*UnixConn).ReadMsgUnix(0xc2080384b8, 0xc2081bd9a0, 0x10, 0x10, 0xc208440020, 0x1000, 0x1000, 0x51, 0xc2081bd6d4, 0x4, ...)
/usr/lib/go/src/net/unixsock_posix.go:147 +0x167
github.com/godbus/dbus.(*oobReader).Read(0xc208440000, 0xc2081bd9a0, 0x10, 0x10, 0xc208440000, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/transport_unix.go:21 +0xc5
io.ReadAtLeast(0x7f9ad52e9310, 0xc208440000, 0xc2081bd9a0, 0x10, 0x10, 0x10, 0x0, 0x0, 0x0)
/usr/lib/go/src/io/io.go:298 +0xf1
io.ReadFull(0x7f9ad52e9310, 0xc208440000, 0xc2081bd9a0, 0x10, 0x10, 0x51, 0x0, 0x0)
/usr/lib/go/src/io/io.go:316 +0x6d
github.com/godbus/dbus.(*unixTransport).ReadMessage(0xc2081df900, 0xc208115170, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/transport_unix.go:85 +0x1bf
github.com/godbus/dbus.(*Conn).inWorker(0xc208418480)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/conn.go:248 +0x58
created by github.com/godbus/dbus.(*Conn).Auth
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/auth.go:118 +0xe84
goroutine 10 [chan receive, 33262 minutes]:
github.com/docker/docker/api/server.(*Server).ServeApi(0xc208037800, 0xc20807d3d0, 0x1, 0x1, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/api/server/server.go:111 +0x74f
main.funcยท007()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/docker/daemon.go:239 +0x5b
created by main.(*DaemonCli).CmdDaemon
/build/amd64-usr/var/tmp/portage/app-emulation/docker-
1.8.3/work/docker-1.8.3/docker/daemon.go:245 +0xce9
goroutine 14 [chan receive, 33262 minutes]:
github.com/godbus/dbus.(*Conn).outWorker(0xc208418480)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/conn.go:370 +0x58
created by github.com/godbus/dbus.(*Conn).Auth
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/auth.go:119 +0xea1
goroutine 15 [chan receive, 33262 minutes]:
github.com/docker/libnetwork/iptables.signalHandler()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/docker/libnetwork/iptables/firewalld.go:92 +0x57
created by github.com/docker/libnetwork/iptables.FirewalldInit
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/docker/libnetwork/iptables/firewalld.go:48 +0x185
goroutine 50 [chan receive, 33262 minutes]:
database/sql.(*DB).connectionOpener(0xc2081aa0a0)
/usr/lib/go/src/database/sql/sql.go:589 +0x4c
created by database/sql.Open
/usr/lib/go/src/database/sql/sql.go:452 +0x31c
goroutine 51 [IO wait]:
net.(*pollDesc).Wait(0xc2081dcd10, 0x72, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2081dcd10, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).readMsg(0xc2081dccb0, 0xc20b38c970, 0x10, 0x10, 0xc20bf3b220, 0x1000, 0x1000, 0xffffffffffffffff, 0x0, 0x0, ...)
/usr/lib/go/src/net/fd_unix.go:296 +0x54e
net.(*UnixConn).ReadMsgUnix(0xc208038618, 0xc20b38c970, 0x10, 0x10, 0xc20bf3b220, 0x1000, 0x1000, 0x35, 0xc20b38c784, 0x4, ...)
/usr/lib/go/src/net/unixsock_posix.go:147 +0x167
github.com/godbus/dbus.(*oobReader).Read(0xc20bf3b200, 0xc20b38c970, 0x10, 0x10, 0xc20bf3b200, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/transport_unix.go:21 +0xc5
io.ReadAtLeast(0x7f9ad52e9310, 0xc20bf3b200, 0x
c20b38c970, 0x10, 0x10, 0x10, 0x0, 0x0, 0x0)
/usr/lib/go/src/io/io.go:298 +0xf1
io.ReadFull(0x7f9ad52e9310, 0xc20bf3b200, 0xc20b38c970, 0x10, 0x10, 0x35, 0x0, 0x0)
/usr/lib/go/src/io/io.go:316 +0x6d
github.com/godbus/dbus.(*unixTransport).ReadMessage(0xc208176950, 0xc208471470, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/transport_unix.go:85 +0x1bf
github.com/godbus/dbus.(*Conn).inWorker(0xc2080b0fc0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/conn.go:248 +0x58
created by github.com/godbus/dbus.(*Conn).Auth
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/auth.go:118 +0xe84
goroutine 52 [chan receive]:
github.com/godbus/dbus.(*Conn).outWorker(0xc2080b0fc0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/conn.go:370 +0x58
created by github.com/godbus/dbus.(*Conn).Auth
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/godbus/dbus/auth.go:119 +0xea1
goroutine 53 [chan receive]:
github.com/coreos/go-systemd/dbus.funcยท001()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/coreos/go-systemd/dbus/subscription.go:70 +0x64
created by github.com/coreos/go-systemd/dbus.(*Conn).initDispatch
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/coreos/go-systemd/dbus/subscription.go:94 +0x11c
goroutine 54 [chan receive]:
github.com/docker/docker/daemon.(*statsCollector).run(0xc20844dad0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/stats_collector_unix.go:91 +0xb2
created by github.com/docker/docker/daemon.newStatsCollector
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/wo
rk/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/stats_collector_unix.go:31 +0x116
goroutine 55 [chan receive, 2 minutes]:
github.com/docker/docker/daemon.(*Daemon).execCommandGC(0xc2080908c0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/exec.go:256 +0x8c
created by github.com/docker/docker/daemon.NewDaemon
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/daemon.go:736 +0x2358
goroutine 774 [semacquire, 33261 minutes]:
sync.(*Cond).Wait(0xc208460030)
/usr/lib/go/src/sync/cond.go:62 +0x9e
io.(*pipe).read(0xc208460000, 0xc208c0bc00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/lib/go/src/io/pipe.go:52 +0x303
io.(*PipeReader).Read(0xc208b52750, 0xc208c0bc00, 0x400, 0x400, 0x1f, 0x0, 0x0)
/usr/lib/go/src/io/pipe.go:134 +0x5b
github.com/docker/docker/pkg/ioutils.(*bufReader).drain(0xc2084600c0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/ioutils/readers.go:116 +0x10e
created by github.com/docker/docker/pkg/ioutils.NewBufReader
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/ioutils/readers.go:86 +0x2f3
goroutine 784 [semacquire, 33261 minutes]:
sync.(*Cond).Wait(0xc208460570)
/usr/lib/go/src/sync/cond.go:62 +0x9e
io.(*pipe).read(0xc208460540, 0xc208963000, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/lib/go/src/io/pipe.go:52 +0x303
io.(*PipeReader).Read(0xc208b529d8, 0xc208963000, 0x400, 0x400, 0x1f, 0x0, 0x0)
/usr/lib/go/src/io/pipe.go:134 +0x5b
github.com/docker/docker/pkg/ioutils.(*bufReader).drain(0xc208460600)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/ioutils/readers.go:116 +0x10e
created by github.com/docker/docker/pkg/ioutils.NewBufReader
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/wo
rk/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/ioutils/readers.go:86 +0x2f3
goroutine 757 [semacquire, 33261 minutes]:
sync.(*Cond).Wait(0xc208141cb0)
/usr/lib/go/src/sync/cond.go:62 +0x9e
github.com/docker/docker/pkg/ioutils.(*bufReader).Read(0xc208141c80, 0xc2089f2000, 0x1000, 0x1000, 0x0, 0x7f9ad52d4080, 0xc20802a0d0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/ioutils/readers.go:210 +0x158
bufio.(*Reader).fill(0xc208956ae0)
/usr/lib/go/src/bufio/bufio.go:97 +0x1ce
bufio.(*Reader).ReadSlice(0xc208956ae0, 0x41d50a, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/go/src/bufio/bufio.go:295 +0x257
bufio.(*Reader).ReadBytes(0xc208956ae0, 0xc208141c0a, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/go/src/bufio/bufio.go:374 +0xd2
github.com/docker/docker/daemon/logger.(*Copier).copySrc(0xc2084def40, 0xf8ac00, 0x6, 0x7f9ad003e420, 0xc208141c80)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/logger/copier.go:47 +0x96
created by github.com/docker/docker/daemon/logger.(*Copier).Run
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/logger/copier.go:38 +0x11c
goroutine 842 [chan receive, 33261 minutes]:
github.com/docker/docker/daemon.(*Container).AttachWithLogs(0xc208cc90e0, 0x0, 0x0, 0x7f9ad003e398, 0xc208471e30, 0x7f9ad003e398, 0xc208471e00, 0x100, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/container.go:934 +0x40d
github.com/docker/docker/daemon.(*Daemon).ContainerAttachWithLogs(0xc2080908c0, 0xc208cc90e0, 0xc208471dd0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/attach.go:39 +0x42c
github.com/docker/docker/api/server.(*Server).postContainersAttach(0xc208037800, 0xc208b36007, 0x4, 0x7f9ad52f2870, 0xc20
87fde00, 0xc2087d4410, 0xc208471b90, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/api/server/server.go:1169 +0x5d1
github.com/docker/docker/api/server.*Server.(github.com/docker/docker/api/server.postContainersAttach)ยทfm(0xc208b36007, 0x4, 0x7f9ad52f2870, 0xc2087fde00, 0xc2087d4410, 0xc208471b90, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/api/server/server.go:1671 +0x7b
github.com/docker/docker/api/server.funcยท008(0x7f9ad52f2870, 0xc2087fde00, 0xc2087d4410)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/api/server/server.go:1614 +0xc8f
net/http.HandlerFunc.ServeHTTP(0xc2081cc580, 0x7f9ad52f2870, 0xc2087fde00, 0xc2087d4410)
/usr/lib/go/src/net/http/server.go:1265 +0x41
github.com/gorilla/mux.(*Router).ServeHTTP(0xc20813cd70, 0x7f9ad52f2870, 0xc2087fde00, 0xc2087d4410)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/vendor/src/github.com/gorilla/mux/mux.go:98 +0x297
net/http.serverHandler.ServeHTTP(0xc2082375c0, 0x7f9ad52f2870, 0xc2087fde00, 0xc2087d4410)
/usr/lib/go/src/net/http/server.go:1703 +0x19a
net/http.(*conn).serve(0xc2087fdd60)
/usr/lib/go/src/net/http/server.go:1204 +0xb57
created by net/http.(*Server).Serve
/usr/lib/go/src/net/http/server.go:1751 +0x35e
goroutine 789 [semacquire, 33261 minutes]:
sync.(*WaitGroup).Wait(0xc20882de60)
/usr/lib/go/src/sync/waitgroup.go:132 +0x169
github.com/docker/docker/daemon.funcยท017(0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/container.go:1035 +0x42
github.com/docker/docker/pkg/promise.funcยท001()
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/promise/promise.go:8 +0x2f
created by github.com/docker/docker/pkg
/promise.Go
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/promise/promise.go:9 +0xfb
goroutine 788 [semacquire, 33261 minutes]:
sync.(*Cond).Wait(0xc2084607b0)
/usr/lib/go/src/sync/cond.go:62 +0x9e
github.com/docker/docker/pkg/ioutils.(*bufReader).Read(0xc208460780, 0xc208a70000, 0x8000, 0x8000, 0x0, 0x7f9ad52d4080, 0xc20802a0d0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/pkg/ioutils/readers.go:210 +0x158
io.Copy(0x7f9ad003e398, 0xc208845860, 0x7f9ad003e420, 0xc208460780, 0x0, 0x0, 0x0)
/usr/lib/go/src/io/io.go:362 +0x1f6
github.com/docker/docker/daemon.funcยท016(0xf8abc0, 0x6, 0x7f9ad003e398, 0xc208845860, 0x7f9ad003e3f0, 0xc208460780)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/container.go:1021 +0x245
created by github.com/docker/docker/daemon.attach
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.8.3/work/docker-1.8.3/.gopath/src/github.com/docker/docker/daemon/container.go:1032 +0x597
goroutine 769 [IO wait, 33261 minutes]:
net.(*pollDesc).Wait(0xc20881de20, 0x72, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc20881de20, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc20881ddc0, 0xc2088ac000, 0x1000, 0x1000, 0x0, 0x7f9ad52d8340, 0xc20880d758)
/usr/lib/go/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208b52360, 0xc2088ac000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/go/src/net/net.go:121 +0xdc
net/http.(*liveSwitchReader).Read(0xc208792c28, 0xc2088ac000, 0x1000, 0x1000, 0x2, 0x0, 0x0)
/usr/lib/go/src/net/http/server.go:214 +0xab
io.(*LimitedReader).Read(0xc20889f960, 0xc2088ac000, 0x1000, 0x1000, 0x2, 0x0, 0x0)
/usr/lib/go/src/io/io.go:408 +0xce
bufio.(*Reader).fill(0xc2082544e0)
/usr/lib/go/src/bufio/bufio.go:97 +0x1ce
bufio.(*Reader).ReadSlice(0xc208254
4e0, 0xc20889db0a, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/go/src/bufio/bufio.go:295 +0x257
bufio.(*Reader).ReadLine(0xc2082544e0, 0x0, 0x0, 0x0, 0xc208bc2700, 0x0, 0x0)
/usr/lib/go/src/bufio/bufio.go:324 +0x62
net/textproto.(*Reader).readLineSlice(0xc208845560, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/go/src/net/textproto/reader.go:55 +0x9e
net/textproto.(*Reader).ReadLine(0xc208845560, 0x0, 0x0, 0x0, 0x0)
/u
=== END goroutine stack dump ==="
๋๋ ๋ฐฉ๊ธ ๊ฑธ๋ ธ๊ณ , docker go ๋ฃจํด์ด ๋์์ต๋๋ค.
์ ์ง ํ ๋ก๊ทธ์๋ ๋ฐ๋ณต์ ์ผ๋ก ํ์๋ฉ๋๋ค.
kernel: unregister_netdevice: waiting for veth2fb10a9 to become free. Usage count = 1
@rwky๋ ์๋ง๋ https://github.com/docker/docker/issues/5618 ๊ณผ ๊ด๋ จ์ด
@thaJeztah ์๋ง๋ # 5618์ ์ปจํ ์ด๋๊ฐ ๋ฐ์ธ๋ฉ ๋ ์ธํฐํ์ด์ค๊ฐ ์๋ lo ๋ฐ eth0์๋ง ์ ์ฉ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ณผ๋ํ Kubernetes ์์
๋ก๋๊ฐ ์์ฝ ๋ ๊ฒฝ์ฐ์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. docker ps
๋ ๋ฐํ๋์ง ์์ต๋๋ค. ์ค์ ๋ก curl --unix-socket /var/run/docker.sock http:/containers/json
์ด ์ ์ง๋ฉ๋๋ค. ๋ฌธ์ ๋ฅผ ๋ณต๊ตฌํ๋ ค๋ฉด ๋์ปค ๋ฐ๋ชฌ์ ๋ค์ ์์ํด์ผํฉ๋๋ค. ๋ ๋์ ๊ฒ์ ๋์ปค ๋ฐ๋ชฌ์ ๋ค์ ์์ํ๋ ๋ฐ ๋ช ๋ถ์ด ๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์
๋๋ค!
$ docker version
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.4.3
Git commit: cedd534-dirty
Built: Thu Nov 19 23:12:57 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.4.3
Git commit: cedd534-dirty
Built: Thu Nov 19 23:12:57 UTC 2015
OS/Arch: linux/amd64
$ docker info
Containers: 57
Images: 100
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.2.2-coreos-r2
Operating System: CoreOS 870.2.0
CPUs: 32
Total Memory: 251.9 GiB
Name: CNPVG50853311
ID: TV5P:6OHQ:QTSN:IF6K:5LPX:TSHS:DEAW:TQSF:QTOT:45NO:JH2X:DMSE
Http Proxy: http://proxy.wdf.sap.corp:8080
Https Proxy: http://proxy.wdf.sap.corp:8080
No Proxy: hyper.cd,anywhere.cd
๋ด ํ๊ฒฝ์์ ๋น์ทํ ๊ฒ์๋ณด๊ณ ๋๋ฒ๊น ์ ๋๊ธฐ ์ํด ์๋ ์ ๋ณด๋ฅผ ๋คํํ์ต๋๋ค. ํต๊ณ๋ ๊ฐ๊ฐ ์ฝ 70 ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๋ ๊ฐ์ ๊ณ ์ฌ์ ๋ฌผ๋ฆฌ์ rancheros4.2 ํธ์คํธ์์ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค. ๋์ปค์ ์ฑ๋ฅ์ด ์ ํ๋๊ณ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ถ์ ํ์ง ๋ชปํ์ง๋ง ๋์ปค ๋ฐ๋ชฌ์ ๋ค์ ์์ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
Docker ๋ฒ์
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: 994543b
Built: Mon Nov 23 06:08:57 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: 994543b
Built: Mon Nov 23 06:08:57 UTC 2015
OS/Arch: linux/amd64
๋์ปค ์ ๋ณด
Containers: 35
Images: 1958
Server Version: 1.9.1
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.2.3-rancher
Operating System: RancherOS (containerized)
CPUs: 64
Total Memory: 251.9 GiB
Name: PTL-BCA-07
ID: Q5WF:7MOB:37YR:NRZR:P2FE:DVWV:W7XY:Z6OL:TAVC:4KCM:IUFU:LO4C
Stacktrace :
debug2.txt
์ด๊ฒ์ +1ํ์ฌ centos 6์์ ์คํ๋๋ ๋ ๋์ ๋ถํ์์ ๋ ์์ฃผ ๋ณผ ์ ์์ต๋๋ค.
Docker ๋ฒ์
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64
Docker ์ ๋ณด
Containers: 1
Images: 55
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.18.23-74.el6.x86_64
Operating System: <unknown>
CPUs: 40
Total Memory: 157.4 GiB
Name: lively-frost
ID: SXAC:IJ45:UY45:FIXS:7MWD:MZAE:XSE5:HV3Z:DU4Z:CYK6:LXPB:A65F
@ssalinas ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋๋๋ผ๋ ๋ ์ด์ ์ง์ํ์ง ์๋ ๋ฐฐํฌํ (centos 6)๊ณผ ์ฌ์ฉ์ ์ง์ ์ปค๋ (CentOS 6์ 2.6.x์ ํจ๊ป ์ ๊ณต)์์ ์คํ
@theJeztah , ๋ถ๋ช ํ ๋ฌด๊ฑฐ์ด ๋ถํ์์ ๋งํ์ ์ผ์ผํค๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Docker ํ์ ๋๊ตฐ๊ฐ๊ฐ์ด ๋ฌธ์ ๋ฅผ ํ์ธํ์ผ๋ฉฐ ๋ฒ์ 1.9์์ ํด๊ฒฐ๋์๋์ง ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?
์ด ์ธ์๋ Docker๊ฐ ์ค๋จ๋๊ณ ๋ ์ด์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์๋์ง ํ์ธํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ต์ํ ๋ฐ๋ชฌ์ ๋ค์ ์์ํ๊ณ ์์ ์ ๊ณ์ํ๋๋ก ์๋ํ ํ ์ ์์ต๋๋ค.
๋ค์ ๊ตฌ์ฑ์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
docker 1.8.3 ๋ฐ coreos 835.10
docker ps๋ ๋์ ์ดํ๋ฅ ์ ๋ฉ ์ถฅ๋ ๋ค. ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ 200 ๊ฐ ์ด์์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ์ฌ 100 % ํธ๋ฆฌ๊ฑฐ ํ ์ ์์ต๋๋ค (Kubernetes๊ฐ ์ํํจ).
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง
์ฌํ :
A_LOT=300 # whatever
for i in `seq 1 $A_LOT`;
do docker run --rm alpine sh -c "echo $i; sleep 30" &
done
sleep 5 # give it some time to start spawning containers
docker ps # hangs
core@pph-01 ~ $ docker version
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: cedd534-dirty
Built: Tue Feb 2 13:28:10 UTC 2016
OS/Arch: linux/amd64
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: cedd534-dirty
Built: Tue Feb 2 13:28:10 UTC 2016
OS/Arch: linux/amd64
Containers: 291
Images: 14
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.2.2-coreos-r2
Operating System: CoreOS 835.12.0
CPUs: 2
Total Memory: 1.958 GiB
Name: pph-01
ID: P4FX:IMCD:KF5R:MG3Y:XECP:JPKO:IRWM:3MGK:IAIW:UG5S:6KCR:IK2J
Username: pmoust
Registry: https://index.docker.io/v1/
๊ธฐ๋ก์ ์ํด ์์ bash ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉํฑ์์ ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ค๊ณ ์๋ํ์ง๋ง ๋์ ์ผ์ ์์์ต๋๋ค. Ubuntu 15.10์ ์คํํฉ๋๋ค.
$ docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/amd64
$ docker info
Containers: 1294
Images: 1231
Server Version: 1.9.1
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 3823
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.2.0-27-generic
Operating System: Ubuntu 15.10
CPUs: 8
Total Memory: 5.809 GiB
Name: pochama
ID: 6VMD:Z57I:QDFF:TBSU:FNSH:Y433:6KDS:2AXU:CVMH:JUKU:TVQQ:7UMR
Username: tomfotherby
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Docker 1.8.3 / CentOS 7์์์ด ๋ฌธ์ ์ ์ฌ๋ฌ ์ฌ๋ก๋ฅผ ๋ณด์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์ ์์ ์ปจํ ์ด๋๋ฅผ ์์ฑ ํ ์์๋ kubernetes๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๋๋ก ์ฐ๋ฆฌ์ ๋์ปค ๋ฐ๋ชฌ์ด ์๋ตํ์ง ์๊ณ (docker ps๊ฐ 30 ๋ถ ์ด์ ์ค๋จ๋จ) ๋ฐ๋ชฌ์ ๋ค์ ์์ํด์ผ๋ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ @pmoust ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค.
Containers: 117
Images: 105
Storage Driver: devicemapper
Pool Name: docker-docker--pool
Pool Blocksize: 524.3 kB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 5.559 GB
Data Space Total: 21.45 GB
Data Space Available: 15.89 GB
Metadata Space Used: 7.234 MB
Metadata Space Total: 54.53 MB
Metadata Space Available: 47.29 MB
Udev Sync Supported: true
Deferred Removal Enabled: true
Library Version: 1.02.107-RHEL7 (2015-10-14)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-327.4.5.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 2
Total Memory: 3.451 GiB
Name: server
ID: MK35:YN3L:KULL:C4YU:IOWO:6OK2:FHLO:WIYE:CBVE:MZBL:KG3T:OV5T
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: f4bf5c7
Built: Mon Oct 12 06:06:01 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.4.2
Git commit: f4bf5c7
Built: Mon Oct 12 06:06:01 UTC 2015
OS/Arch: linux/amd64
@tomfotherby ์ผ์ด์ค์ @andrewmichaelsmith ์์ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ ๊ฐ๊ฐ aufs / devicemapper-xfs์
๋๋ค.
์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๊ฐ ์ค๋ฒ๋ ์ด ์ผ ๋ ์ผ๊ด๋๊ฒ ์ฌํ ํ ์ ์์ต๋๋ค
CoreOS 835.12 ์์ @pmoust์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋จ์ ๋ณต์ ํ ์ ์์ต๋๋ค.
Containers: 227
Images: 1
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.2.2-coreos-r2
Operating System: CoreOS 835.12.0
CPUs: 2
Total Memory: 3.864 GiB
Name: core-01
ID: WIYE:CGI3:2C32:LURO:MNHU:YQXU:NEU4:LPZG:YJM5:ZN3S:BBPF:3SXM
FWIW ์ฐ๋ฆฌ๋ ์ด๊ฒ์ devicemapper ์ปค๋ ๋ฒ๊ทธ์ ๊ณ ์ ํ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค : https://bugzilla.redhat.com/show_bug.cgi?id=1292481
@andrewmichaelsmith ๋ ํจ์น๊ฐ์๋ AWS AMI์ ๋๊น?
CentOS 7 AWS ์์์ @pmoust yum update
์์ ํด๋น ๋ฒ๊ทธ ๋ณด๊ณ ์ (kernel-3.10.0-327.10.1.el7)์์ ์ ์ปค๋์ ๊ฐ์ ธ ์์ต๋๋ค.
ํธ์ง : ๋ง์ฝ ๋น์ ์ด overlayfs๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์ด๊ฒ์ด ๋น์ ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๊น?
์ด ๋ฌธ์ ์ +1. CoreOS Alpha์ ์ปค๋ 4.4.1-coreos์์ Docker 1.10.1์์์ด ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
AWS์ 970.1.0. ์ด๋ก ์ธํด kubernetes ํด๋ฌ์คํฐ์ ์ฌ๊ฐํ ๋ถ์์ ์ฑ์ด ๋ฐ์ํ๊ณ ์์ผ๋ฉฐ ์ฐ๋ฆฌ ํ์ ๋์ปค๋ฅผ ์์ ํ ์ ๊ฑฐํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์ ๊ทน์ ์ธ ์กฐ์ฌ๊ฐ ์์ต๋๊น?
@gopinatht ์ด ๋ฌธ์ ์ ์ฌ๋๋ค์ ๋ค์ํ ๋ฌธ์ ์ ์ํฅ์๋ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ์๊ฒ๋ docker ํ๋ก์ ํธ์ ์ ํ ๊ด๋ จ์ด์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ devicemapper์ ๋ฒ๊ทธ์์ต๋๋ค.
@andrewmichaelsmith ์๋ต docker ps
ํธ์ถ์ strace๋ ๋ค์์ ์ ๊ณตํฉ๋๋ค.
read(5, 0xc20807d000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
write(5, "GET /v1.22/containers/json HTTP/"..., 109) = 109
futex(0x1fe97a0, FUTEX_WAKE, 1) = 1
futex(0x1fe9720, FUTEX_WAKE, 1) = 1
epoll_wait(4, {}, 128, 0) = 0
futex(0x1fea698, FUTEX_WAIT, 0, NULL
์ด๊ฒ์ ์ฌ๊ธฐ์์๋ ์ฌ๋ฌ ๋ค๋ฅธ ๋ณด๊ณ ์์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๋ฌด์์ ํ ์ ์์ต๋๊น?
@andrewmichaelsmith ๊ฐ ํจ์น ์ปค๋๋ก ์๋ํ์ต๋๋ค.
๋ค์์ ๊ฒฐ๊ณผ์ ๋๋ค https://github.com/coreos/bugs/issues/1117#issuecomment -191190839
@pmoust ์ ๋ฐ์ดํธ
@andrewmichaelsmith @pmoust ์ถ๊ฐ ์กฐ์ฌ๋ฅผ ์ํด ๋ค์์ ํ ์์๋ ์ผ์ ๋ํ ํต์ฐฐ๋ ฅ์ด ์์ต๋๊น? ์ด์ ๋ํ ์์ ์ ์ฐ๋ฆฌ ํ์ด ๋์ปค ๊ธฐ๋ฐ kubernetes ํด๋ฌ์คํฐ๋ฅผ ๋ฐ์ ์ํค๋ ๋ฐ ์ ๋์ ์ผ๋ก ์ค์ํฉ๋๋ค.
@gopinatht ๋๋ ๋์ปค / ๊ตฌ๊ธ์์ ์ผํ์ง ์๊ฑฐ๋ ๋์ปค ๋๋ ์ฟ ๋ฒ๋ค ํฐ์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ํนํ ๊ด์ฌ์ด ์์ต๋๋ค.
์ฌ์ฉ์ค์ธ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๊ฐ ๋ฌด์์ธ์ง ํ์คํ์ง ์์ต๋๊น? ๋ฐ๋ณต : devicemapper ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ ๋ docker๊ฐ ์์ ํ ๋ฉ์ถ๋ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ปค๋์ kernel-3.10.0-327.10.1.el7๋ก ์ ๊ทธ๋ ์ด๋ํ๋ฉด์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋ ์ด์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
docker ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ก devicemapper๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ๋ด ๊ฒฐ๊ณผ๋ ์๋ง๋ ๋น์ ์๊ฒ ํฐ ์๋ฏธ๊ฐ ์์ ๊ฒ์ ๋๋ค.
@andrewmichaelsmith ๋ด๊ฐ ์ด๊ฒ์ ๋ํด ๋ญ๊ฐ๋ฅผํด์ผ ํจ์ ์์ํ๋ ๊ฒ์ฒ๋ผ
๋๋ ๋ถ๋ช ํ ์ฌ๊ธฐ์ ๊ธธ์ ์์ ๊ธฐ ๋๋ฌธ์ ์กฐ์ฌ ๋ฐฉํฅ์ ์ฐพ๊ณ ์์๋ค. ์ด์จ๋ ์ง๊ธ๊น์ง ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
Ubuntu์์ ์ต์ ๋ฒ์ ์ Kernel 3.13.0-83-generic
. ๋ค๋ฅธ ๋ชจ๋ ์์
์ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ผํ ๋ฌธ์ ๋ docker ps
๋ฐ ์์์ docker inspect
Docker ์ ๋ณด :
Containers: 51
Running: 48
Paused: 0
Stopped: 3
Images: 92
Server Version: 1.10.3
Storage Driver: devicemapper
Pool Name: docker-data-tpool
Pool Blocksize: 65.54 kB
Base Device Size: 5.369 GB
Backing Filesystem: ext4
Data file:
Metadata file:
Data Space Used: 19.14 GB
Data Space Total: 102 GB
Data Space Available: 82.86 GB
Metadata Space Used: 33.28 MB
Metadata Space Total: 5.369 GB
Metadata Space Available: 5.335 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Library Version: 1.02.77 (2012-10-15)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: host bridge null
Kernel Version: 3.13.0-83-generic
Operating System: Ubuntu 14.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 29.96 GiB
Name: apocalypse.servers.lair.io
ID: Q444:V3WX:RIQJ:5B3T:SYFQ:H2TR:SPVF:U6YE:XNDX:HV2Z:CS7F:DEJJ
WARNING: No swap limit support
strace
๊ผฌ๋ฆฌ :
futex(0x20844d0, FUTEX_WAIT, 0, NULL) = 0
futex(0xc82002ea10, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {216144, 494093555}) = 0
clock_gettime(CLOCK_MONOTONIC, {216144, 506740959}) = 0
futex(0xc82002ea10, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {216144, 506835134}) = 0
clock_gettime(CLOCK_MONOTONIC, {216144, 506958105}) = 0
futex(0x20844d0, FUTEX_WAIT, 0
๋ํ ๋ช ๋ถ ์ ๋ ์ง๋๋ฉด ์ฐจ๋จ ๋ strace์ ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ์ด ํ์๋์ง๋ง ์ข ๋ฃ๋์ง๋ ์์์ต๋๋ค.
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0x20844d0, FUTEX_WAIT, 0, NULL
์กฐ๊ธ ๋ ๊ธฐ๋ค๋ฆฐ ํ ๋์ผํ futex
๋ธ๋ก์ด ๋ฐ์ํ์ง๋ง ์ด๋ฒ์๋ '๋ฆฌ์์ค๋ฅผ ์ผ์์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ ์ค๋ฅ'๋ ๋ฐ์ํฉ๋๋ค.
futex(0x20844d0, FUTEX_WAIT, 0, NULL) = 0
futex(0xc820574110, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {216624, 607690506}) = 0
clock_gettime(CLOCK_MONOTONIC, {216624, 607853434}) = 0
futex(0x2083970, FUTEX_WAIT, 0, {0, 100000}) = -1 EAGAIN (Resource temporarily unavailable)
epoll_wait(5, {}, 128, 0) = 0
clock_gettime(CLOCK_MONOTONIC, {216624, 608219882}) = 0
futex(0x2083980, FUTEX_WAKE, 1) = 1
futex(0xc820574110, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {216624, 608587202}) = 0
clock_gettime(CLOCK_MONOTONIC, {216624, 609140069}) = 0
clock_gettime(CLOCK_MONOTONIC, {216624, 609185048}) = 0
clock_gettime(CLOCK_MONOTONIC, {216624, 609272020}) = 0
futex(0xc82002ea10, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {216624, 616982914}) = 0
sched_yield() = 0
clock_gettime(CLOCK_MONOTONIC, {216624, 626726774}) = 0
futex(0x20844d0, FUTEX_WAIT, 0, NULL) = 0
futex(0x2083970, FUTEX_WAKE, 1) = 1
futex(0x20838c0, FUTEX_WAKE, 1) = 1
sched_yield() = 0
futex(0x20838c0, FUTEX_WAIT, 2, NULL) = 0
futex(0x20838c0, FUTEX_WAKE, 1) = 0
futex(0x20844d0, FUTEX_WAIT, 0, NULL
ํญ์ ๋์ผํ futex
์์ strace๊ฐ ์ฐจ๋จ๋ฉ๋๋ค.
@akalipetis ํ๋ก์ธ์ค์ SIGUSR1
๋ฅผ ๋ณด๋ด๊ณ ๋ฐ๋ชฌ ๋ก๊ทธ์์ ์ ์ฒด ์คํ ์ถ์ ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๊น?
@ cpuguy83- ๋ฏธ์ํ์ง๋ง ๋๋ ๊ทธ๊ฒ์ ์ธ์ํ์ง ๋ชปํ์ต๋๋ค ...
(Un) ๋ถํํ๋ ๋ค์ ๋ฐ์ํ์ต๋๋ค. ์๋ ์ฒจ๋ถ ํ์ผ์์ ์ ์ฒด ์คํ ์ถ์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
๋ด ํธ์ด ๋ ํ์ํ๋ฉด ์๋ ค์ฃผ์ธ์.
/ cc @ cpuguy83
@akalipetis ๋๋จํ ๊ฐ์ฌํฉ๋๋ค!
๋ฌธ์ ์์ต๋๋ค @ cpuguy83- ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ํ๊ฑฐ๋ ํฅํ
๋ถํํ๋ ๋๋ ์ด๊ฒ์ ์ฌํํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ๊ฑฐ๋ ์ค๋จ ์ฌ์ด์ ์ ์ฌํ ์ํฉ์ ์๋ณํ์ง ๋ชปํ์ต๋๋ค.
rspec ๋์ปค ์ด๋ฏธ์ง ํ
์คํธ๋ฅผ ์คํํ๋ 1.11.0์ผ๋ก ์
๋ฐ์ดํธํ๊ธฐ ๋๋ฌธ์ (4 cpu ์์คํ
์์ ์ด๋ฌํ ํ
์คํธ๋ฅผ ์คํํ๋ ์ต๋ 10 ๊ฐ์ ๋ณ๋ ฌ ์ปจํ
์ด๋) ๊ฐ๋ ๋ฉ์ถ๊ณ ์๊ฐ ์ด๊ณผ๋ก ์คํจํฉ๋๋ค. Docker๊ฐ ์์ ํ ์ ์ง๋๊ณ ์๋ตํ์ง ์์ต๋๋ค (์ : docker ps
). ์ด๊ฒ์ Debian strech (btrfs) ๋ฐ (vagrant) Parallels VM Ubuntu 14.04 (๋ฐฑ ํฌํธ ๋ ์ปค๋ 3.19.0-31-generic, ext4)๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ ์๋ฒ์์ ๋ฐ์ํฉ๋๋ค.
๋ ์๋ฒ์ /var/lib/docker
์ ๋ํ ํ์ผ ์์คํ
์ด ์ฒซ ๋ฒ์งธ ๊ณ ์ ํ ์ง์์ก์ต๋๋ค (btrfs๊ฐ ๋ค์ ์์ฑ๋จ). ์ด๋ฌํ ํ
์คํธ๋ฅผ ์คํํ ๋ ๋ฉ์ถค์ด ๋ฌด์์๋ก ๋ฐ์ํฉ๋๋ค.
์คํ ์ถ์ ์ ๋ ์๋ฒ์์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
docker-log.zip
docker-containerd
๋ฐ docker daemons
strace :
# strace -p 21979 -p 22536
Process 21979 attached
Process 22536 attached
[pid 22536] futex(0x219bd90, FUTEX_WAIT, 0, NULL <unfinished ...>
[pid 21979] futex(0xf9b170, FUTEX_WAIT, 0, NULL
Docker ์ ๋ณด (Debian strech)
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1096
Server Version: 1.11.0
Storage Driver: btrfs
Build Version: Btrfs v4.4
Library Version: 101
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge null
Kernel Version: 4.4.0-1-amd64
Operating System: Debian GNU/Linux stretch/sid
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 11.74 GiB
Name: slave.webdevops.io
ID: WU2P:YOYC:VP2F:N6DE:BINB:B6YO:2HJO:JKZA:HTP3:SIDA:QOJZ:PJ2E
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Username: webdevopsslave
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
Docker ์ ๋ณด (๋ฐฑ ํฌํธ ๋ ์ปค๋์ด์๋ Ubuntu 14.04)
Client:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:34:23 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:34:23 2016
OS/Arch: linux/amd64
root@DEV-VM:/var/lib/docker# docker info
Containers: 11
Running: 1
Paused: 0
Stopped: 10
Images: 877
Server Version: 1.11.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 400
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 3.19.0-31-generic
Operating System: Ubuntu 14.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 3.282 GiB
Name: DEV-VM
ID: KCQP:OGCT:3MLX:TAQD:2XG6:HBG2:DPOM:GJXY:NDMK:BXCK:QEIT:D6KM
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
Docker ๋ฒ์ (Debian strech)
Client:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:22:26 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:22:26 2016
OS/Arch: linux/amd64
Docker ๋ฒ์ (๋ฐฑ ํฌํธ ๋ ์ปค๋์ด์๋ Ubuntu 14.04)
Client:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:34:23 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:34:23 2016
OS/Arch: linux/amd64
@mblaschke golang ํ๋ก๊ทธ๋จ afaik์ strace์ -f
์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
Ubuntu 14.04์์์ด ๋ฒ๊ทธ๋ฅผ ํ์ธํ ์ ์์ง๋ง์ด ๋ฒ๊ทธ๊ฐ 4.4 ์ปค๋์ ์ฌ์ฉํ๋ Debian stretch์ ๋ฌธ์ ์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ์ฌ์ ํ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๊ณ ํฉ๋๋ค.
Docker 1.10.3์์ Debian stretch์ ๋ฌธ์ ๋ systemd์ ํ๋ก์ธ์ค ์ ํ (์ด์ 512, 8192๋ก ์ฌ๋ฆผ)์ด์์ผ๋ฉฐ Docker ์ปจํ
์ด๋ ํ
์คํธ๋ ์ด์ ๋ฌธ์ ์์ด ์คํ๋ฉ๋๋ค. 1.11.0์ ์ฌ์ ํ โโ์๋ํ์ง ์๊ณ rspec ํ
์คํธ๋ ์ฌ์ ํ ๋ฉ์ถฐ ์์ง๋ง docker ps
์ 4.4 ์ปค๋์ ์ฌ์ฉํ๋ Debian Stretch์์ ์ฌ์ ํ ์๋ตํ๋ฏ๋ก ๋ค๋ฅธ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ก์ด ๋ฌธ์ ์ผ ์์๋ @mblaschke ์ ๋ณด๊ณ ์๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ์๋ก์ด ๋ฌธ์ # 22124๋ฅผ ์์ฑํ์ต๋๋ค.
๋ํ ์ด๊ฒ์ ์คํ ๋๋ ๋ฏฟ๋๋ค
$ uname -a
Linux ip-10-15-42-103.ec2.internal 4.4.6-coreos #2 SMP Sat Mar 26 03:25:31 UTC 2016 x86_64 Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz GenuineIntel GNU/Linux
$ docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.5.3
Git commit: 9894698
Built:
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.5.3
Git commit: 9894698
Built:
OS/Arch: linux/amd64
$ docker info
Containers: 198
Images: 196
Server Version: 1.9.1
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: journald
Kernel Version: 4.4.6-coreos
Operating System: CoreOS 991.2.0 (Coeur Rouge)
CPUs: 2
Total Memory: 3.862 GiB
$ sudo strace -q -y -v -f docker ps
<snip>
[pid 26889] connect(5<socket:[18806726]>, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, 23) = 0
[pid 26889] clock_gettime(CLOCK_REALTIME, {1462217998, 860739240}) = 0
[pid 26889] epoll_ctl(4<anon_inode:[eventpoll]>, EPOLL_CTL_ADD, 5<socket:[18806726]>, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=914977888, u64=140334676407392}}) = 0
[pid 26889] getsockname(5<socket:[18806726]>, {sa_family=AF_LOCAL, NULL}, [2]) = 0
[pid 26889] getpeername(5<socket:[18806726]>, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, [23]) = 0
[pid 26889] read(5<socket:[18806726]>, <unfinished ...>
[pid 26893] <... futex resumed> ) = 1
[pid 26889] <... read resumed> 0xc820015000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
[pid 26893] futex(0xc8200e9790, FUTEX_WAIT, 0, NULL <unfinished ...>
[pid 26891] futex(0xc820026a10, FUTEX_WAIT, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable)
[pid 26891] epoll_wait(4<anon_inode:[eventpoll]>, {{EPOLLOUT, {u32=914978080, u64=140334676407584}}, {EPOLLOUT, {u32=914977888, u64=140334676407392}}}, 128, 0) = 2
[pid 26891] epoll_wait(4<anon_inode:[eventpoll]>, <unfinished ...>
[pid 26889] write(5<socket:[18806726]>, "GET /v1.21/containers/json HTTP/"..., 88 <unfinished ...>
[pid 26890] <... select resumed> ) = 0 (Timeout)
[pid 26889] <... write resumed> ) = 88
[pid 26891] <... epoll_wait resumed> {{EPOLLOUT, {u32=914977888, u64=140334676407392}}}, 128, -1) = 1
[pid 26891] epoll_wait(4<anon_inode:[eventpoll]>, <unfinished ...>
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 935071149}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 861179188}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 935216184}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 861327424}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 935376601}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 861479813}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 935543531}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 861646718}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 935709999}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 861817062}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 935872149}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 861975102}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 936046201}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 862149543}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 936215534}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 862318597}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 936384887}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 862488231}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 936547503}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 862650775}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 936708047}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 862810981}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 936875834}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 862978790}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 937049520}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 863161620}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 937216897}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 863319694}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 937382999}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 863485851}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 937549477}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 863652283}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 937722463}) = 0
[pid 26890] clock_gettime(CLOCK_REALTIME, {1462217998, 863833602}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20}) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 937888537}) = 0
[pid 26889] futex(0xc8200e9790, FUTEX_WAKE, 1 <unfinished ...>
[pid 26890] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 26889] <... futex resumed> ) = 1
[pid 26893] <... futex resumed> ) = 0
[pid 26890] <... clock_gettime resumed> {1462217998, 864010029}) = 0
[pid 26890] select(0, NULL, NULL, NULL, {0, 20} <unfinished ...>
[pid 26889] futex(0x1df2f50, FUTEX_WAIT, 0, NULL <unfinished ...>
[pid 26893] futex(0xc8200e9790, FUTEX_WAIT, 0, NULL <unfinished ...>
[pid 26890] <... select resumed> ) = 0 (Timeout)
[pid 26890] clock_gettime(CLOCK_MONOTONIC, {1194110, 938059687}) = 0
[pid 26890] futex(0x1df2400, FUTEX_WAIT, 0, {60, 0}
@mwhooker ๋ถํํ๋ ๋์ปค ํด๋ผ์ด์ธํธ์ strace๋ ๋ฐ๋ชฌ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ณผ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก๋ณ๋ก ๋์์ด๋์ง ์์ต๋๋ค.
๋ฉ์ถ ๋ฐ๋ชฌ์์ SIGUSR1์ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ ์คํ ์ถ์ ์ ๋ฑ์ด ๋ด์ญ์์ค.
์ฌ๊ธฐ ๋ด sigusr1 ์ถ๋ ฅ https://gist.github.com/mwhooker/6858c0d0c123e214ef69d0a4bff2d7cc (cc @ cpuguy83)
์ฌ๊ธฐ์ ๊ณ ์ ๋ ๋์ปค ๋ฐ๋ชฌ์ ๋ ๋ค๋ฅธ sigusr1 ๋คํ๊ฐ ์์ต๋๋ค.
https://gist.github.com/mwhooker/e837f08370145d183e661c03a5b9d07e
strace
๋ค์ FUTEX_WAIT
์์ ๋ฐ๋ชฌ์ ์ฐพ์ต๋๋ค.
์ด๋ฒ์๋ ์ค์ ๋ก ํธ์คํธ์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฏ๋ก ์ถ๊ฐ ๋๋ฒ๊น ์ ์ํ ํ ์ ์์ง๋ง ๊ณง ๋ฐ๋ชฌ์ ์ฃฝ์ผ ๊ฒ์ ๋๋ค.
ํ @ cpuguy83 ^^
1.11.1 (4.2.5-300.fc23), Overlay / EXT4์์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Celery ์์
์๋ฅผ ์คํํ๊ณ ์์
์๋ก๋ ํ ๋ค์ stop
์๋ ํ ๋ ๋ฐ์ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๊ทธ ์์์๋ ์ด๋ค ๊ฒ๋ ์คํํ ์ ์์ต๋๋ค.
rpc error: code = 2 desc = "oci runtime error: exec failed: exit status 1"
๊ทธ๋์ ์ปจํ ์ด๋ ์ค ์ผ๋ถ๊ฐ ํ๊ดด ๋ ๊ฒ ๊ฐ์ง๋ง ์์ ์ ์๋ฃ ํ ์ ์์ต๋๋ค. ๋๋ ์ ๋ฌ๋ฆฌ๊ฐ ์ฉ๊ธฐ ์์์ ์ฃฝ์๋ค๋ ๊ฒ์ ํ์ธํ๋ค. ๊ทธ๋์ ๋ฌด์์ด ๊ทธ๊ฒ์ ๋ด๊ณ ์๋์ง ํ์คํ์ง ์๋ค.
ํธ์งํ๋ค:
์
๋ฌ๋ฆฌ๋ ์์ ํ ์ฃฝ์ง ์์๊ณ D์ ํ๋ก์ธ์ค๊ฐ ๋ฉ์ถฐ์์ด์ ์ฌ๋ถํ
์ด ์ ์ผํ ์ต์
์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
https://github.com/docker/docker/issues/20401#issuecomment -231337800์ ์ฐธ์กฐ
๋์๋ก๋ (๋์ ๋น์จ๋ก ์์ฑ / ์ญ์ ํ๋ ์ปจํ ์ด๋)์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Linux coreos_k8s_28 4.6.3-coreos #2 SMP Mon Jul 18 06:10:39 UTC 2016 x86_64 Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz GenuineIntel GNU/Linux
๋ค์์ ๋์ปค ๋๋ฒ๊ทธ ๋ก๊ทธ์ ์์ ์ ๋๋ค (SIGUSR1์ ๋์ปค ๋ฐ๋ชฌ์ผ๋ก ๋ณด๋) : https://gist.github.com/ntquyen/409376bc0d8418a31023c1546241e190
@ntquyen์ผ๋ก . ๋์ผํ os / kernel / docker ๋ฒ์ .
Repro๋ ์ฌ์ ํ ์ ์์ต๋๋ค https://github.com/docker/docker/issues/13885#issuecomment -181811082
์ ๊ฒฝ์ฐ์๋ ๋จธ์ ์ด 90 % ์ด์์ ๋์คํฌ ๊ณต๊ฐ์ ์ฌ์ฉํ์ฌ ์คํ ๋์๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๋ค์๊ฒ ๋ ๋ง์ ๋์คํฌ ๊ณต๊ฐ์ ํ ๋นํ๊ณ ๊ทธ๋ค์ ๋์ ๋ถํ ์ํ์์๋ ์ง๊ธ ๊ฝค ์์ ์ ์ผ๋ก ์คํ๋๊ณ ์์ต๋๋ค.
@mwhooker ์ธํฐํ์ด์ค๋ฅผ ์ญ์ ํ๊ธฐ ์ํด ๋ฐ๋ชฌ์ด netlink ํธ์ถ์ ์ค๋จ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๋ค ๋ฐ๋ชฌ ์ต์
์ ์ค์ ํ์ต๋๊น?
๋ด๊ฐ "์ค๋จ"์ด๋ผ๊ณ ๋งํ๋ฉด ์ค์ ๋ก ์ ์ฒด ๋ฐ๋ชฌ์ด ๋๊ฒฐ๋๋ ๊ฒ์ ์๋์ง๋ง ํด๋น ์ปจํ ์ด๋ ๊ฐ์ฒด์ ์ก์ธ์คํด์ผํ๋ API ํธ์ถ๋ ๋ท ๋งํฌ ํธ์ถ์ ๋ฉ์ถฐ์๋ ์ปจํ ์ด๋ ๋ฎคํ ์ค๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ค๋จ๋ฉ๋๋ค.
์ด๋ฌํ ์ ํ์ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํด ํ ์์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ดํด ๋ด ๋๋ค.
@pmoust ๋ฐ๋ชฌ์์ ์คํ ์ถ์ ์ ์ ๊ณต ํ ์ ์์ต๋๊น? (๊ณ ์ฐฉ ๋ ๋ฐ๋ชฌ์ SIGUSR1
๋ณด๋ด๊ธฐ ๋ฐ ๋ฐ๋ชฌ ๋ก๊ทธ์์ ์ถ์ ์์ง)
๋ํ ๋ฐ๋ชฌ์ ์์ํ ์ต์
๋ ์์ต๋๋ค.
๊ฐ์ฌ!
@ntquyen ๋๋ ๋น์ ์ด ๋ง์ ๋ฌธ์ ๊ฐ 1.11.2์์ ์์ ๋ # 22732์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฌธ์ ๋ฅผ ํ ๋ฒ๋ง ์ธ๊ธ ํ์ต๋๊น?
@ cpuguy83 ๋์๊ฒ ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ฐ๋ชฌ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
/usr/bin/docker daemon --icc=false --storage-driver=overlay --log-driver=journald --host=fd://
๊ด๋ จ์ด ์๋์ง ํ์คํ์ง ์์ง๋ง ๋ก๊ทธ์์ ์ด๋ฌํ ๋ฉ์์ง๋ฅผ ๋ง์ด ๋ฐ๊ฒฌํ์ต๋๋ค.
Jul 19 10:22:55 ip-10-0-37-191.ec2.internal systemd-networkd[852]: veth0adae8a: Removing non-existent address: fe80::e855:98ff:fe3f:8b2c/64 (valid forever)
(ํธ์ง : ์ด๊ฒ๋ค๋)
[19409.536106] unregister_netdevice: waiting for veth2304bd1 to become free. Usage count = 1
@mwhooker ํ๋จ ๋ฉ์์ง๋ ์๋ง๋ ์ฌ๊ธฐ์ docker๊ฐ ๋ถ์ด ์์ง๋ง --userland-proxy=false
์ฌ์ฉํ์ง ์๊ณ ์ด๊ฒ์ ์ป๋ ๊ฒ์ ๋๋์ต๋๋ค.
@ cpuguy83 ํฅ๋ฏธ๋ก์ด ์ ์ --proxy-mode=userspace
hyperkube๋ฅผ ์คํํ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ ์์ธ์ด ๊ฐ๋ฅํ๊ฐ์?
@mwhooker ๋ ํ๋๊ทธ ์ค๋ช
์ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฒ ๊ฐ์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก --userland-proxy=false
์ ์ปจํ
์ด๋์ ๋ธ๋ฆฌ์ง ์ธํฐํ์ด์ค์์ ํค์ดํ ๋ชจ๋๋ฅผ ํ์ฑํํฉ๋๋ค. ์ด๋ ์ปค๋์์ ๋ง์ ์ปจํ
์ด๋๋ฅผ ์ถ๊ฐ / ์ ๊ฑฐ ํ ๋ (๋๋ ๋ณ๋ ฌ๋ก ์ฌ๋ฌ ์์
์ ์ํ ํ ๋) ๊ฝค ๋์ ๋๊ฒฐ์ ์ ๋ฐํ๋ ์ผ๋ถ ์กฐ๊ฑด์ ํธ๋ฆฌ๊ฑฐํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. (๋ฐ ํ์๋๋ ์ค๋ฅ ๋ฉ์์ง).
๋ธ๋ฆฌ์ง ์ธํฐํ์ด์ค๊ฐ ํค์ดํ ๋ชจ๋์ธ์ง ํ์ธํ ์ ์์ต๋๋ค.
@ cpuguy83 ์ด๊ฒ์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๋ณ๋์ ์๋ฒ ์งํฉ์ docker ๋ช ๋ น์ ๋๋ค.
docker daemon --host=fd:// --icc=false --storage-driver=overlay --log-driver=journald --exec-opt native.cgroupdriver=systemd --bip=10.2.122.1/24 --mtu=8951 --ip-masq=true --selinux-enable
์ด veth ์ธํฐํ์ด์ค๊ฐ ํค์ดํ ๋ชจ๋์ ์์์ ์ ์ ์์ต๋๋ค.
cat /sys/devices/virtual/net/docker0/brif/veth*/hairpin_mode
1
1
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ๋ณด๊ณ ์๋ ๋์ปค ์ค๋จ ๋ฌธ์ ์ค ํ๋ ์ด์์ ์์ธ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
(fwiw ์ฐ๋ฆฌ๋ flannel https://github.com/kubernetes/kubernetes/issues/20391๊ณผ์ ์ํธ ์์ฉ ๋๋ฌธ์ kube-proxy์์ ์ฌ์ฉ์ ๊ณต๊ฐ ํ๋ก์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค)
@ cpuguy83 ๋ถํํ๋ ์ต์ ์์ ๋ coreos์์ docker 1.10์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ docker 1.12๋ก ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค. ๋์คํฌ ๊ณต๊ฐ์ ๋๋ฆฐ ํ์๋ ๋ฌธ์ ๊ฐ ์์ ํ ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ ๋ง:
# strace -q -y -v -p `pidof dockerd`
futex(0x2a69be8, FUTEX_WAIT, 0, NULL
futex(0xc820e1b508, FUTEX_WAKE, 1) = 1
futex(0x2a69be8, FUTEX_WAIT, 0, NULL) = 0
futex(0xc8224b0508, FUTEX_WAKE, 1) = 1
futex(0x2a69be8, FUTEX_WAIT, 0, NULL) = 0
futex(0x2a69be8, FUTEX_WAIT, 0, NULL
๊ณ ๊ฐ:
# strace docker ps
execve("/usr/bin/docker", ["docker", "ps"], [/* 24 vars */]) = 0
brk(0) = 0x2584000
...
stat("/root/.docker/config.json", {st_mode=S_IFREG|0600, st_size=91, ...}) = 0
openat(AT_FDCWD, "/root/.docker/config.json", O_RDONLY|O_CLOEXEC) = 3
read(3, "{\n\t\"auths\": {\n\t\t\"https://quay.io"..., 512) = 91
close(3) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
futex(0xc820068108, FUTEX_WAKE, 1) = 1
futex(0xc820068108, FUTEX_WAKE, 1) = 1
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, 23) = 0
epoll_create1(EPOLL_CLOEXEC) = 4
epoll_ctl(4, EPOLL_CTL_ADD, 3, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3136698616, u64=140182279305464}}) = 0
getsockname(3, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(3, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, [23]) = 0
futex(0xc820032d08, FUTEX_WAKE, 1) = 1
read(3, 0xc820356000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
write(3, "GET /v1.24/containers/json HTTP/"..., 95) = 95
futex(0x132aca8, FUTEX_WAIT, 0, NULL
rspec ํ ์คํธ๋ฅผ ์คํํ ๋ Debian์์ ์ฌ์ ํ ๋ฐ์ํฉ๋๋ค.
์ปค๋ : 4.4.0-28- ์ผ๋ฐ
Docker : 1.12.2-0 ~ xenial
ํ์ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ง์ง๋ง ์์ ๋ฒ์ ์ธ Docker 1.10.3-0 ~ wily๋ก ๋์๊ฐ๋ ๊ฒ์ ๋๋ค.
@mblaschke @Bregor stacktrace๋ฅผ ๊ฒ์ ํ ์ ์์ต๋๊น?
์ด๊ฒ์ ์ฐ๋ฆฌ ํ๊ฒฝ์์ ํ๋์ ์ผ์ด๋๊ณ ์์ต๋๋ค : [
$ docker info
Containers: 20
Running: 6
Paused: 0
Stopped: 14
Images: 57
Server Version: 1.11.1
Storage Driver: overlay
Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 3.18.27
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 125.8 GiB
Name: appdocker414-sjc1
ID: ZTWC:53NH:VKUZ:5FZK:SLZN:YPI4:ICK2:W7NF:UIGD:P2NQ:RHUD:PS6Y
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
์ปค๋ : 3.18.27
Stackstrace : https://gist.github.com/dmyerscough/6948218a228ff69dd6e309f8de0f0261
@dmyerscough ์ด๊ฒ์ https://github.com/docker/docker/issues/22732 ์ธ ๊ฒ ๊ฐ์ต๋๋ค. 1.11.2 ๋ฐ 1.12์์ ์์ ๋จ
๋งค๋ถ docker run --rm
๋ก ๊ฐ๋จํ ์ปจํ
์ด๋๋ฅผ ์คํํ๊ณ Docker ์๋น์ค๋ ๋๋๋ก ๋ค์ ์์๋ ๋๊น์ง ๊ต์ฐฉ ์ํ๊ฐ๋ฉ๋๋ค.
docker -D info
Containers: 6
Running: 2
Paused: 0
Stopped: 4
Images: 6
Server Version: 1.11.2
Storage Driver: overlay
Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge null
Kernel Version: 4.7.3-coreos-r2
Operating System: CoreOS 1185.3.0 (MoreOS)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.8 GiB
Name: <hostname>
ID: GFHQ:Y6IV:XCQI:Y2NA:PCQN:DEII:OSPZ:LENL:OCFU:6CBI:MDFV:EMD7
Docker Root Dir: /var/lib/docker
Debug mode (client): true
Debug mode (server): false
Username: <username>
Registry: https://index.docker.io/v1/
์ค๋จ๋๊ธฐ ์ ๋ง์ง๋ง ๋ฉ์์ง :
Nov 04 16:42:01 dockerd[1447]: time="2016-11-04T16:42:01Z" level=error msg="containerd: deleting container" error="wait: no child processes"
@ liquid-sky ๋ ๋ง์ ์ ๋ณด๊ฐ ์์ต๋๊น? ๋ฐ๋ชฌ ๋ก๊ทธ์ ์ ์ฉํ ์ ๋ณด ๋๋ ์คํ ์ถ์ ์ด ํ์๋ฉ๋๊น? ๋ํ CoreOS ์ฉ ๊ณต์ ํจํค์ง๊ฐ ์์ต๋๋ค. ์์ ๋ ํจํค์ง / ๊ตฌ์ฑ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ๋ณด๊ณ ํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
@thaJeztah ๋ถํํ๋ ์ ๋ ๋ก๊ทธ๋ ํ๋ก์ธ์ค๊ฐ ๋ง์ง๋ง์ผ๋ก ๊ธฐ๋ก ๋ ์ดํ๋ก ํ์ ํ์ต๋๋ค.
$ ps -ef | grep -w 148[9] | head -1
root 1489 1 0 Nov02 ? 00:20:35 docker daemon --host=fd:// --insecure-registry=<registry_address> --selinux-enabled
sudo strace -e verbose=all -v -p 1489
Process 1489 attached
futex(0x22509c8, FUTEX_WAIT, 0, NULL
$ sudo strace docker ps
.....
clock_gettime(CLOCK_REALTIME, {1478601605, 8732879}) = 0
clock_gettime(CLOCK_REALTIME, {1478601605, 9085011}) = 0
clock_gettime(CLOCK_REALTIME, {1478601605, 9242006}) = 0
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
connect(3, {sa_family=AF_LOCAL, sun_path="/run/systemd/journal/socket"}, 30) = 0
epoll_create1(EPOLL_CLOEXEC) = 4
epoll_ctl(4, EPOLL_CTL_ADD, 3, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3317119944, u64=140066495609800}}) = 0
getsockname(3, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(3, {sa_family=AF_LOCAL, sun_path="/run/systemd/journal/socket"}, [30]) = 0
stat("/root/.docker/config.json", 0xc8203b6fa8) = -1 ENOENT (No such file or directory)
stat("/root/.dockercfg", 0xc8203b7078) = -1 ENOENT (No such file or directory)
stat("/bin/docker-credential-secretservice", 0xc8203b7148) = -1 ENOENT (No such file or directory)
stat("/sbin/docker-credential-secretservice", 0xc8203b7218) = -1 ENOENT (No such file or directory)
stat("/usr/bin/docker-credential-secretservice", 0xc8203b72e8) = -1 ENOENT (No such file or directory)
stat("/usr/sbin/docker-credential-secretservice", 0xc8203b73b8) = -1 ENOENT (No such file or directory)
stat("/usr/local/bin/docker-credential-secretservice", 0xc8203b7488) = -1 ENOENT (No such file or directory)
stat("/usr/local/sbin/docker-credential-secretservice", 0xc8203b7558) = -1 ENOENT (No such file or directory)
stat("/opt/bin/docker-credential-secretservice", 0xc8203b7628) = -1 ENOENT (No such file or directory)
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
futex(0xc8202c9108, FUTEX_WAKE, 1) = 1
clock_gettime(CLOCK_REALTIME, {1478601605, 11810493}) = 0
clock_gettime(CLOCK_REALTIME, {1478601605, 11888495}) = 0
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 5
setsockopt(5, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
connect(5, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, 23) = 0
clock_gettime(CLOCK_REALTIME, {1478601605, 12378242}) = 0
epoll_ctl(4, EPOLL_CTL_ADD, 5, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3317119752, u64=140066495609608}}) = 0
getsockname(5, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(5, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, [23]) = 0
futex(0xc820026d08, FUTEX_WAKE, 1) = 1
read(5, 0xc8203d6000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
write(5, "GET /v1.23/containers/json HTTP/"..., 89) = 89
futex(0xc820026d08, FUTEX_WAKE, 1) = 1
futex(0x22509c8, FUTEX_WAIT, 0, NULL
๋ชจ๋ containerd
์๋น์ค๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
ps -ef | grep container[d]
root 1513 1489 0 Nov02 ? 00:00:53 containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime runc --start-timeout 2m
root 2774 1513 0 Nov02 ? 00:00:00 containerd-shim a90d4642fd88ab38c66a733e2cef8f427533e736d14d48743d42f55dec62447f /var/run/docker/libcontainerd/a90d4642fd88ab38c66a733e2cef8f427533e736d14d48743d42f55dec62447f runc
root 3946 1513 0 Nov02 ? 00:00:00 containerd-shim c8903c4a137fbb297efc3fcf2c69d746e94431f22c7fdf1a46ff7c69d04ffb0d /var/run/docker/libcontainerd/c8903c4a137fbb297efc3fcf2c69d746e94431f22c7fdf1a46ff7c69d04ffb0d runc
root 4783 1513 0 Nov02 ? 00:03:36 containerd-shim d8c2203adfc26f7d11a62d9d90ddf97f04c458f72855ee1987ed1af911a2ab55 /var/run/docker/libcontainerd/d8c2203adfc26f7d11a62d9d90ddf97f04c458f72855ee1987ed1af911a2ab55 runc
root 16684 1513 0 Nov02 ? 00:00:00 containerd-shim 4d62424ca8cceb29c877bf129cd46341a53e191c9858b93aca3d5cbcfaaa1876 /var/run/docker/libcontainerd/4d62424ca8cceb29c877bf129cd46341a53e191c9858b93aca3d5cbcfaaa1876 runc
root 16732 1513 0 Nov02 ? 00:03:24 containerd-shim 2f8e2a858306322c10aa7823c92f22133f1c5e5f267ce61e542c1d8bd537b121 /var/run/docker/libcontainerd/2f8e2a858306322c10aa7823c92f22133f1c5e5f267ce61e542c1d8bd537b121 runc
root 20902 1513 0 Nov02 ? 00:00:05 containerd-shim 58572e7fab122d593bdb096b0dd33551c22ce50a0c51d6662bc0c7b3d3bf9248 /var/run/docker/libcontainerd/58572e7fab122d593bdb096b0dd33551c22ce50a0c51d6662bc0c7b3d3bf9248 runc
$ sudo strace -T -e verbose=all -v -p 1513
Process 1513 attached
futex(0x1028dc8, FUTEX_WAIT, 0, NULL
@ liquid-sky strace
์ผ๋ฐ dockerd์ futex(0x22509c8, FUTEX_WAIT, 0, NULL
๋ ํ์๋ฉ๋๋ค. ์ด๊ฒ์ ์๋ฏธ์๋ ๋ด์ฉ์ด ์์์ ๋ณด์ฌ์ค๋๋ค. ๋ชจ๋ ์ค๋ ๋๋ฅผ ์ถ์ ํ๋ ค๋ฉด -f
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. .
๋๋ ์ด๊ฒ์ด์ด ๋ฌธ์ ์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ --rm
๋งค๋ถ ์ปจํ
์ด๋๋ฅผ ์คํํ๊ณ Docker๊ฐ ํด๋น ํน์ ์ปจํ
์ด๋์ ๋ฉ์ถ๋ค๋ ์๋ฏธ์์ docker ps
๊ฐ ๋งค๋ฌ๋ฆฐ ์ผ๋ถ ๋
ธ๋์๋ unregistered loopback device
๋ฉ์์ง.
๊ฒฝ์ฐ์ ๋ฐ๋ผ Docker ๋ฐ๋ชฌ์ strace -f ์ค ๋ํซ :
[pid 1507] select(0, NULL, NULL, NULL, {0, 20} <unfinished ...>
[pid 1766] write(23, "\2\0\0\0\0\0\0\321I1108 10:48:12.429657 "..., 217) = 217
[pid 1507] <... select resumed> ) = 0 (Timeout)
[pid 1766] futex(0xc822075d08, FUTEX_WAIT, 0, NULL <unfinished ...>
[pid 1507] clock_gettime(CLOCK_MONOTONIC, {514752, 140621361}) = 0
[pid 1875] <... epoll_wait resumed> {{EPOLLIN|EPOLLOUT|EPOLLRDHUP, {u32=1298424080, u64=140528333381904}}}, 128, -1) = 1
[pid 1507] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1875] epoll_wait(6, <unfinished ...>
[pid 1507] <... clock_gettime resumed> {1478602092, 431376727}) = 0
[pid 1507] select(0, NULL, NULL, NULL, {0, 20} <unfinished ...>
[pid 1514] <... read resumed> "I1108 10:48:12.431656 12 mast"..., 32768) = 1674
[pid 1507] <... select resumed> ) = 0 (Timeout)
[pid 1514] futex(0xc822075d08, FUTEX_WAKE, 1 <unfinished ...>
[pid 1507] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 1766] <... futex resumed> ) = 0
[pid 1514] <... futex resumed> ) = 1
[pid 1766] select(0, NULL, NULL, NULL, {0, 100} <unfinished ...>
[pid 1514] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1507] <... clock_gettime resumed> {514752, 142476308}) = 0
[pid 1514] <... clock_gettime resumed> {1478602092, 432632124}) = 0
[pid 1507] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.431656 "..., 349 <unfinished ...>
[pid 1507] <... clock_gettime resumed> {1478602092, 432677401}) = 0
[pid 1514] <... write resumed> ) = 349
[pid 1507] select(0, NULL, NULL, NULL, {0, 20} <unfinished ...>
[pid 1514] clock_gettime(CLOCK_REALTIME, {1478602092, 432812895}) = 0
[pid 1766] <... select resumed> ) = 0 (Timeout)
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.431763 "..., 349 <unfinished ...>
[pid 1507] <... select resumed> ) = 0 (Timeout)
[pid 1514] <... write resumed> ) = 349
[pid 1507] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 1514] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1507] <... clock_gettime resumed> {514752, 142831922}) = 0
[pid 1514] <... clock_gettime resumed> {1478602092, 432948135}) = 0
[pid 1507] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.431874 "..., 349 <unfinished ...>
[pid 1507] <... clock_gettime resumed> {1478602092, 432989394}) = 0
[pid 1514] <... write resumed> ) = 349
[pid 1507] select(0, NULL, NULL, NULL, {0, 20} <unfinished ...>
[pid 1766] read(44, "I1108 10:48:12.432255 12 mast"..., 32768) = 837
[pid 1514] clock_gettime(CLOCK_REALTIME, {1478602092, 433114452}) = 0
[pid 1766] read(44, <unfinished ...>
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.431958 "..., 349) = 349
[pid 1507] <... select resumed> ) = 0 (Timeout)
[pid 1514] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1507] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 1514] <... clock_gettime resumed> {1478602092, 433272783}) = 0
[pid 1507] <... clock_gettime resumed> {514752, 143176397}) = 0
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.432035 "..., 349 <unfinished ...>
[pid 1507] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1514] <... write resumed> ) = 349
[pid 1507] <... clock_gettime resumed> {1478602092, 433350170}) = 0
[pid 1514] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1507] select(0, NULL, NULL, NULL, {0, 20} <unfinished ...>
[pid 1514] <... clock_gettime resumed> {1478602092, 433416138}) = 0
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.432126 "..., 349) = 349
[pid 1514] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1507] <... select resumed> ) = 0 (Timeout)
[pid 1514] <... clock_gettime resumed> {1478602092, 433605782}) = 0
[pid 1507] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.432255 "..., 349 <unfinished ...>
[pid 1507] <... clock_gettime resumed> {514752, 143537029}) = 0
[pid 1514] <... write resumed> ) = 349
[pid 1507] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1514] clock_gettime(CLOCK_REALTIME, {1478602092, 433748730}) = 0
[pid 1507] <... clock_gettime resumed> {1478602092, 433752245}) = 0
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.432343 "..., 348 <unfinished ...>
[pid 1507] futex(0xc8211b2d08, FUTEX_WAKE, 1 <unfinished ...>
[pid 1514] <... write resumed> ) = 348
[pid 1507] <... futex resumed> ) = 1
[pid 10488] <... futex resumed> ) = 0
[pid 10488] write(23, "\2\0\0\0\0\0\t\317I1108 10:48:12.431656 "..., 2519 <unfinished ...>
[pid 1514] clock_gettime(CLOCK_REALTIME, <unfinished ...>
[pid 1507] select(0, NULL, NULL, NULL, {0, 20} <unfinished ...>
[pid 10488] <... write resumed> ) = 2519
[pid 10488] futex(0xc8211b2d08, FUTEX_WAIT, 0, NULL <unfinished ...>
[pid 1875] <... epoll_wait resumed> {{EPOLLIN|EPOLLOUT|EPOLLRDHUP, {u32=1298424080, u64=140528333381904}}}, 128, -1) = 1
[pid 1514] <... clock_gettime resumed> {1478602092, 434094221}) = 0
[pid 1514] write(45, "{\"log\":\"I1108 10:48:12.432445 "..., 349) = 349
[pid 1514] futex(0xc820209908, FUTEX_WAIT, 0, NULL <unfinished ...>
[pid 1507] <... select resumed> ) = 0 (Timeout)
[pid 1507] clock_gettime(CLOCK_MONOTONIC, {514752, 144370753}) = 0
[pid 1507] futex(0x224fe10, FUTEX_WAIT, 0, {60, 0} <unfinished ...>
[pid 1875] epoll_wait(6, <unfinished ...>
[pid 1683] <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
[pid 1683] clock_gettime(CLOCK_MONOTONIC, {514752, 292709791}) = 0
[pid 1683] futex(0x224fe10, FUTEX_WAKE, 1) = 1
[pid 1507] <... futex resumed> ) = 0
centos 7์์ ๋ฃจํ๋ฐฑ๊ณผ ํจ๊ป devicemapper๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ฌด์จ ์ผ์ด ์์๋์ง ํ์คํ์ง ์์ง๋ง dmsetup udevcookies
& dmsetup udevcomplete <cookie>
๊ฐ ์ ์๊ฒ ํจ๊ณผ์ ์
๋๋ค.
@thaJeztah ๋น์ ์ ๋ฌด์จ ์ผ์ด ์ผ์ด ๋ฌ๋์ง ์ค๋ช ํ ์ ์์ต๋๊น?
๋๋ ์ฌ๊ธฐ์์ ์ด์ ์ ์ฌ๋ฌ ๋ฒ ์ธ๊ธ ๋ ๊ฒ์ ๋ฐ๋ณตํ๊ณ ์๋ค. ์ค๋จ์ด ๋ฐ์ํ๋ฉด SIGUSR1 ์ ํธ๋ฅผ ๋ฐ๋ชฌ ํ๋ก์ธ์ค๋ก ๋ณด๋ด๊ณ ๋ก๊ทธ์ ๊ธฐ๋ก ๋ ์ถ์ ์ ๋ณต์ฌํ์ญ์์ค. Strace ์ถ๋ ฅ์ ์ ์ง ๋๋ฒ๊น ์ ์ ์ฉํ์ง ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค์์ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ๋ฉ์ท๊ฑฐ๋ ์ ์๊ธฐ ์ํ์ธ์ง ํ์ํ์ง ์์ต๋๋ค.
@tonistiigi ๊ฐ Hang-under-load๋ก
$ docker info
Containers: 18
Running: 15
Paused: 0
Stopped: 3
Images: 232
Server Version: 1.12.3
Storage Driver: devicemapper
Pool Name: vg_ex-docker--pool
Pool Blocksize: 65.54 kB
Base Device Size: 107.4 GB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 132.8 GB
Data Space Total: 805.3 GB
Data Space Available: 672.5 GB
Metadata Space Used: 98.46 MB
Metadata Space Total: 4.001 GB
Metadata Space Available: 3.903 GB
Thin Pool Minimum Free Space: 80.53 GB
Udev Sync Supported: true
Deferred Removal Enabled: true
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null bridge host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-327.36.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 56
Total Memory: 251.6 GiB
Name: server.masked.example.com
ID: Z7J7:CLEG:KZPK:TNEI:QLYL:JBTO:XNM4:NX2X:KPQC:VHPC:6SFS:G4GR
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
127.0.0.0/8
์ ๊ณต๋ ๋ก๊ทธ์์ dm_udev_wait
์ ๋ฉ์ถ ๊ฒ ๊ฐ์ต๋๋ค.
goroutine 2747 [syscall, 12 minutes, locked to thread]:
github.com/docker/docker/pkg/devicemapper._Cfunc_dm_udev_wait(0xc80d4d887c, 0xc800000000)
\t??:0 +0x41
github.com/docker/docker/pkg/devicemapper.dmUdevWaitFct(0xd4d887c, 0x44288e)
\t/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper_wrapper.go:222 +0x22
github.com/docker/docker/pkg/devicemapper.UdevWait(0xc821c7e8f8, 0x0, 0x0)
\t/root/rpmbuild/BUILD/docker-engine/.gopath/src
Nov 17 06:50:13 server docker: /github.com/docker/docker/pkg/devicemapper/devmapper.go:259 +0x3b
github.com/docker/docker/pkg/devicemapper.activateDevice(0xc82021a880, 0x1e, 0xc8202f0cc0, 0x57, 0x9608, 0x1900000000, 0x0, 0x0, 0x0, 0x0)
\t/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:771 +0x8b8
github.com/docker/docker/pkg/devicemapper.ActivateDevice(0xc82021a880, 0x1e, 0xc8202f0cc0, 0x57, 0x9608, 0x1900000000, 0x0, 0x0)
\t/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:732 +0x78
github.com/docker/docker/daemon/graphdriver/devmapper.(*DeviceSet).activateDeviceIfNeeded(0xc8200b6340, 0xc8208e0a40, 0xc8200b6300, 0x0, 0x0)
\t/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/deviceset.go:539 +0x58d
github.com/docker/docker/daemon/graphdriver/devmapper.(*DeviceSet).MountDevice(0xc8200b6340, 0xc820a00200, 0x40, 0xc820517ab0, 0x61, 0x0, 0x0, 0x0, 0x0)
\t/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/deviceset.go:2269 +0x2cd
github.com/docker/docker/daemon/graphdriver/devmapper.(*Driver).Get(0xc82047bf40, 0xc820a00200, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
\t/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/driver.go:185 +0x62f
github.com/docker/docker/daemon/graphdriver.(*NaiveDiffDriver).Get(0xc8201c2680, 0xc820a00200, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
\t<autogenerated>:30 +0xa6
๋น์ทํ ๋ฌธ์ # 27900 # 27543
@ AaronDMarasco-VSI dmsetup udevcomplete_all
์ฌ์ฉํด ๋ณด์
จ์ต๋๊น?
@ coolljt0725 ์๋์,๋ณด๊ณ ๋ฅผ ์ํด ๋ก๊ทธ๋ฅผ ๋คํ ํ ํ ๋ ์ด์ ๋ฐ๋ชฌ์ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ๋ชฌ์ ๋ค์ ์์ํ์ต๋๋ค.
@tonistiigi , SIGUSR1 ์ดํ Docker ๋ฐ๋ชฌ์ ์ ์ฒด ์คํ ์ถ์ ์ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์์ต๋๋ค.
@ liquid-sky์ ์ถ์ ์ด netlink ์์ผ์์ ์ฐจ๋จ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
goroutine 13038 [syscall, 9838 minutes, locked to thread]:
syscall.Syscall6(0x2d, 0x16, 0xc820fc3000, 0x1000, 0x0, 0xc8219bc028, 0xc8219bc024, 0x0, 0x300000002, 0x66b5a6)
/usr/lib/go1.6/src/syscall/asm_linux_amd64.s:44 +0x5
syscall.recvfrom(0x16, 0xc820fc3000, 0x1000, 0x1000, 0x0, 0xc8219bc028, 0xc8219bc024, 0x427289, 0x0, 0x0)
/usr/lib/go1.6/src/syscall/zsyscall_linux_amd64.go:1712 +0x9e
syscall.Recvfrom(0x16, 0xc820fc3000, 0x1000, 0x1000, 0x0, 0x1000, 0x0, 0x0, 0x0, 0x0)
/usr/lib/go1.6/src/syscall/syscall_unix.go:251 +0xb9
github.com/vishvananda/netlink/nl.(*NetlinkSocket).Receive(0xc820c6c5e0, 0x0, 0x0, 0x0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/nl/nl_linux.go:341 +0xae
github.com/vishvananda/netlink/nl.(*NetlinkRequest).Execute(0xc820dded20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/nl/nl_linux.go:228 +0x20b
github.com/vishvananda/netlink.LinkSetMasterByIndex(0
x7f1e88c67c20, 0xc820e00630, 0x3, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/link_linux.go:231 +0x3b0
github.com/vishvananda/netlink.LinkSetMaster(0x7f1e88c67c20, 0xc820e00630, 0xc8219bc550, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/link_linux.go:205 +0xb7
github.com/docker/libnetwork/drivers/bridge.addToBridge(0xc820c78830, 0xb, 0x177bf88, 0x7, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/docker/libnetwork/drivers/bridge/bridge.go:782 +0x275
github.com/docker/libnetwork/drivers/bridge.(*driver).CreateEndpoint(0xc820316640, 0xc8201f6840, 0x40, 0xc821879500, 0x40, 0x7f1e88c67bd8, 0xc820f38580, 0xc821a87bf0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/docker/libnetwork/drivers/bridge/bridge.go:1004 +0x1436
github.com/docker/libnetwork.(*network).addEndpoint(0xc820f026c0, 0xc8209f2300, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/docker/libnetwork/network.go:749 +0x21b
github.com/docker/libnetwork.(*network).CreateEndpoint(0xc820f026c0, 0xc820eb1909, 0x6, 0xc8210af160, 0x4, 0x4, 0x0, 0x0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/docker/libnetwork/network.go:813 +0xaa7
github.com/docker/docker/daemon.(*Daemon).connectToNetwork(0xc82044e480, 0xc820e661c0, 0x177aea8, 0x6, 0xc820448c00, 0x0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/.gopath/src/github.com/docker/docker/daemon/container_operations.go:539 +0x39f
github.com/docker/docker/daemon.(*Daemon).allocateNetwork(0xc82044e480, 0xc820e661c0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker
-1.11.2/.gopath/src/github.com/docker/docker/daemon/container_operations.go:401 +0x373
github.com/docker/docker/daemon.(*Daemon).initializeNetworking(0xc82044e480, 0xc820e661c0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/.gopath/src/github.com/docker/docker/daemon/container_operations.go:680 +0x459
github.com/docker/docker/daemon.(*Daemon).containerStart(0xc82044e480, 0xc820e661c0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/.gopath/src/github.com/docker/docker/daemon/start.go:125 +0x219
github.com/docker/docker/daemon.(*Daemon).ContainerStart(0xc82044e480, 0xc820ed61d7, 0x40, 0x0, 0x0, 0x0)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/.gopath/src/github.com/docker/docker/daemon/start.go:75 +0x575
cc @aboch
๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ์ํ๋ฏ์ด ์ด๊ฒ์ ์ปค๋์์ ๋ฐ์ํ๋ ๋งค์ฐ ๋์ ์ผ์ ๋ถ์์ฉ ์ผ ์ ์์ต๋๋ค.
์ด ์ํฉ์ ์ํํ๊ธฐ ์ํด https://github.com/docker/libnetwork/pull/1557 ์ ์ถ๊ฐํ๊ณ ์์ต๋๋ค.
์ผ๋ถ ์ค๋ฅ ๋ฉ์์ง ( journalctl syslog์์ 2 ๊ฐ์ 3 ๊ฐ ์คํ ์ถ์ ์ด์์ ์ ์์ต๋๋ค.
๋์ปค ์ด๋ฏธ์ง์ ๋ํ rspec / serverspec ํ
์คํธ๋ฅผ ์คํ ์ค์ด๋ฉฐ์ด ์ํ์์๋ ์ปค๊ฐ ์๋ตํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ
์คํธ๊ฐ 20 ๋ถ ์ด์ ์ค๋จ๋์์ต๋๋ค (์คํจ ํ ๊ฒฝ์ฐ 5 ํ ์ฌ์๋).
๊ฐ ์ด๋ฏธ์ง ํ
์คํธ๋ 5 ๋ถ ์ด๋ด์ ์๋ฃ๋๋ฉฐ ์ด์ ํ
์คํธ๋ ์ต์ 30 ๋ถ ๋๋ 60 ๋ถ ๋์ ์คํ๋ฉ๋๋ค.
https://gist.github.com/mblaschke/d5d38cb34f6178e50e465c6e1f02131c
uname -a :
Linux webdevops.infogene.fr 4.4.0-47-generic # 68-Ubuntu SMP 10 ์ 26 ์ผ ์์์ผ 19:39:52 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux
๋์ปค ์ ๋ณด :
์ปจํ
์ด๋ : 5
๋ฌ๋ฆฌ๊ธฐ : 1
์ผ์ ์ค์ง๋จ : 0
์ค์ง๋จ : 4
์ด๋ฏธ์ง : 1208
์๋ฒ ๋ฒ์ : 1.12.3
์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ : aufs
๋ฃจํธ ๋๋ ํ ๋ฆฌ : / var / lib / docker / aufs
๋ฐฑ์
ํ์ผ ์์คํ
: extfs
Dirs : 449
Dirperm1 ์ง์ : true
๋ก๊น
๋๋ผ์ด๋ฒ : json-file
Cgroup ๋๋ผ์ด๋ฒ : cgroupfs
ํ๋ฌ๊ทธ์ธ :
๋ณผ๋ฅจ : ๋ก์ปฌ
๋คํธ์ํฌ : ๋ธ๋ฆฌ์ง ํธ์คํธ ๋ ์ค๋ฒ๋ ์ด
Swarm : ๋นํ์ฑ
๋ฐํ์ : runc
๊ธฐ๋ณธ ๋ฐํ์ : runc
๋ณด์ ์ต์
: apparmor seccomp
์ปค๋ ๋ฒ์ : 4.4.0-47-generic
์ด์ ์ฒด์ : Ubuntu 16.04.1 LTS
OSType : ๋ฆฌ๋
์ค
์ํคํ
์ฒ : x86_64
CPU : 7
์ด ๋ฉ๋ชจ๋ฆฌ : 11.73GiB
์ด๋ฆ : webdevops.infogene.fr
ID : DGNM : G3MV : ZMMV : HY6K : UPLU : CMEV : VHCA : RVY3 : CRV7 : FS5M : KMVQ : MQO5
Docker ๋ฃจํธ ๋๋ ํ ๋ฆฌ : / var / lib / docker
๋๋ฒ๊ทธ ๋ชจ๋ (ํด๋ผ์ด์ธํธ) : false
๋๋ฒ๊ทธ ๋ชจ๋ (์๋ฒ) : false
๋ ์ง์คํธ๋ฆฌ : https://index.docker.io/v1/
๊ฒฝ๊ณ : ์ค์ ์ ํ ์ง์ ์์
์์ ํ์ง ์์ ๋ ์ง์คํธ๋ฆฌ :
127.0.0.0/8
๋ค์์ serverspec์ ๊ฒฐ๊ณผ ์ถ๋ ฅ์ ๋๋ค.
https://gist.github.com/mblaschke/21a521367a2a2b71301607482647a748
@mblaschke ๋๋ ๋น์ ์ ํ์ ์ ์ดํด ๋ณด์์ต๋๋ค (https://gist.github.com/tonistiigi/0fb0abfb068a89975c072b68e6ed07ce). ๋๋ ๊ฑฐ๊ธฐ์์ ์์ฌ์ค๋ฌ์ด ๊ฒ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ชจ๋ ์ฅ๊ธฐ ์คํ ๊ณ ๋ฃจํด์ ์คํ์ค์ธ ์ปจํ
์ด๋ ๋๋ ์คํ์ค์ธ ๊ณ ๋ฃจํด์ด ์ ๊ธ์ ๋ณด์ ํ์ง ์์ผ๋ฏ๋ก ์ ์์ธ ๊ฐ๋ฐฉํ io ์ฌ๋ณธ์์ ๊ฐ์ ธ์ต๋๋ค. ์ถ์ ์์ docker ps
๋๋ docker exec/stop
์ ๊ฐ์ ๋ค๋ฅธ ๋ช
๋ น์ด ๊ทํ์ ๊ฒฝ์ฐ์ ์ฐจ๋จ๋์ง ์์์ ๊ฒ์ผ๋ก ์์ํ๊ณ ๊ทํ๊ฐ ๋ณธ ์ค๋จ์ ํน์ ์ปจํ
์ด๋ ๋๋ exec๊ฐ ์๋ฃ ๋ ๊ฒ์ผ๋ก ์์ํ์ง๋ง ์๋ฃ๋์ง ์์์ต๋๋ค. ํฐ. ์ด๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์
์์ฒด๊ฐ ๋ฌด์ธ๊ฐ์ ๋งค๋ฌ๋ ค ์๊ฑฐ๋ ์ปจํ
์ด๋์ ๋ํ ์ด๋ฒคํธ๋ฅผ ๋ณด๋ด์ง ์๋ ์ปจํ
์ด๋์ ๊ด๋ จ์ด์์ ์ ์์ต๋๋ค (cc @mlaventure).
๋ก๊ทธ์์๋ ๊ฒฝ๊ณ ๋ https://github.com/docker/containerd/pull/351 ๋ก ์์ ํด์ผํฉ๋๋ค. ์คํธ์ ์ ๋ฐํ ๋ฟ ์ฌ๊ฐํ ๋ฌธ์ ๋ ์๋๋๋ค. ๋ก๊ทธ์์ ๋๋ฒ๊ทธ ๋ก๊ทธ๊ฐ ํ์ฑํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ชฌ์ ์ ์ก ๋ ์์ฌ์ค๋ฌ์ด ๋ช ๋ น์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์คํ ์ถ์ ์ ์ํํ๊ธฐ ์ ์ ๋ช ๋ถ ๋์ ์๋ฏธ์๋ ๋ก๊ทธ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋์ผํ ์ฝ๋๊ฐ Docker 1.10.3์์ ์๋ํ์ง๋ง Docker 1.11.x ์ดํ์๋ ์๋ํ์ง ์์ต๋๋ค. serverspec ํ
์คํธ๊ฐ ์๊ฐ ์ด๊ณผ์ ํจ๊ป ๋ฌด์์๋ก ์คํจํฉ๋๋ค.
์ง๋ ฌ ๋ชจ๋๋ณด๋ค ๋ณ๋ ฌ๋ก ํ
์คํธ๋ฅผ ์คํํ ๋ (์ : 4 ์ฝ์ด CPU์์ 2 ๊ฐ ๋๋ 4 ๊ฐ์ ํ
์คํธ๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ) ๋ ์์ฃผ ๋ฐ์ํ๋ค๋ ๋๋์ด ์์ง๋ง ๊ฒฐ๊ณผ๋ ๋์ผํฉ๋๋ค. ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋ ํ
์คํธ ์คํ์ด ์์ต๋๋ค.
Docker 1.11์์๋ ์ ์ฒด docker ๋ฐ๋ชฌ์ด ์ค๋จ๋์์ต๋๋ค. 1.12 Docker๋ exec ๋ง ์คํจํ๊ฑฐ๋ ์๊ฐ ์ด๊ณผ๋ก ์คํ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
@mblaschke ์ถ์ ๋
์ด๋ค exec ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์์ต๋๊น? ์์ฒด ์ธ์ ID๋ก ์ ํ๋ก์ธ์ค๋ฅผ ํฌํฌํฉ๋๊น?
https://github.com/rancher/rancher ์ ์ํด ํ ๋น ๋ IP ์ฃผ์๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ชจ๋ ์ปจํ
์ด๋์์ ์ ๊ธฐ์ ์ผ๋ก ip addr
๋ฅผ ์คํํฉ๋๋ค. ์์ง)
ํ๋ก๋์
ํด๋ฌ์คํฐ ๋ด์์ ์ ๊ธฐ์ ์ผ๋ก ์ค๋จ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
ip addr
์ฌ์ฉํ๋ฉด ์์ฒด ์ธ์
ID๋ก ์คํ๋๋ ํ๋ก์ธ์ค์ ๋ณ๋ค๋ฅธ ๋ง๋ฒ์ด ์์ต๋๋ค.
๋ฟก ๋นต๋จ
์ฐ๋ฆฌ๋ ํ
์คํธ๋ฅผ ์ํด serverspec / rspec์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋งค์ฐ ๊ฐ๋จํ ํ
์คํธ (ํ์ผ ๊ฒ์ฌ, ๊ฐ๋จํ ๋ช
๋ น ๊ฒ์ฌ, ๊ฐ๋จํ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฒ์ฌ)๋ฅผ ์คํํ๊ณ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋จ์ํ ํ์ผ ๊ถํ ๊ฒ์ฌ์กฐ์ฐจ๋ ์คํจํฉ๋๋ค.
ํ
์คํธ๋ ์ฌ๊ธฐ์ ์์ต๋๋ค (๊ทธ๋ฌ๋ ์คํ์ ์ํด ์ผ๋ถ ํ๊ฒฝ ์ค์ ์ด ํ์ํจ) :
https://github.com/webdevops/Dockerfile/tree/develop/tests/serverspec
์ฝ๋๋ฒ ์ด์ค๋ก ์๋ํด ๋ณผ ์ ์์ต๋๋ค.
make requirements
bin/console docker:pull --threads=auto
(ํ๋ธ์์ ์ต๋ 180 ๊ฐ์ ์ด๋ฏธ์ง ๊ฐ์ ธ ์ค๊ธฐ)bin/console test:serverspec --threads=auto
๋ชจ๋ parallized ๋ชจ๋์์ ํ
์คํธ ๋๋ ์คํํ๋ ค๋ฉด bin/console test:serverspec
์๋ฆฌ์ผ ๋ชจ๋๋ฅผ@GameScripting ์ง๊ธ ํผ๋ ์ค๋ฌ์์ : sweat_smile :. @mblaschke ๊ฐ ์คํ๋๋ ๊ฒ๊ณผ ๋์ผํ ์ปจํ ์คํธ๋ฅผ ์ธ๊ธํ๊ณ ์์ต๋๊น?
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ด๋ค Docker ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ๊ทํ์ ์ง๋ฌธ์ ๋๋ตํ๊ธฐ ์ํด ip addr๊ฐ ์ด์ ๊ฐ์ ์ผ์ ํ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค.
์ด๋ค ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ์ฌ์ฉ์ค์ธ ์ ํํ docker exec ๋ช ๋ น์ ๋ฌด์์ ๋๊น?
์ฃ์กํฉ๋๋ค. ์ข ๋ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ค ์๋๊ฐ ์์์ต๋๋ค.
๋๋ ๋์ผํ ๋งฅ๋ฝ์ ์ธ๊ธํ์ง ์๊ณ ๊ทธ๊ฐ ์ธ๊ธ ํ ํ
์คํธ ์ค์ํธ๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋ฌธ์ ์ ์์ธ์ด ๋ ์์๋ ์์
์ ๋ํ ๋ ๋ง์ (์ ์ฉํ) ์ปจํ
์คํธ ๋ฐ / ๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ์ถ์์ต๋๋ค.
์ด ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ์์ด ์ฃผ์ ๋ฌธ์ ๋ ์์ง ์์ ์ ์ด๊ณ ์ฌํ ๊ฐ๋ฅํ ๋จ๊ณ๋ฅผ ์ ์ํ์ฌ ์ค๋จ์ ์ ๋ฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
@mblaschke ๊ฐ ๋ฒ๊ทธ๋ฅผ ์์ ์ ์ผ๋ก ํธ๋ฆฌ๊ฑฐ ํ ์ ์๋๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์ฐพ์ ๊ฒ ๊ฐ์ต๋๋ค.
Docker 1.11.2์ ํจ๊ป CoreOS ์์ (1185.3.0)์ ์ฌ์ฉํฉ๋๋ค.
์ผ๋ถ ๋ณ์๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ด Redis ์ปจํ
์ด๋์ docker exec๋ก ์๊ณ๋ฅผ ์คํํฉ๋๋ค. ์ ์ด๋ ํ๋ฃจ ๋์ Docker ๋ฐ๋ชฌ์ด ์ค๋จ๋ฉ๋๋ค.
ํ์ง๋ง ํด๊ฒฐ์ฑ
์ ์ฐพ์ ๋๊น์ง containerd
(https://github.com/docker/containerd)์ ctr
์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ์ค์ธ ์ปจํ
์ด๋ ๋ด์์ ํ๋ก์ธ์ค๋ฅผ ์์ํฉ๋๋ค. ์ปจํ
์ด๋๋ฅผ ์์ํ๊ณ ์ค์งํ๋๋ฐ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด docker 1.11.2์ ํตํฉ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
: ๋ถํํ๊ฒ๋ ๊ทธ๊ฒ์ CoreOS I์ ๋ ๋ค๋ฅธ ๋ฒ๊ทธ๊ฐ ์ฌ๊ธฐ์๋ณด๊ณ ๊ฐ https://github.com/docker/containerd/issues/356#event ๋น์ ์ด ์ ๊ธฐ์ ์ผ๋ก ์ฒญ์ / tmp๋ฅผ ํ์ํ์ง๋ง, ์ ์ด๋์ด์๋ค, ๊ทธ๋์ (๊ทธ๋ค์ ์ดํ ๊ณ ์ ) -874038823๋ฅผ ํ๋ก๋์
์์ ์ผ์ฃผ์ผ ๋์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
๋ค์ docker exec ์์ :
docker exec -i container_name /bin/sh 'echo "Hello"'
ctr๋ก ๋ฒ์ญ ํ ์ ์์ต๋๋ค.
/usr/bin/ctr --address=/run/docker/libcontainerd/docker-containerd.sock containers exec --id=${id_of_the_running_container} --pid=any_unique_process_name -a --cwd=/ /bin/sh -c 'echo "Hello"'
๋ฐ๋ผ์ ์์ ํด๊ฒฐ์ฑ ์ผ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ctr๋ก ๋ณํ ํ ์ ์์ต๋๋ค.
@mblaschke ๊ฒ์ ํ ๋ช
๋ น์ด ์คํจํ์ง๋ง docker ์คํจ์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค. https://gist.github.com/tonistiigi/86badf5a41dff3fe53bd68d8e83e4ec4 ๋๋ฒ๊ทธ ๋ก๊ทธ๋ฅผ ํ์ฑํ ํ ์ ์์ต๋๊น? ๋ง์คํฐ ๋น๋๋ ๋ํ ๋ฐ๋ชฌ ๋ด๋ถ์ ๋ํ ๋ ๋ง์ ๋๋ฒ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ sigusr1 ์ ํธ๋ก containerd๋ฅผ ์ถ์ ํ ์๋ ์์ต๋๋ค. ๋ฉ์ถ ํ๋ก์ธ์ค๋ฅผ ์ถ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ps aux
๋ ๋์์ด ๋ ์ ์์ต๋๋ค.
ํํ
์ํ์ธ ๋ธ๋๋ฆฌ์คํธ (ํ์ฌ ๋น๋ ๋ฌธ์ )๋ฅผ ์์ด ๋ฒ๋ ธ์ผ๋ฏ๋ก ๋ค์์ ์คํํ์ญ์์ค. bin/console test:serverspec --threads=auto --blacklist=:alpine
์ฃ์กํฉ๋๋ค :(
@mblaschke ์ฌ์ ํ ๋์ปค ๋ฌธ์ ์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค. docker exec <id> /usr/bin/php -i
์ ๊ฑธ๋ ค ์์ต๋๋ค. ์ฌ์ฉ์ค์ธ ์ด๋ฏธ์ง๋ฅผ ์ถ์ ํ๊ณ ์๋์ผ๋ก ์์ํ๋ฉด์ด ์ด๋ฏธ์ง์ ์ค์ PHP๊ฐ ์ค์น๋์ด ์์ง ์์์ ์ ์ ์์ต๋๋ค.
root<strong i="8">@254424aecc57</strong>:/# php -v
HipHop VM 3.11.1 (rel)
Compiler: 3.11.1+dfsg-1ubuntu1
Repo schema: 2f678922fc70b326c82e56bedc2fc106c2faca61
๊ทธ๋ฆฌ๊ณ ์ด HipHopVM์ -i
์ง์ํ์ง ์๊ณ ๋ธ๋ก ๋ง ์ง์ํฉ๋๋ค.
ํํ
๋๋ ์ง๋ Docker ๋ฒ์ ์์ ์ค๋ซ๋์์ด ๋ฒ๊ทธ๋ฅผ ์ฌ๋ฅํ๊ณ ์์๊ณ ์ฐ๋ฆฌ ํ
์คํธ ์ค์ํธ์์์ด ๋ฒ๊ทธ๋ฅผ ๋ณด์ง ๋ชปํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ณ ์ณค์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. / o
๋น๋ ๋ก๊ทธ๋ฅผ ๊ฒ์ ํ ๊ฒฐ๊ณผ 1.12.3์ ์ฌ์ฉํ ๋ ํ๋์ ํ ์คํธ ์คํจ (hhvm ํ ์คํธ๊ฐ ์๋ ์์์ ๋ฌธ์ )๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ฐ๋ฆฌ๋ Docker๋ฅผ ๊ณ์ ๊ฐ์กฐํ๊ณ ๋ฌธ์ ๋ฅผ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
@ coolljt0725 ๋ฐฉ๊ธ Docker๊ฐ ๋ค์ ์ค๋จ ๋ ๊ฒ์ ์ฐพ๊ธฐ ์ํด ์ผํ๋ฌ ๋์ ์์ต๋๋ค. docker ps
๋) ํ ์ธ์
์ ์ค๋จ๋์๊ณ sudo service docker stop
์ค๋จ๋์์ต๋๋ค. ์ธ ๋ฒ์งธ ์ธ์
์ ์ด์์ต๋๋ค.
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
docker-pool vg_ex twi-aot--- 750.00g 63.49 7.88
$ sudo dmsetup udevcomplete_all
This operation will destroy all semaphores with keys that have a prefix 3405 (0xd4d).
Do you really want to continue? [y/n]: y
2 semaphores with keys prefixed by 3405 (0xd4d) destroyed. 0 skipped.
์๋ฃ ๋ ์๋ง์ ๋ค๋ฅธ ๋ ์ธ์
์ ์ฐจ๋จ ํด์ ๋์์ต๋๋ค. ์ด์ ์ ๋ฌธ์ ๊ฐ ๋์๊ธฐ ๋๋ฌธ์ ๋์คํฌ ๊ณต๊ฐ์ ํ์ธํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋จผ์ ์ดํด ๋ณด์์ต๋๋ค. 2 ๊ฐ์ ์ธ๋งํฌ์ด๋ ๋ด๊ฐ ๊ฐ์ง ๋ ๋ฒ์ ํธ์ถ ์ผ ์ ์์ง๋ง Jenkins ์๋ฒ์์ ๋ง์ docker
ํธ์ถ์ด ๊ฑธ๋ ค ์์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ฃผ๋ณ์ ์ฐ๋ฅด๊ณ ์์๋ ๊ฒ์
๋๋ค ...
dmsetup
ํธ์ถ์ ์ํ ํ ํ ์ค๋จ ๋ ์ถ๋ ฅ์ ์, docker run
๋ ๋ฉฐ์น ์ ์ ์์๋์์ต๋๋ค.
docker run -td -v /opt/Xilinx/:/opt/Xilinx/:ro -v /opt/Modelsim/:/opt/Modelsim/:ro -v /data/jenkins_workspace_modelsim/workspace/examples_hdl/APPLICATION/bias/HDL_PLATFORM/modelsim_pf/TARGET_OS/7:/build --name jenkins-examples_hdl-APPLICATION--bias--HDL_PLATFORM--modelsim_pf--TARGET_OS--7-546 jenkins/build:v3-C7 /bin/sleep 10m
docker: An error occurred trying to connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create?name=jenkins-examples_hdl-APPLICATION--bias--HDL_PLATFORM--modelsim_pf--TARGET_OS--7-546: EOF.
See 'docker run --help'.
Docker 1.11.2 ์ค๋จ, ์คํ ์ถ์ : https://gist.github.com/Calpicow/871621ba807d6eb9b18b91e8c2eb4eef
@Calpicow์ ์ถ์ ์ด ๋ฉ์ถ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ udev_wait ์ผ์ด์ค๋ฅผ ๋ณด์ง ์์ต๋๋ค. ํธ์ ๋ด์ ๊ฐ๊ธฐ
goroutine 488 [syscall, 10 minutes, locked to thread]:
github.com/docker/docker/pkg/devicemapper._C2func_dm_task_run(0x7fbffc010f80, 0x0, 0x0, 0x0)
??:0 +0x47
github.com/docker/docker/pkg/devicemapper.dmTaskRunFct(0x7fbffc010f80, 0xc800000001)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper_wrapper.go:96 +0x21
github.com/docker/docker/pkg/devicemapper.(*Task).run(0xc8200266d8, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engin
e/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:155 +0x37
github.com/docker/docker/pkg/devicemapper.SuspendDevice(0xc821b07380, 0x55, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:627 +0x99
github.com/docker/docker/pkg/devicemapper.CreateSnapDevice(0xc821013f80, 0x25, 0x1a, 0xc821b07380, 0x55, 0x17, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:759 +0x92
github.com/docker/docker/daemon/graphdriver/devmapper.(*DeviceSet).createRegisterSnapDevice(0xc8203be9c0, 0xc82184d1c0, 0x40, 0xc821a78f40, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/deviceset.go:860 +0x557
github.com/docker/docker/daemon/graphdriver/devmapper.(*DeviceSet).AddDevice(0xc8203be9c0, 0xc82184d1c0, 0x40, 0xc8219c47c0, 0x40, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/deviceset.go:1865 +0x81f
github.com/docker/docker/daemon/graphdriver/devmapper.(*Driver).Create(0xc8200ff770, 0xc82184d1c0, 0x40, 0xc8219c47c0, 0x40, 0x0, 0x0, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/driver.go:124 +0x5f
github.com/docker/docker/daemon/graphdriver.(*NaiveDiffDriver).Create(0xc820363940, 0xc82184d1c0, 0x40, 0xc8219c47c0, 0x40, 0x0, 0x0, 0x0, 0x0)
<autogenerated>:24 +0xaa
github.com/docker/docker/layer.(*layerStore).Register(0xc820363980, 0x7fc02faa3898, 0xc821a6ae00, 0xc821ace370, 0x47, 0x0, 0x0, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/layer/layer_store.go:266 +0x382
github.com/docker/docker/distribution/xfer.(*LayerDownloadManager).makeDownloadFunc.func1.1(0xc8210cd740, 0xc8210cd680, 0x7fc02fb6b758, 0xc820f422d0, 0xc820ee15c0, 0xc820ee1680, 0xc8210cd6e0, 0xc820e8e0b0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/distribut
ion/xfer/download.go:316 +0xc01
created by github.com/docker/docker/distribution/xfer.(*LayerDownloadManager).makeDownloadFunc.func1
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/distribution/xfer/download.go:341 +0x191
@Calpicow dmesg
๋ก๊ทธ๊ฐ ์์ต๋๊น? dmsetup status
์ ์ถ๋ ฅ์ ๋ณด์ฌ์ค ์ ์์ต๋๊น?
๋ด docker ps
์ด ์ค๋จ๋์ง๋ง info
/ restart
/ images
๊ฐ์ ๋ค๋ฅธ ๋ช
๋ น์ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
์๋์๋ ๊ฑฐ๋ํ SIGUSR1 ๋คํ๊ฐ ์์ต๋๋ค (์ฌ๊ธฐ์ ๋ง์ง ์์). https://gist.github.com/ahmetalpbalkan/34bf40c02a78e319eaf5710acb15cf9a
์ด ๊ณ ๋ฃจํด์ด 700 ํค ์ ๋์๋ ๊ฒ ๊ฐ์ต๋๋ค.
...
goroutine 1149 [chan send, 1070 minutes]:
github.com/vishvananda/netlink.LinkSubscribe.func2(0xc821159d40, 0xc820fa4c60)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/link_linux.go:898 +0x2de
created by github.com/vishvananda/netlink.LinkSubscribe
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/link_linux.go:901 +0x107
goroutine 442 [chan send, 1129 minutes]:
github.com/vishvananda/netlink.LinkSubscribe.func2(0xc8211eb380, 0xc821095920)
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/link_linux.go:898 +0x2de
created by github.com/vishvananda/netlink.LinkSubscribe
/build/amd64-usr/var/tmp/portage/app-emulation/docker-1.11.2-r5/work/docker-1.11.2/vendor/src/github.com/vishvananda/netlink/link_linux.go:901 +0x107
...
@ahmetalpbalkan netlink ์์ผ์ด ๋์์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ์ฐจ๋จ ๋ ๊ฒ
์ด๊ฒ์ ์ปค๋์ ๋ฒ๊ทธ์ด์ง๋ง 1.12.5๋ ์ต์ํ์ด ๋ท ๋งํฌ ์์ผ์์ ์๊ฐ ์ด๊ณผ๊ฐ ์์ด์ผํฉ๋๋ค.
๋ด๊ฐ ์ถ์ธกํด์ผํ๋ค๋ฉด dmesg
์ถ๋ ฅ์ device_count = 1; waiting for <interface> to become free
์ ๊ฐ์ ๋ฌด์ธ๊ฐ๊ฐ์์ ๊ฒ์
๋๋ค.
@ cpuguy83 ๋ค, ์ ๊ฒฝ์ฐ์ ๋น์ทํ https://github.com/coreos/bugs/issues/254 ๋ฅผ ๋ดค์ง๋ง ์ปค๋ ๋ก๊ทธ์ "๋๊ธฐ"๋ฉ์์ง๊ฐ ํ์๋์ง ์์ต๋๋ค.
1.12.5๋ ์์ง coreos ์ํ ์คํธ๋ฆผ์๋ ๋๋ฌํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ด ๊ทธ๋ ์ด๋ ํ ์์๋ ์ปค๋ / ๋์ปค ๋ฒ์ ์ด ์์ต๋๊น?
@ahmetalpbalkan Yay, ๋ ๋ค๋ฅธ ์ปค๋ ๋ฒ๊ทธ์
๋๋ค.
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ netlink ์์ผ์ ํ์ ์์์ ๋์
ํ ์ด์ ์
๋๋ค. ์๋ก์ด ์ปจํ
์ด๋๋ฅผ ์์ / ์ค์ง ํ ์๋ ์์ง๋ง ์ ์ด๋ Docker๋ ์ฐจ๋จ๋์ง ์์ต๋๋ค.
๋ฒ๊ทธ๊ฐ ์ ํํ ๋ฌด์์ธ์ง ์๊ณ ์์ต๋๊น? ์ปค๋ ๋ฒ๊ทธ๊ฐ ์ ์คํธ๋ฆผ์ผ๋ก๋ณด๊ณ ๋์์ต๋๊น? ์๋๋ฉด์ด ๋ฒ๊ทธ๊ฐ ์์ ๋ ์ปค๋ ๋ฒ์ ์ด ์์ต๋๊น?
@GameScripting ๋ฌธ์ ๋ ์ด๊ฒ์ด ์์ฑ ๋ ๋ฐฐํฌํ์๋ณด๊ณ ๋์ด์ผํ๋ฉฐ, ์ฌ๊ธฐ์์๋ ๋์ผํ ํจ๊ณผ๋ฅผ ์ผ์ผํค๋ ํ๋ ์ด์์ ๋ฌธ์ ๊ฐ ์์์ ์ ์ ์์ต๋๋ค.
Docker v1.12.3์ด์๋ ๋ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๋ค.
๊ด๋ จ syslog :
Jan 6 01:41:19 ip-100-64-32-70 kernel: INFO: task kworker/u31:1:91 blocked for more than 120 seconds.
Jan 6 01:41:19 ip-100-64-32-70 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Jan 6 01:41:19 ip-100-64-32-70 kernel: kworker/u31:1 D ffff880201fc98e0 0 91 2 0x00000000
Jan 6 01:41:19 ip-100-64-32-70 kernel: Workqueue: kdmremove do_deferred_remove [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: ffff88020141bcf0 0000000000000046 ffff8802044ce780 ffff88020141bfd8
Jan 6 01:41:20 ip-100-64-32-70 kernel: ffff88020141bfd8 ffff88020141bfd8 ffff8802044ce780 ffff880201fc98d8
Jan 6 01:41:20 ip-100-64-32-70 kernel: ffff880201fc98dc ffff8802044ce780 00000000ffffffff ffff880201fc98e0
Jan 6 01:41:20 ip-100-64-32-70 kernel: Call Trace:
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8163b959>] schedule_preempt_disabled+0x29/0x70
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff81639655>] __mutex_lock_slowpath+0xc5/0x1c0
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff81638abf>] mutex_lock+0x1f/0x2f
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa0392e9d>] __dm_destroy+0xad/0x340 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa03947e3>] dm_destroy+0x13/0x20 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa0398d6d>] dm_hash_remove_all+0x6d/0x130 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa039b50a>] dm_deferred_remove+0x1a/0x20 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa0390dae>] do_deferred_remove+0xe/0x10 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8109d5fb>] process_one_work+0x17b/0x470
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8109e3cb>] worker_thread+0x11b/0x400
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8109e2b0>] ? rescuer_thread+0x400/0x400
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff810a5aef>] kthread+0xcf/0xe0
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff810a5a20>] ? kthread_create_on_node+0x140/0x140
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff81645818>] ret_from_fork+0x58/0x90
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff810a5a20>] ? kthread_create_on_node+0x140/0x140
Jan 6 01:41:20 ip-100-64-32-70 kernel: INFO: task dockerd:31587 blocked for more than 120 seconds.
Jan 6 01:41:20 ip-100-64-32-70 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Jan 6 01:41:20 ip-100-64-32-70 kernel: dockerd D 0000000000000000 0 31587 1 0x00000080
Jan 6 01:41:20 ip-100-64-32-70 kernel: ffff8800e768fab0 0000000000000086 ffff880034215c00 ffff8800e768ffd8
Jan 6 01:41:20 ip-100-64-32-70 kernel: ffff8800e768ffd8 ffff8800e768ffd8 ffff880034215c00 ffff8800e768fbf0
Jan 6 01:41:20 ip-100-64-32-70 kernel: ffff8800e768fbf8 7fffffffffffffff ffff880034215c00 0000000000000000
Jan 6 01:41:20 ip-100-64-32-70 kernel: Call Trace:
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8163a879>] schedule+0x29/0x70
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff81638569>] schedule_timeout+0x209/0x2d0
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8108e4cd>] ? mod_timer+0x11d/0x240
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8163ac46>] wait_for_completion+0x116/0x170
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff810b8c10>] ? wake_up_state+0x20/0x20
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff810ab676>] __synchronize_srcu+0x106/0x1a0
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff810ab190>] ? call_srcu+0x70/0x70
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff81219e3f>] ? __sync_blockdev+0x1f/0x40
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff810ab72d>] synchronize_srcu+0x1d/0x20
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa039318d>] __dm_suspend+0x5d/0x220 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa0394c9a>] dm_suspend+0xca/0xf0 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa0399fe0>] ? table_load+0x380/0x380 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa039a174>] dev_suspend+0x194/0x250 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa0399fe0>] ? table_load+0x380/0x380 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa039aa25>] ctl_ioctl+0x255/0x500 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8112482d>] ? call_rcu_sched+0x1d/0x20
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffffa039ace3>] dm_ctl_ioctl+0x13/0x20 [dm_mod]
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff811f1e75>] do_vfs_ioctl+0x2e5/0x4c0
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff8128bbee>] ? file_has_perm+0xae/0xc0
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff81640d01>] ? __do_page_fault+0xb1/0x450
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff811f20f1>] SyS_ioctl+0xa1/0xc0
Jan 6 01:41:20 ip-100-64-32-70 kernel: [<ffffffff816458c9>] system_call_fastpath+0x16/0x1b
@Calpicow ๊ฐ์ฌํฉ๋๋ค.
github.com/docker/docker/pkg/devicemapper._C2func_dm_task_run(0x7fd3a40231b0, 0x7fd300000000, 0x0, 0x0)
??:0 +0x4c
github.com/docker/docker/pkg/devicemapper.dmTaskRunFct(0x7fd3a40231b0, 0xc821a91620)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper_wrapper.go:96 +0x75
github.com/docker/docker/pkg/devicemapper.(*Task).run(0xc820345838, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:155 +0x37
github.com/docker/docker/pkg/devicemapper.SuspendDevice(0xc8219c8600, 0x5a, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:648 +0x99
github.com/docker/docker/pkg/devicemapper.CreateSnapDevice(0xc821a915f0, 0x25, 0x21, 0xc8219c8600, 0x5a, 0x1f, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/pkg/devicemapper/devmapper.go:780 +0x92
github.com/docker/docker/daemon/graphdriver/devmapper.(*DeviceSet).createRegisterSnapDevice(0xc820433040, 0xc821084080, 0x40, 0xc8210842c0, 0x140000000, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/deviceset.go:861 +0x550
github.com/docker/docker/daemon/graphdriver/devmapper.(*DeviceSet).AddDevice(0xc820433040, 0xc821084080, 0x40, 0xc82025b5e0, 0x45, 0x0, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/deviceset.go:1887 +0xa5c
github.com/docker/docker/daemon/graphdriver/devmapper.(*Driver).Create(0xc82036af00, 0xc821084080, 0x40, 0xc82025b5e0, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/driver.go:131 +0x6f
github.com/docker/docker/daemon/graphdriver/devmapper.(*Driver).CreateReadWrite(0xc82036af00, 0xc821084080, 0x40, 0xc82025b5e0, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/daemon/graphdriver/devmapper/driver.go:126 +0x86
github.com/docker/docker/daemon/graphdriver.(*NaiveDiffDriver).CreateReadWrite(0xc82021c500, 0xc821084080, 0x40, 0xc82025b5e0, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0)
<autogenerated>:28 +0xbe
github.com/docker/docker/layer.(*layerStore).CreateRWLayer(0xc82021c580, 0xc82154f980, 0x40, 0xc82025b2c0, 0x47, 0x0, 0x0, 0xc820981380, 0x0, 0x0, ...)
/root/rpmbuild/BUILD/docker-engine/.gopath/src/github.com/docker/docker/layer/layer_store.go:476 +0x5a9
github.com/docker/docker/daemon.(*Daemon).setRWLayer(0xc820432ea0, 0xc8216d12c0, 0x0, 0x0)
๋ชจ๋ ์ธ๋ถ ์ฌํญ์ด ํฌํจ ๋ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ด โโ์ ์์ต๋๊น?
๊ฐ์ฌ!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ค๋ ๋๋ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๋๋ค-docker ps frozen, docker๋ 100 % cpu๋ฅผ ๋จน์ต๋๋ค.
์ด์ ๋ด datadog-agent๊ฐ์ด ์ต์ ์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋์ ๋ํด ๋ฃจํ์์ docker๋ฅผ ์์ฒญํ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋์ ๋๋ ๋งค์ฐ ์ด๋ ค์ด ์์ ์ผ๋ก ๋ฌดํ ๋ฃจํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค (10k ์ด์์ ์ปจํ ์ด๋๊ฐ ์์ต๋๋ค). ๋ด๊ฐ datadog docker ํตํฉ์ ์ค์ง ํ ํ ์์คํ runnig ok-docker ps๊ฐ ์๋ํ๊ณ docker๋ 0 % cpu๋ฅผ ๋จน์ต๋๋ค.