Moby: Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

๊ธฐ์ˆ 

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฉˆ์ถœ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

docker-compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋•Œ๋กœ๋Š” ์šฉ๊ธฐ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์ปค ์ค‘์ง€ ํ•  ์ˆ˜ ์—†๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์ด ์ค‘๋‹จ๋˜๊ณ  ๋„์ปค ๋ฐ๋ชฌ์„ ๋””๋ฒ„๊ทธ๋กœ ๋ณ€๊ฒฝ ํ•œ ํ›„ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ์ด ์ค„์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
dockerd[101922]: time="2018-01-04T15:54:07.406980654Z" level=debug msg="Calling POST /v1.35/containers/4c2b5e7f466c/stop"

๋ฌธ์ œ ์žฌํ˜„ ๋‹จ๊ณ„ :

  1. ์  ํ‚จ์Šค์—์„œ ํ…Œ์ŠคํŠธ ์‹คํ–‰
  2. ๊ฒฐ๊ตญ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค.

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฉˆ์ถœ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค.

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค‘์ง€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ถ”๊ฐ€ ์ •๋ณด (์˜ˆ : ๋ฌธ์ œ๊ฐ€ ๊ฐ€๋” ๋ฐœ์ƒ ํ•จ) :

๊ฐ€๋” ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ

docker version :

Client:
 Version:   17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:10:14 2017
 OS/Arch:   linux/amd64

Server:
 Engine:
  Version:  17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:    Wed Dec 27 20:12:46 2017
  OS/Arch:  linux/amd64
  Experimental: false

docker info ์ถœ๋ ฅ :

Containers: 6
 Running: 1
 Paused: 0
 Stopped: 5
Images: 75
Server Version: 17.12.0-ce
Storage Driver: devicemapper
 Pool Name: docker-253:0-33643212-pool
 Pool Blocksize: 65.54kB
 Base Device Size: 10.74GB
 Backing Filesystem: xfs
 Udev Sync Supported: true
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 31.43GB
 Data Space Total: 107.4GB
 Data Space Available: 75.95GB
 Metadata Space Used: 35.81MB
 Metadata Space Total: 2.147GB
 Metadata Space Available: 2.112GB
 Thin Pool Minimum Free Space: 10.74GB
 Deferred Removal Enabled: true
 Deferred Deletion Enabled: true
 Deferred Deleted Device Count: 1
 Library Version: 1.02.140-RHEL7 (2017-05-03)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 89623f28b87a6004d4b785663257362d1658a729
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-693.11.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 36
Total Memory: 117.9GiB
Name: jenkins-node.com
ID: 5M6L:G2KF:732H:Y7RF:QHNO:3XM4:U6RV:U5QR:ANPA:7XRZ:M3S4:GUZC
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 37
 Goroutines: 51
 System Time: 2018-01-04T16:02:36.54459153Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
         Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.

areruntime kinbug statumore-info-needed statuneeds-attention versio17.12

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

docker-compose๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋„์ปค ๋–ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋”๋„ ์ปค๊ฐ€ ๋–ผ์ง€ ์•Š๊ณ  ๋„์ปค CLI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋„ ๋ฉˆ์ถœ ์ˆ˜์—†๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด docker swarm์€ ์ถ•์†Œ ํ•  ์ˆ˜์—†๋Š” ์›ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ณต์ œ๋ณธ์„ ์ˆ˜์ง‘ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ด๋Ÿฌํ•œ ๋ณต์ œ๋ณธ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์‹  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์˜ํ–ฅ์„๋ฐ›๋Š” ๋…ธ๋“œ์—์„œ docker๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์ •๋ง๋กœ ๋” ๋งŽ์€ ์ •๋ณด์™€ ์žฌ์ƒ์‚ฐ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

dockerd[101922]: time="2018-01-04T15:54:07.406980654Z" level=debug msg="Calling POST /v1.35/containers/4c2b5e7f466c/stop"
  • ์œ„์˜ ๋ฉ”์‹œ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•˜๋„๋ก ํ˜ธ์ถœ๋˜์—ˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ทธ ํ›„์— ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
  • ๋„์ปค ์„ค์ •์€ ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? docker-in-docker๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
  • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„์ง ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์ปจํ…Œ์ด๋„ˆ์˜ docker inspect ๋Š” ๋ฌด์—‡์„ ๋ณด์—ฌ์ค๋‹ˆ๊นŒ? ์ถœ๋ ฅ์— PID ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ๊ทธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๊นŒ? (ํ˜ธ์ŠคํŠธ์˜ ps auxf )
  • Jenkins์—†์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์žฌํ˜„์„์œ„ํ•œ ์ •ํ™•ํ•œ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋” ์ด์ƒ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ธฐ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•œํŽธ, ์ปจํ…Œ์ด๋„ˆ๊ฐ€์ด ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„ ํ›„ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ๋” ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฉˆ์ถœ ์ˆ˜ ์—†์–ด
  • bash์— exec๋ฅผ ๊ณ ์ •์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ค‘์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ƒํƒœ๋ฅผ ์ข…๋ฃŒํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ๋„์ปค ์ค‘์ง€
  • ์ปจํ…Œ์ด๋„ˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค (๋„ ์ปค๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ).
  • ์„œ๋น„์Šค ๋„์ปค ์‹œ์ž‘

๋‚˜๋Š” ์ด๊ฒƒ์„ Jenkins ๋ฐ–์—์„œ ํ•œ ๋ฒˆ ์žฌํ˜„ํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

Jenkins์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด๊ฒƒ์„ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์— ๋„์ปค ๊ฒ€์‚ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ˆ˜ํ–‰ ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ค์ • (CENTOS vm์—์„œ ์‹คํ–‰) :

  • docker-compose up์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘
  • ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹œ์ž‘๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰
  • docker-compose down์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋Š” ๊ฐ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋˜๋ฉฐ ๋™์‹œ์— ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•ด ์ฃ„์†กํ•˜์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€ ์ˆ˜์ง‘ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ _now_ _different docker version_ ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

```1 ์›” 8 ์ผ 16:53:10 dockerd [7012] : time = "2018-01-08T16 : 53 : 10.983935134Z"level = debug msg = "์ „ํ™” POST /v1.34/containers/9cdc36c44340/stop"
1 ์›” 8 ์ผ 16:53:10 dockerd [7012] : time = "2018-01-08T16 : 53 : 10.984024605Z"level = debug msg = "9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94"
1 ์›” 8 ์ผ 16:53:12 dockerd [7012] : time = "2018-01-08T16 : 53 : 12.985034572Z"level = info msg = "ํ”„๋กœ์„ธ์Šค์— ์‹ ํ˜ธ 15๋ฅผ ๋ณด๋‚ธ ํ›„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•์ œ ์ข…๋ฃŒ"
1 ์›” 8 ์ผ 16:53:12 dockerd [7012] : time = "2018-01-08T16 : 53 : 12.985087603Z"level = debug msg = "9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94"
1 ์›” 8 ์ผ 16:53:12 dockerd [7012] : time = "2018-01-08T16 : 53 : 12.986759908Z"level = debug msg = "FIXME : ์˜ค๋ฅ˜๊ฐ€ ์˜ˆ์ƒ ์œ ํ˜•๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” API๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค !!! : ์ฐพ์„ ์ˆ˜ ์—†์Œ \ ngithub.com/docker/docker/vendor/github.com/containerd/containerd/errdefs.init \ n \ t / go / src / github.com / docker / docker / vendor / github.com / containerd / containerd /errdefs/errors.go:25\ngithub.com/docker/docker/vendor/github.com/containerd/containerd/content.init\n\t/go/src/github.com/docker/docker/vendor/github .com / containerd / containerd / content / helpers.go : 141 \ ngithub.com/docker/docker/vendor/github.com/containerd/containerd.init \ n \ t / go / src / github.com / docker / docker /vendor/github.com/containerd/containerd/task_opts.go:78\ngithub.com/docker/docker/container.init\n\t/go/src/github.com/docker/docker/container/view.go : 496 \ ngithub.com/docker/docker/builder.init \ n \ t / go / src / github.com / docker / docker / builder / builder.go : 108 \ ngithub.com/docker/docker/api/server /backend/build.init\n\t/go/src/github.com/docker/docker/api/server/backend/build/ta g.go : 85 \ nmain.init \ n \ t / go / src / github.com / docker / docker / cmd / dockerd / service_unsupported.go : 15 \ nruntime.main \ n \ t / usr / local / go / src / runtime / proc.go : 173 \ nruntime.goexit \ n \ t / usr / local / go / src / runtime / asm_amd64.s : 2197 "error_type =" errors.fundamental "module = api1 ์›” 8 ์ผ 16:53:12 dockerd [7012] : time = "2018-01-08T16 : 53 : 12.986856140Z"level = error msg = "Handler for POST /v1.34/containers/9cdc36c44340/stop ๋ฐ˜ํ™˜ ์˜ค๋ฅ˜ : ์ค‘์ง€ ํ•  ์ˆ˜ ์—†์Œ container : 9cdc36c44340 : ์ปจํ…Œ์ด๋„ˆ 9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94 : ํ”„๋กœ์„ธ์Šค 9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94 ์ฐพ์„ ์ˆ˜ ์—†์Œ : ์ฐพ์„ ์ˆ˜ ์—†์Œ "1 ์›” 8 ์ผ 16:53:12 dockerd [7012] : time = "2018-01-08T16 : 53 : 12.987051906Z"level = debug msg = "FIXME : ์˜ค๋ฅ˜๊ฐ€ ์˜ˆ์ƒ ์œ ํ˜•๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค !!! : ์ฐพ์„ ์ˆ˜ ์—†์Œ \ ngithub.com/docker/docker/vendor/github.com/containerd/containerd/errdefs.init \ n \ t / go / src / github.com / docker / docker / vendor / github.com / containerd / containerd /errdefs/errors.go:25\ngithub.com/docker/docker/vendor/github.com/containerd/containerd/content.init\n\t/go/src/github.com/docker/docker/vendor/github .com / containerd / containerd / content / helpers.go : 141 \ ngithub.com/docker/docker/vendor/github.com/containerd/containerd.init \ n \ t / go / src / github.com / docker / docker /vendor/github.com/containerd/containerd/task_opts.go:78\ngithub.com/docker/docker/container.init\n\t/go/src/github.com/docker/docker/container/view.go : 496 \ ngithub.com/docker/docker/builder.init \ n \ t / go / src / github.com / docker / docker / builder / builder.go : 108 \ ngithub.com/docker/docker/api/server /backend/build.init\n\t/go/src/github.com/docker/docker/api/server/backend/build/ta

**docker-info :** 
```Containers: 6
 Running: 6
 Paused: 0
 Stopped: 0
Images: 61
Server Version: 17.11.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 992280e8e265f491f7a624ab82f3e238be086e49
runc version: 0351df1c5a66838d0c392b4ac4cf9450de844e2d
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.10.0-42-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31GiB
Name: Laptop-749
ID: WZVE:HR5Q:3GYH:WNS6:FJCQ:TGHD:UMU5:PPWM:7Z77:QSBV:G2SW:HI77
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 26
 Goroutines: 48
 System Time: 2018-01-08T16:58:47.457072503Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

๋„์ปค ๋ฒ„์ „ :

```ํด๋ผ์ด์–ธํŠธ :
๋ฒ„์ „ : 17.11.0-ce
API ๋ฒ„์ „ : 1.34
Go ๋ฒ„์ „ : go1.8.3
ํž˜๋‚ด ์ปค๋ฐ‹ : 1caf76c
๊ฑด์ถ• : 2017 ๋…„ 11 ์›” 20 ์ผ ์›”์š”์ผ 18:37:39
OS / ์•„์น˜ : linux / amd64

์„ฌ๊ธฐ๋Š” ์‚ฌ๋žŒ:
๋ฒ„์ „ : 17.11.0-ce
API ๋ฒ„์ „ : 1.34 (์ตœ์†Œ ๋ฒ„์ „ 1.12)
Go ๋ฒ„์ „ : go1.8.3
ํž˜๋‚ด ์ปค๋ฐ‹ : 1caf76c
๊ฑด์ถ• : 2017 ๋…„ 11 ์›” 20 ์ผ ์›”์š”์ผ 18:36:09
OS / ์•„์น˜ : linux / amd64
์‹คํ—˜์  : ๊ฑฐ์ง“

**docker inspect** : 
```[
    {
        "Id": "9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94",
        "Created": "2018-01-08T16:32:30.716158282Z",
        "Path": "/opt/entrypoint.sh",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 477,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-01-08T16:32:31.370353796Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Health": {
                "Status": "healthy",
                "FailingStreak": 0,
                "Log": [
                    {
                        "Start": "2018-01-08T16:40:52.760255527Z",
                        "End": "2018-01-08T16:40:52.814916997Z",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2018-01-08T16:41:12.821209911Z",
                        "End": "2018-01-08T16:41:12.872327217Z",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2018-01-08T16:41:32.879017542Z",
                        "End": "2018-01-08T16:41:32.932394782Z",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2018-01-08T16:41:52.938598813Z",
                        "End": "2018-01-08T16:41:52.993106466Z",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2018-01-08T16:42:12.998820005Z",
                        "End": "2018-01-08T16:42:13.056301771Z",
                        "ExitCode": 0,
                        "Output": ""
                    }
                ]
            }
        },
        "Image": "sha256:71843cc0ac81d2a365553dd5b69f6643dab212fd8b45d498c6a92614352ed75f",
        "ResolvConfPath": "/var/lib/docker/containers/9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94/hostname",
        "HostsPath": "/var/lib/docker/containers/9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94/hosts",
        "LogPath": "/var/lib/docker/containers/9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94/9cdc36c44340cd23a5cbfb884c1fab4d47b173552dd992f392d4398603b46a94-json.log",
        "Name": "/kegfngsmzx_component_1",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/dev/null:/tmp/conf/4:rw",
                "/home/joao.suzana/gitprojects/superComponent/docker/configurations/default/component/common:/tmp/conf/1:rw",
                "/home/joao.suzana/gitprojects/superComponent/docker/configurations/default/component/basic:/tmp/conf/0:rw",
                "/home/joao.suzana/gitprojects/superComponent/docker/configurations/system-tests/component:/tmp/conf/3:rw",
                "/home/joao.suzana/gitprojects/superComponent/docker/configurations/custom/component:/tmp/conf/2:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "kegfngsmzx_default",
            "PortBindings": {
                "1099/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": ""
                    }
                ],
                "7000/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": ""
                    }
                ],
                "8080/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": ""
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [],
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/5fbfde1f36fe0da7cee8ed92b728f7b92ddd4a1b8d9aeafe44b7e8cde581aeb3-init/diff:/var/lib/docker/overlay2/a9c4a86986bf84eff4d3156580e986daed91c7a37d937c5e4f608cd90b78f50a/diff:/var/lib/docker/overlay2/566bb33f0a3140bdb3726e3581bc703557f729010d2fb5b76ba21ac04157e5eb/diff:/var/lib/docker/overlay2/92302187d5633c0e6f3577edf93e2f1fbc133ccfcd11c6ce4a2b0fd06eb33db4/diff:/var/lib/docker/overlay2/3ac16dcca78ec2202d9af5e2e1ca50053612b75247d685c66418516aa7a1f91e/diff:/var/lib/docker/overlay2/3c2bef86bfac98dace20fb5ad4461601d444797454a5561bb543e4478d3aed25/diff:/var/lib/docker/overlay2/82de5471b51e7a55f8d9ff61983b36e9302b2fc7f4ba3fcc6ce5bde9f426ac9b/diff:/var/lib/docker/overlay2/7103da23a70519f91ae53950b6da99797d75104815ff43a1662efc92a933dc45/diff:/var/lib/docker/overlay2/70d522784351b087ee139f429dd041e1966308365e222f9022ab33f1f6da5089/diff:/var/lib/docker/overlay2/05d68822eebc4564c7e4597ee7c3d2bece406703e2e042bdf2ec35061a178f3a/diff:/var/lib/docker/overlay2/cc4fbcefd6fc474463d00d55d708988fc68f6eca5534675992e157743cb04af7/diff:/var/lib/docker/overlay2/50a363caa96c54de6cf17bfa477e384694f0fdf15a81c27cb92b830c0a8782b1/diff:/var/lib/docker/overlay2/ee1dadb2c4a98b37896eeb4e97f0715d97485bd10ef2b70d3b279d7fb93a4b18/diff:/var/lib/docker/overlay2/a66b6a45869ab5484cc04259ee7e11d32526a1fa1c91748f71754b57a87b69d9/diff:/var/lib/docker/overlay2/58472f6337dd2f95a5bda690e630fc6ddf4f661b6e965cfa798c666cde72457a/diff:/var/lib/docker/overlay2/22657f15e2d1411269f3201e63705babaaa7a04275f6c91ca5df4dc167abd93f/diff:/var/lib/docker/overlay2/5483cd1fad2a005e68e2656c5fcee54b8844576743288c06e49f40f6a4381a63/diff:/var/lib/docker/overlay2/ba02a2666cd21a254805404d1757f8ed90e28089e4a924e15a524c1e09265d0a/diff:/var/lib/docker/overlay2/07359ba2f66ba314629b1a6df441a7b96470e5d55ec22b88a48cc7c93b34f515/diff:/var/lib/docker/overlay2/99ecef114a5db24e123e4f5d9a8a01c3a79fa6aaed1af1095669f374a689294d/diff:/var/lib/docker/overlay2/7cfa73084c807c05112368f9c60627622b807b5ad932ace14541994f95209329/diff:/var/lib/docker/overlay2/b8e4cd0ea2811b61210129cc97ef4d10489bcb61b3b1dbe64d5a7af65bc284e2/diff:/var/lib/docker/overlay2/5cb7c00c701b24ca232c773eff803b0ca26a4bb137a5960920f5f3e9c96cfe7b/diff:/var/lib/docker/overlay2/6e722e736fb0acf96c2bbd2b29cd10e79955fe4b5fd8bf862a17ffa241b68a1b/diff:/var/lib/docker/overlay2/160835aace0cb1e2f4b9360934188b99ca9a65c74ee8d100f613275024e9d811/diff:/var/lib/docker/overlay2/5c7ba1cf63c83cda117ef0eca2bfd65d9bd44669e0e80933e351620bce546354/diff:/var/lib/docker/overlay2/c58b587a8318b57dc1f39c2aa2df68fa86295280fc007650a16008d05685b356/diff",
                "MergedDir": "/var/lib/docker/overlay2/5fbfde1f36fe0da7cee8ed92b728f7b92ddd4a1b8d9aeafe44b7e8cde581aeb3/merged",
                "UpperDir": "/var/lib/docker/overlay2/5fbfde1f36fe0da7cee8ed92b728f7b92ddd4a1b8d9aeafe44b7e8cde581aeb3/diff",
                "WorkDir": "/var/lib/docker/overlay2/5fbfde1f36fe0da7cee8ed92b728f7b92ddd4a1b8d9aeafe44b7e8cde581aeb3/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/joao.suzana/gitprojects/superComponent/docker/configurations/default/component/common",
                "Destination": "/tmp/conf/1",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/joao.suzana/gitprojects/superComponent/docker/configurations/custom/component",
                "Destination": "/tmp/conf/2",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/joao.suzana/gitprojects/superComponent/docker/configurations/system-tests/component",
                "Destination": "/tmp/conf/3",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/dev/null",
                "Destination": "/tmp/conf/4",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/joao.suzana/gitprojects/superComponent/docker/configurations/default/component/basic",
                "Destination": "/tmp/conf/0",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "9cdc36c44340",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "1099/tcp": {},
                "7000/tcp": {},
                "8080/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LC_ALL=en_US.UTF-8",
                "JDK_RPM=jdk-8u131-linux-x64.rpm",
                "JAVA_HOME=/usr/java/jdk1.8.0_131/",
                "COMPONENT_HOME=/opt/component"
            ],
            "Cmd": [
                "/opt/entrypoint.sh"
            ],
            "Healthcheck": {
                "Test": [
                    "CMD-SHELL",
                    "grep -q \"App Service is ready.\""
                ],
                "Interval": 20000000000,
                "Retries": 30
            },
            "ArgsEscaped": true,
            "Image": "docker.privateimage.com/private:latest",
            "Volumes": {
                "/tmp/conf/0": {},
                "/tmp/conf/1": {},
                "/tmp/conf/2": {},
                "/tmp/conf/3": {},
                "/tmp/conf/4": {}
            },
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "build-date": "20171128",
                "com.docker.compose.config-hash": "51a3c3781142fce6292e53a5a42dd804a41e5c6e81b02b2dab14647d5f3fe774",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "kegfngsmzx",
                "com.docker.compose.service": "private-component",
                "com.docker.compose.version": "1.17.1",
                "com.super.component": "Super",
                "license": "GPLv2",
                "name": "CentOS Base Image",
                "vendor": "CentOS"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "4a6a1b4492dce570a42cb735915c76fab4c0e92dd712bf81ae323df8eec1d0a3",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "1099/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "32863"
                    }
                ],
                "7000/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "32862"
                    }
                ],
                "8080/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "32861"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/4a6a1b4492dc",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "kegfngsmzx_default": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "component",
                        "9cdc36c44340"
                    ],
                    "NetworkID": "19e6624e9254883228576ad289770611fd066ed7fc1c847eb0dd25899b240d07",
                    "EndpointID": "850780c0914d118382913f0ff287433e88c01a56d3e42fa95ce890c737027b76",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.7",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:07",
                    "DriverOpts": null
                }
            }
        }
    }
]

@Timunas 17.12๋กœ ์—…๋ฐ์ดํŠธ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‚˜์š”?

์›๋ž˜ ๋ฌธ์ œ๋Š” 17.12์˜€์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์žฌํ˜„ํ–ˆ์œผ๋ฉฐ docker๊ฐ€ ๋ชจ๋“  ๋ช…๋ น์— ๋Œ€ํ•ด ์ค‘๋‹จ๋˜๋Š”์ง€ ๊ฒ€์‚ฌ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

docker-compose๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋„์ปค ๋–ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋”๋„ ์ปค๊ฐ€ ๋–ผ์ง€ ์•Š๊ณ  ๋„์ปค CLI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋„ ๋ฉˆ์ถœ ์ˆ˜์—†๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด docker swarm์€ ์ถ•์†Œ ํ•  ์ˆ˜์—†๋Š” ์›ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ณต์ œ๋ณธ์„ ์ˆ˜์ง‘ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ด๋Ÿฌํ•œ ๋ณต์ œ๋ณธ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์‹  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์˜ํ–ฅ์„๋ฐ›๋Š” ๋…ธ๋“œ์—์„œ docker๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„์ปค ๋–ผ์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋„์ปค ์Šคํƒ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ–ˆ์ง€๋งŒ ์Šคํƒ์˜ ์ผ๋ถ€ ์ปจํ…Œ์ด๋„ˆ ๋งŒ ์ œ๊ฑฐ๋˜๊ณ  ์ผ๋ถ€ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ฃผ์œ„์— ๋งค๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋‹จ ๋œ ์ปจํ…Œ์ด๋„ˆ์˜ docker inspect ๋˜๋Š” docker rm ์— ๋Œ€ํ•œ ๋ช…๋ น์€ Ctrl-c๊นŒ์ง€ ๋ช…๋ น ์ค„์—์„œ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์žฌ๋ถ€ํŒ…ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. 17.09์—์„œ๋Š” 17.12.0-ce๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„์— ๋งŒ โ€‹โ€‹๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค (17.12.0-ce-rc4์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค).

Azure VM์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค : docker info

```์ปจํ…Œ์ด๋„ˆ : 95
๋‹ฌ๋ฆฌ๊ธฐ : 83
์ผ์‹œ ์ค‘์ง€๋จ : 0
์ค‘์ง€๋จ : 12
์ด๋ฏธ์ง€ : 579
์„œ๋ฒ„ ๋ฒ„์ „ : 17.12.0-ce
์Šคํ† ๋ฆฌ์ง€ ๋“œ๋ผ์ด๋ฒ„ : overlay2
๋ฐฑ์—… ํŒŒ์ผ ์‹œ์Šคํ…œ : extfs
d_type : true ์ง€์›
๊ธฐ๋ณธ ์˜ค๋ฒ„๋ ˆ์ด ์ฐจ์ด : ์ฐธ
๋กœ๊น… ๋“œ๋ผ์ด๋ฒ„ : json-file
Cgroup ๋“œ๋ผ์ด๋ฒ„ : cgroupfs
ํ”Œ๋Ÿฌ๊ทธ์ธ :
๋ณผ๋ฅจ : ๋กœ์ปฌ
๋„คํŠธ์›Œํฌ : ๋ธŒ๋ฆฌ์ง€ ํ˜ธ์ŠคํŠธ macvlan null ์˜ค๋ฒ„๋ ˆ์ด
๋กœ๊ทธ : awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
๋ฌด๋ฆฌ : ํ™œ์„ฑ
NodeID : hy0kx44q5m9jg0lc1n5ylxkw6
๊ด€๋ฆฌ์ž : ์ฐธ
ClusterID : ordhsz694y98k3r4604ksc937
๊ด€๋ฆฌ์ž : 1 ๋ช…
๋…ธ๋“œ : 1
๊ด€ํ˜„์•…๋ฒ•:
์ž‘์—… ๊ธฐ๋ก ๋ณด์กด ์ œํ•œ : 2
๋—๋ชฉ:
์Šค๋ƒ… ์ƒท ๊ฐ„๊ฒฉ : 10000
๋ณด์กด ํ•  ์ด์ „ ์Šค๋ƒ… ์ƒท ์ˆ˜ : 0
ํ•˜ํŠธ ๋น„ํŠธ ํ‹ฑ : 1
์„ ๊ฑฐ ํ‹ฑ : 3
๋””์ŠคํŒจ์ฒ˜ :
ํ•˜ํŠธ ๋น„ํŠธ ๊ธฐ๊ฐ„ : 5 ์ดˆ
CA ๊ตฌ์„ฑ :
๋งŒ๋ฃŒ ๊ธฐ๊ฐ„ : 3 ๊ฐœ์›”
๊ฐ•์ œ ํšŒ์ „ : 0
์ž๋™ ์ž ๊ธˆ ๊ด€๋ฆฌ์ž : false
์ง„ํ–‰์ค‘์ธ ๋ฃจํŠธ ํšŒ์ „ : false
๋…ธ๋“œ ์ฃผ์†Œ : 10.0.0.10
๊ด€๋ฆฌ์ž ์ฃผ์†Œ :
10.0.0.10:2377
๋Ÿฐํƒ€์ž„ : runc
๊ธฐ๋ณธ ๋Ÿฐํƒ€์ž„ : runc
๋ฐ”์ด๋„ˆ๋ฆฌ ์ดˆ๊ธฐํ™” : docker-init
์ปจํ…Œ์ด๋„ˆ ๋ฒ„์ „ : 89623f28b87a6004d4b785663257362d1658a729
runc ๋ฒ„์ „ : b2567b37d7b75eb4cf325b77297b140ea686ce8f
์ดˆ๊ธฐํ™” ๋ฒ„์ „ : 949e6fa
๋ณด์•ˆ ์˜ต์…˜:
์˜๋ฅ˜
seccomp
ํ”„๋กœํ•„ : ๊ธฐ๋ณธ๊ฐ’
์ปค๋„ ๋ฒ„์ „ : 4.4.0-104-generic
์šด์˜ ์ฒด์ œ : Ubuntu 16.04.3 LTS
OSType : ๋ฆฌ๋ˆ…์Šค
์•„ํ‚คํ…์ฒ˜ : x86_64
CPU : 8
์ด ๋ฉ”๋ชจ๋ฆฌ : 27.47GiB
์ด๋ฆ„ : build-agent-vm001
ID : S7WY : RCKF : G3P7 : TI3H : MJ2F : UXZ3 : C5DS : YQG3 : OPF4 : V4RS : 5EQ7 : AWG4
Docker ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ : / var / lib / docker
๋””๋ฒ„๊ทธ ๋ชจ๋“œ (ํด๋ผ์ด์–ธํŠธ) : false
๋””๋ฒ„๊ทธ ๋ชจ๋“œ (์„œ๋ฒ„) : false
๋ ˆ์ง€์ŠคํŠธ๋ฆฌ : https://index.docker.io/v1/
๋ผ๋ฒจ :
์‹คํ—˜์  : ๊ฑฐ์ง“
์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ :
127.0.0.0/8
๋ผ์ด๋ธŒ ๋ณต์› ํ™œ์„ฑํ™” : false

๊ฒฝ๊ณ  : ์Šค์™‘ ์ œํ•œ ์ง€์› ์—†์Œ

I also have the same issue on Docker for Mac (Edge: 17.12): `docker info`

```Containers: 110
 Running: 65
 Paused: 0
 Stopped: 45
Images: 607
Server Version: 17.12.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
 NodeID: qfzh0tqkchl2m42uhju7k3ml4
 Is Manager: true
 ClusterID: q14zy6epqkpx0w112wusdtd3u
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 2
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
  Force Rotate: 0
 Autolock Managers: false
 Root Rotation In Progress: false
 Node Address: 192.168.65.3
 Manager Addresses:
  192.168.65.3:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 89623f28b87a6004d4b785663257362d1658a729
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.60-linuxkit-aufs
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 6
Total Memory: 5.817GiB
Name: linuxkit-025000000001
ID: DSXX:YVTO:DLFW:MN3X:MTJC:3EGK:MUYT:6JMN:C2NC:TQMW:BE44:3P6H
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 260
 Goroutines: 491
 System Time: 2018-01-09T00:13:09.053688513Z
 EventsListeners: 28
HTTP Proxy: docker.for.mac.http.internal:3128
HTTPS Proxy: docker.for.mac.http.internal:3128
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

๋˜ํ•œ ์ผ๋ถ€ ๋ช…๋ น์—์„œ ์‘๋‹ตํ•˜์ง€ ์•Š๋Š” docker-deamon์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋‚˜๋Š” ํ•  ์ˆ˜ ์—†๋‹ค

docker rmi
docker system prune -f
docker exec
docker logs

์ด๊ฒƒ์€ 17.12๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์—ฌ๋Ÿฌ ์—”์ง„์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

https://github.com/moby/moby/issues/35408 ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

Mac ์šฉ Docker ๋ฒ„์ „ 17.12.0-ce-mac46 (21698)์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Docker์—์„œ Docker๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋Š” docker-compose up ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ stop ๋˜๋Š” kill ์ด (๊ฐ€) ๋ฉˆ์ถ”๊ณ  ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

10:13:13 Alexei-Workstation /Users/alexei.chekulaev/Projects/SBD-MASTER
$ docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                    PORTS                                                    NAMES
f0e36d3589d3        docksal/cli:1.3-php7      "/opt/startup.sh supโ€ฆ"   44 hours ago        Up 28 minutes (healthy)   22/tcp, 9000/tcp                                         sbdmaster_cli_1
b93c84c9a3a3        docksal/ssh-agent:1.0     "/run.sh ssh-agent"      44 hours ago        Up 29 minutes                                                                      docksal-ssh-agent
91ce00eb35fa        docksal/dns:1.0           "/opt/entrypoint.sh โ€ฆ"   44 hours ago        Up 29 minutes             192.168.64.100:53->53/udp                                docksal-dns
ae867cca0f21        docksal/vhost-proxy:1.1   "docker-entrypoint.sโ€ฆ"   44 hours ago        Up 29 minutes             192.168.64.100:80->80/tcp, 192.168.64.100:443->443/tcp   docksal-vhost-proxy
10:13:17 Alexei-Workstation /Users/alexei.chekulaev/Projects/SBD-MASTER
$ docker stop f0e36d3589d3
^C
10:16:03 Alexei-Workstation /Users/alexei.chekulaev/Projects/SBD-MASTER
$ docker kill f0e36d3589d3
^C
10:30:51 Alexei-Workstation /Users/alexei.chekulaev/Projects/SBD-MASTER

(Ctrl-C๋ฅผ ๋ˆ„๋ฅด๊ธฐ ์ „์— ๋ช‡ ๋ถ„์ด ์ง€๋‚ฌ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค๋ฅธ docker-compose ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋Š”๋ฐ, ์ด๊ฒƒ์ด ์ฒ˜์Œ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹๋ณธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

$ docker-compose up
rm: can't remove '/.ssh/id_rsa.pub': Stale file handle
rm: can't remove '/.ssh/authorized_keys': Stale file handle
rm: can't remove '/.ssh/id_rsa2.pub': Stale file handle
rm: can't remove '/.ssh/known_hosts': Stale file handle
rm: can't remove '/.ssh/id_test': Stale file handle
rm: can't remove '/.ssh/id_test.pub': Stale file handle
rm: can't remove '/.ssh/id_rsa2': Stale file handle
rm: can't remove '/.ssh/id_dsa': Stale file handle
rm: can't remove '/.ssh/id_boot2docker': Stale file handle
rm: can't remove '/.ssh/id_sbd.pub': Stale file handle
rm: can't remove '/.ssh/id_sbd': Stale file handle
rm: can't remove '/.ssh/id_rsa': Stale file handle
rm: can't remove '/.ssh/id_boot2docker.pub': Stale file handle
rm: can't remove '/.ssh': Directory not empty
Starting services...
Creating network "demonodb_default" with the default driver
Creating demonodb_cli_1 ... done
Creating demonodb_cli_1 ... 
Creating demonodb_web_1 ... done

๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋Š” ์ž˜ ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ ์œ„์˜ ์˜ค๋ž˜๋œ ํŒŒ์ผ ์ด๋ฆ„์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„์— ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์ง€ํ•˜๊ณ  ์‹œ์ž‘ํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ์ œ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ ๋ช…๋ช… ๋œ ๋ณผ๋ฅจ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณผ๋ฅจ์€ docker-compose์—์„œ ro ๋กœ ๋งˆ์šดํŠธ๋˜์—ˆ์œผ๋ฏ€๋กœ "cant remove"๋ฉ”์‹œ์ง€๊ฐ€์žˆ๋Š” ์ด์œ ๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

Docker ๋ฐ๋ชฌ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์žŠ์–ด docker inspect ์ด๋ฏธ ๋ฐ๋ชฌ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€๋งŒ ๋‚œ ์ƒ๊ฐ inspect ์ฒ˜๋Ÿผ ๋†€์•˜์–ด์š” stop ๋ฐ kill ์•Š์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ์ด ์žˆ์Œ์„ ์•Œ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฒ”์ธ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๋ฒˆ ์žฌํ˜„ ๊ฐ€๋Šฅ :
Mac ์šฉ Docker ๋ฒ„์ „ 17.12.0-ce-mac46 (์—…๋ฐ์ดํŠธ ํ›„ ์ค‘๋‹จ ์‹œ์ž‘๋จ)
๋˜๋Š” Arch linux (์ปค๋„ 4.14.14-1-ARCH)์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด systemctl restart docker.service ์‚ฌ์šฉํ•˜์—ฌ docker ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. docker info

Client:
 Version:       18.01.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    03596f51b1
 Built: Sun Jan 14 23:10:39 2018
 OS/Arch:       linux/amd64
 Experimental:  false
 Orchestrator:  swarm
Server:
 Engine:
  Version:      18.01.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   03596f51b1
  Built:        Sun Jan 14 23:11:14 2018
  OS/Arch:      linux/amd64
  Experimental: false

journalctl ์‡ผ

dockerd[26382]: time="2018-01-25T12:39:22.289082720+03:00" level=error msg="stream copy error: reading from a closed fifo"

๋˜ํ•œ 18.01์—์„œ ๋ณธ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๊ฒ€์‚ฌ๋ฅผ ์ค‘๋‹จํ•˜์‹ญ์‹œ์˜ค.

Client:
 Version:   18.01.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    03596f51b1
 Built: Sun Jan 14 23:10:39 2018
 OS/Arch:   linux/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.01.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   03596f51b1
  Built:    Sun Jan 14 23:11:14 2018
  OS/Arch:  linux/amd64
  Experimental: false
compose.cli.command.get_client: Docker version: Platform={'Name': ''}, Components=[{'Name': 'Engine', 'Version': '18.01.0-ce', 'Details': {'ApiVersion': '1.35', 'Arch': 'amd64', 'BuildTime': '2018-01-14T23:11:14.000000000+00:00', 'Experimental': 'false', 'GitCommit': '03596f51b1', 'GoVersion': 'go1.9.2', 'KernelVersion': '4.14.15-1-ARCH', 'MinAPIVersion': '1.12', 'Os': 'linux'}}], Version=18.01.0-ce, ApiVersion=1.35, MinAPIVersion=1.12, GitCommit=03596f51b1, GoVersion=go1.9.2, Os=linux, Arch=amd64, KernelVersion=4.14.15-1-ARCH, BuildTime=2018-01-14T23:11:14.000000000+00:00
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=discord']})
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.24/containers/json?limit=-1&all=0&size=0&trunc_cmd=0&filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Ddiscord%22%5D%7D HTTP/1.1" 200 1762
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 1 items)
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('59760b63049318f7b0bef2605e63d0fd8b13f4e134a7aea435db9eb1bdf2b389')

17.12์—์„œ์ด ๋ฌธ์ œ๋กœ ์ธํ•ด 17.12 ์‚ฌ์šฉ์„ ์™„์ „ํžˆ ์ค‘๋‹จํ•˜๊ณ  17.09๋กœ ๋กค๋ฐฑํ–ˆ์Šต๋‹ˆ๋‹ค (macOS ๋ฐ Linux๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ž„).

์ด๊ฒƒ์€ ์ค‘์š”ํ•˜๊ณ  ์ง€์†์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ถˆํ–‰ํžˆ๋„ ๋„์ปค๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๊ทธ๊ฒƒ์„ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

17.12๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. @rfay๊ฐ€ ๋งํ–ˆ๋“ฏ์ด 17.09์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋ฉด 17.12์™€ 17.09์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ 17.11 ์ดํ›„ Docker๊ฐ€ containerd๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฆ๊ฑฐ๊ฐ€ ์ด๊ฒƒ์ด ๋Ÿฐํƒ€์ž„์˜ ๋ฌธ์ œ์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ์ด ๊ฒฝ๋กœ๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋„ค, ์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” 17.09๋ฅผ ๊ณ ์ˆ˜ํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๋•Œ๊นŒ์ง€ docker-compose ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ทธ๊ฒƒ์„ ๊ณ ์ˆ˜ ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰์ค‘์ธ ๋ฐ๋ชฌ์—์„œ ์Šคํƒ ํŠธ๋ ˆ์ด์Šค๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋งค์šฐ ์œ ์šฉ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
GET /debug/pprof/goroutine?debug=2 ๋ฅผ ๋ˆŒ๋Ÿฌ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ์ปจํ…Œ์ด๋„ˆ I / O๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์Ÿ ์ธ runc์—์„œ ๋ฐœ๊ฒฌ ๋œ ์ตœ๊ทผ ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ์ปค๋„์˜ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๋…ธ์ถœ ๋œ ๊ฒƒ์œผ๋กœ ์˜์‹ฌ๋˜๋ฉฐ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ์ตœ๊ทผ ์ŠคํŽ™ํ„ฐ / ๋ฉœํŠธ ๋‹ค์šด ํŒจ์น˜๋ฅผ ์œ„ํ•ด ์ปค๋„์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ runc ํŒจ์น˜๋Š” ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜ ๋œ Docker ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์œผ๋ ค๋ฉด ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/opencontainers/runc/pull/1698

ํ—‰ํ—‰

You can get this by hitting GET /debug/pprof/goroutine?debug=2

๋ช…๋ น์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค. ์ƒ๋Œ€ URL์„ "์ ์ค‘"ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ƒ๋Œ€ URL์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. Mac ์šฉ Docker๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ์ณ์•ผํ•ฉ๋‹ˆ๊นŒ?

๋ฟก ๋นต๋€จ
/var/run/docker.sock (๊ธฐ๋ณธ๊ฐ’)์˜ ์œ ๋‹‰์Šค ์†Œ์ผ“์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๋Š”๋„ ์ปค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

curl --unix-socket /var/run/docker.sock http:/./debug/pprof/goroutine?debug=2

๋˜๋Š” TCP ์†Œ์ผ“

curl http://<ip>:<port>/debug/pprof/goroutine?debug=2

๋‹ค์Œ ํŒŒ์ผ์€ Docker ๋ฒ„์ „ 17.12.0-ce, ๋นŒ๋“œ c97c6d6์„ ์‚ฌ์šฉํ•˜์—ฌ AWS Ubuntu 16.04 ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰ ๋œ ํ•ด๋‹น ๋ช…๋ น์˜ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

moby 35933.txt

@ ay0o ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
์ง€๊ธˆ ์‹œ์Šคํ…œ์—์„œ ์ฐจ๋‹จ ๋œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
์•ˆํƒ€๊น๊ฒŒ๋„ ์ง„ํ–‰์ค‘์ธ ์ค‘์ง€ / ํ‚ฌ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฌด๋ฆฌ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

macOS High Sierra 10.13.3์„ ์‹คํ–‰ํ•˜๊ณ  docker 18.01.0-ce-mac48, ์ฑ„๋„ : edge ee2282129d๋ฅผ ์‹คํ–‰ํ•˜๋Š” MacBook Pro์—์„œ ๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค.

docker_output.log

@ AlterEgo7 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ docker๊ฐ€ ๋””์Šคํฌ์— ์“ฐ๊ธฐ ์œ„ํ•ด syscall์—์„œ ์ฐจ๋‹จ๋˜๊ณ  ์ ์–ด๋„ ํ•œ๊ณณ์—์„œ ๋””์Šคํฌ์—์„œ ์ฝ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. docker4mac์—์„œ ํ•ด๋‹น docker VM์— ํ• ๋‹น ๋œ ๋””์Šคํฌ์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ~ 1 ๋ถ„ ๋™์•ˆ ์ฐจ๋‹จ ๋œ ์—ฌ๋Ÿฌ I / O ๋ฐ”์šด๋“œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค.

@ cpuguy83 ์€ ๋„์ปค ์ž‘์„ฑ ์‹œ๊ฐ„ ์ œํ•œ์ด 60 ์ดˆ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์‹คํ—˜ ํ•  ์ˆ˜์žˆ๋Š” VM์— ๋Œ€ํ•œ ํŠน์ • ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ ์œ„์—์„œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด์ด ๋™์ž‘์€ 17.12 ์—…๋ฐ์ดํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋„ ๋งค์šฐ ์ž์ฃผ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค. 17.12์—์„œ๋Š” ์ฃผ๋กœ ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธ ๋œ ๋ณผ๋ฅจ์ด์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๋ณผ๋ฅจ์€ ํ˜ธ์ŠคํŠธ์˜ nfs-shares์ž…๋‹ˆ๋‹ค.

@ cpuguy83 @mborejdo ์ฐจ์ด๊ฐ€

๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. 17.12 ์ดํ›„์— docker-sync ๋„๊ตฌ๊ฐ€ ์†์ƒ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์ด๊ฒƒ์€ nfs๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๋ฐฑ์—”๋“œ์— ๋งค์šฐ ์นœ์ˆ™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฐจ๋‹จ ๋œ ์“ฐ๊ธฐ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ณผ๋ฅจ์ด๋‚˜ ๋„์ปค ๋™๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ ์„ธํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. pprof ๋กœ๊ทธ๊ฐ€ ์ฒจ๋ถ€๋ฉ๋‹ˆ๋‹ค.

docker_output_no_volumes.log

@ cpuguy83 , ๋‚˜๋Š” swarm์„ ์‚ฌ์šฉํ•˜๋Š” docker 17.12 docker ps -a ๋Š” ์ข…๋ฃŒ ๋œ ์ƒํƒœ์˜ ์ปจํ…Œ์ด๋„ˆ ์•ฝ 10 ๊ฐœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์œ ์ผํ•œ ๋ฌธ์ œ๋ผ๋ฉด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋…ธ๋“œ์—์„œ docker system prune -f ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„. ์•ˆํƒ€๊น๊ฒŒ๋„ ์•ฝ 25 %์˜ ๊ฒฝ์šฐ stack rm ๋ช…๋ น (๊ฒฝ์šฐ์— ๋”ฐ๋ผ 10 ๋ถ„ ์ด์ƒ์„ ๊ธฐ๋‹ค๋ ธ ์Œ) ํ›„์—๋„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ณ„์† ์‹คํ–‰๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋„์ปค ์‹œ์Šคํ…œ ์ •๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ•ด๋‹น ๋…ธ๋“œ์˜ ๋Œ€๋ถ€๋ถ„์˜ docker ๋ช…๋ น์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ œ์–ด๊ถŒ์„ ๋˜์ฐพ๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ๊ฐ€๋˜๋Š” PID์—์„œ kill -15 ๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์ œ์•ˆํ•œ๋Œ€๋กœ https://github.com/opencontainers/runc/pull/1698 ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์šด์ด ์—†์Šต๋‹ˆ๋‹ค. https://github.com/opencontainers/runc/pull/1698 ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋งํ•˜๊ธฐ ์ „์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํŒจ์น˜ํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? runc๋ฅผ ์ปค๋ฐ‹ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜๋Š” docker-ce / engine (branch 17.12) ๋น„ํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. 9f9c96235cc97674e935002fc3d78361b696a69e ๋‹ค์Œ ์ƒˆ๋กœ ๋นŒ๋“œ ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ / usr / bin / runc๋ฅผ ๋ฎ์–ด ์ผ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ๋…ธ๋“œ์—์„œ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  docker๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  docker info | grep runc ํ•˜๊ณ  ๋‹ค์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Default Runtime: runc
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e (expected: b2567b37d7b75eb4cf325b77297b140ea686ce8f)

๋ชจ๋“  ๋„์ปค ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ต์ฒดํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์Šคํƒ ํŠธ๋ ˆ์ด์Šค ( curl --unix-socket /var/run/docker.sock http://localhost/debug/pprof/goroutine?debug=2 )๋„ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
goroutine_debug.log

@foleymic ๋‹น์‹ ์ด๋ณด๊ณ ์žˆ๋Š” ๋ฌธ์ œ๋Š” runc ๋ฌธ์ œ์™€ ๋น„์Šทํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
dockerd ๊ต์ฒด๋Š” ํ•„์š”ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ docker-runc ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ ํŒจ์น˜ ๋œ runc๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜์— ์„ค์น˜ํ•˜๊ณ  docker์—๊ฒŒ ๊ธฐ๋ณธ ๋Ÿฐํƒ€์ž„์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ณ„๋กœ).
์ด๋ ‡๊ฒŒํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„ ์ปค๋ฐ‹์œผ๋กœ runc๋ฅผ ๋นŒ๋“œํ•˜๊ณ  /usr/local/bin/patched-runc ์™€ ๊ฐ™์€ ์œ„์น˜์— ๋„ฃ์€ ๋‹ค์Œ --add-runtime myrunc=/usr/local/bin/patched-runc --default-runtime=myrunc docker๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค ( /etc/docker/daemon.json ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค).

@ cpuguy83- ๋น ๋ฅธ ๋‹ต์žฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ runc๋ฅผ ๋Œ€์ฒดํ–ˆ์ง€๋งŒ 17.12 ๋ธŒ๋žœ์น˜์—์„œ ์™„์ „ํ•œ docker-ce ์—”์ง„์„ ๋นŒ๋“œ ํ•œ ๋‹ค์Œ binaries-commits ๋ฐ vendor.conf์—์„œ b2567b37d7b75eb4cf325b77297b140ea686ce8f ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์–ด์จŒ๋“ , ๋‹น์‹ ์ด ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ runc๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๊ต์ฒดํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ˜๋ณต ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@foleymic ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ docker-containerd-ctr pprof --debug-socket /run/docker/containerd/docker-containerd-debug.sock goroutines ์˜ ์ถœ๋ ฅ๋„ ์‹ ์ค‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ AlterEgo7 ์Šคํƒ ์ถ”์ ์ด ๊ฝค errrr ... ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค ...
"์‹คํ–‰ ๊ฐ€๋Šฅ"์ƒํƒœ์—์žˆ๋Š” ๋งŽ์€ ๊ณ  ๋ฃจํ‹ด (๋…น์ƒ‰ ์Šค๋ ˆ๋“œ)์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์‹ค์ œ OS ์Šค๋ ˆ๋“œ๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ๋กœ๋ถ€ํ„ฐ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? docker run --pid=host busybox ps aux ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@ cpuguy83- ๋…๋ฆฝ ์‹คํ–‰ ํ˜• runc (์ปค๋ฐ‹ 9f9c96235cc97674e935002fc3d78361b696a69e ํ™•์ธ)๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ  ์ œ์•ˆํ•œ๋Œ€๋กœ ๋ฐฐํฌํ•˜๊ณ  (์•„๋ž˜ daemon.json์˜ ์ผ๋ถ€) ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญํ•œ๋Œ€๋กœ docker-containerd-debug.sock goroutines ์˜ ์ถœ๋ ฅ์„ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ํ•ด์•ผ ํ•  ์ผ์ด ๋” ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

docker-containerd-debug.log

cat /etc/docker/daemon.json
{
    "default-runtime":"patchedrunc",
    "runtimes": {
        "patchedrunc": {
             "path": "/usr/local/bin/patched-runc"
        }
    },
    ....

๋„์ปค ์ •๋ณด

docker info | grep runc
Runtimes: patchedrunc runc
Default Runtime: patchedrunc
WARNING: bridge-nf-call-ip6tables is disabled
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e (expected: b2567b37d7b75eb4cf325b77297b140ea686ce8f)

๋‚ด ๊ฐœ๋ฐœ ํŒ€์˜ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด MacOS 10.13 ๋ฐ Docker For Mac 17.12์—์„œ ์ค‘๋‹จ๋˜๋Š” ๋„์ปค ๋ช…๋ น์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ / ์ข…๋ฃŒํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ docker inspect ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ช…๋ น์—์„œ๋„ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒจ๋ถ€ ๋œ ๊ฒƒ์€ curl --unix-socket /var/run/docker.sock http:/./debug/pprof/goroutine?debug=2 ์˜ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.
docker-debug.log

30 ์ดˆ ์ด์ƒ ๋งค๋‹ฌ๋ฆฐ docker-compose ps ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ดฌ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ docker ps ์ด ๊ฑธ๋ฆผ ๋™์•ˆ ์ผ์„ ์ž˜ํ•˜์ง€๋งŒ, docker inspect ์— ์˜ํ•ด ๋ฐ˜ํ™˜ ๋œ ์šฉ๊ธฐ์˜ docker ps ๋‹จ์ง€ ๋“ฑ ์ค‘๋‹จ docker-compose ps ํ–ˆ๋‹ค.

docker-sync๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ Mac ์šฉ Docker์—์„œ OSXFS ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์กฐ์‚ฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋” ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

@ cpuguy83 ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์‹คํŒจ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ๋กœ๊ทธ๋ฅผ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ์ปดํฌ์ง€์…˜์—๋Š” 36 ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ˆœํžˆ docker-compose up ๋ฐ docker-compose down์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ํ›Œ๋ฅญํ–ˆ์ง€๋งŒ ๋‘ ๋ฒˆ์งธ์—๋Š” 3 ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ "์—…"์ƒํƒœ ์˜€๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ "์ข…๋ฃŒ"์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋กœ๊ทธ์˜ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

docker_debug.txt

๋‹ค์Œ์€ docker-compose down์—์„œ๋ณด๊ณ  ํ•œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information. If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).

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

์ด๊ฒƒ์€์ด ํŠน์ • ์‚ฌ๋ก€์˜ ์˜ˆ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ•ญ์ƒ ๋น„๋‚œ ํ•  ์‚ฌ๋žŒ์ด postgres๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์ผ์–ด๋‚  ๋•Œ redis ๋˜๋Š” rabbitmq๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋–ผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ์ผํ•˜๋Š” ํšŒ์‚ฌ์—๋Š” ๊ฐœ๋ฐœ์„ ์œ„ํ•ด Java ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŽ์€ Docker Host๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋•Œ๋•Œ๋กœ ์ด๋ฏธ์ง€ ๋‚˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜์—†๊ณ  ๋‹ค๋ฅธ ์ž‘์—… ์ค‘์—์„œ๋„ ์ด๋ฏธ์ง€ ๋‚˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฒ€์‚ฌ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

journalctl์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋งŽ์€ ๋ฉ”์‹œ์ง€๋ฅผ๋ฐ›์Šต๋‹ˆ๋‹ค.
Jan 31 11:31:51 DOCKER-DEV dockerd[1882]: time="2018-01-31T11:31:51.598987401Z" level=warning msg="unknown container" container=540456eed4104723a0d4e9d4628d436ec381f978738f83dda16f22430cc60094 module=libcontainerd namespace=plugins.moby

Ubuntu 16.04.3 LTS์—์„œ 17.12 CE๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„๊ณผ ๋„์›€์„ ์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@luisnabais Unknown container ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์—์„œ ๋…ผ์˜๋ฉ๋‹ˆ๋‹ค : https://github.com/moby/moby/issues/35891

@sorenhansendk ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๋‚˜๋Š” ์ด๋ฏธ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์—ˆ์œผ๋ฉฐ ๋‘ ์Šค๋ ˆ๋“œ๋ฅผ ๋ชจ๋‘ ๋”ฐ๋ฅด๊ณ  ์žˆ์œผ๋ฉฐ 17.12์— ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ...

์—…๋ฐ์ดํŠธ-์ƒˆ๋กœ์šด 3 ๋…ธ๋“œ ํด๋Ÿฌ์Šคํ„ฐ (๋™์ผํ•œ VM ํ…œํ”Œ๋ฆฟ)๋ฅผ ์„ค์ •ํ•˜๊ณ  docker-18.02.0-ce (https://download.docker.com/linux/static/test/x86_64/docker)์˜ RC 1์„ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. -18.02.0-ce-rc1.tgz) ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ # 35891 ๋•๋ถ„์— ๋” ์ด์ƒ ๋‚ด ๋กœ๊ทธ์— Unknown container ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ •์˜๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ณผ๋ฅจ๋„ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์ˆ˜์ • ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ ์–ด๋„ ๋‚˜์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€ ๊ฐ„ํ—์ ์ž…๋‹ˆ๋‹ค.

@richardjq ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋ฌธ์ œ๊ฐ€ runc https://github.com/opencontainers/runc/pull/1698 ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ฒ„์ „์˜ Docker์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

12.17.0-ce

๋˜ํ•œ ์ตœ์‹  Docker (Mac OS)๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด๋˜๋Š” ๊ฒฝ์šฐ ๋‚ด ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://gist.github.com/carlisia/780b008dd5ac0339522f8fbddd97d066

๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๋งค์šฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

@carlisia ์ด ๊ฐ€์žฅ์ž๋ฆฌ๊ฐ€ ์•ˆ์ •์ ์ธ๊ฐ€์š”? (๋˜๋Š” ๋ฒ„์ „ ๊ด‘๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ณด ํ™”๋ฉด์˜ ๋ฒ„์ „์ด ๋” ์ข‹์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค).

@ cpuguy83 ์•ˆ์ •. ๋ฐฉ๊ธˆ UI์—์„œ ์—…๋ฐ์ดํŠธ ์˜ต์…˜์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

image

์ด๊ฒƒ์ด ๋„์›€์ด๋˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ,์ด ๋Œ€ํ™”์— ์ถ”๊ฐ€ ํ•  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋˜๋Š” ์ด์ƒํ•œ ์ ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜์—ฌ (์Šคํ†ก ๋„์ปค 17.12.0-ce ์‚ฌ์šฉ) ์Šคํƒ / ์„œ๋น„์Šค๊ฐ€ ์ œ๊ฑฐ ๋œ ๋…ธ๋“œ์—์„œ ๋ฐ๋ชฌ ๋กœ๊ทธ๋ฅผ ์กฐ์‚ฌํ–ˆ์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๋Š” healthy ์ƒํƒœ๋กœ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. docker ps ์ด ์ปจํ…Œ์ด๋„ˆ ID๋ฅผ 8c5381ca6248 ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๋ฐ๋ชฌ ๋กœ๊ทธ์—์„œ ํ•ด๋‹น ID๋ฅผ grepํ–ˆ๊ณ  pid=94570 ๋กœ ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ stack rm ํ˜ธ์ถœ ํ•œ ํ›„์— Ignoring Exit Event, no such exec command found - PID ๊ฐ€ ๋‹ค๋ฅด๊ณ  ๋‘˜ ๋‹ค pid=94570 ์™€ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ps ax | grep 8c5381ca6248 )์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋–ผ๊ฐ€ ์ž˜๋ชป๋œ PID๋ฅผ ๊ฐ–๋Š” ์ด์œ ๋ฅผ ์•„์‹ญ๋‹ˆ๊นŒ?

๋‹ค์Œ์€ ๋ฐ๋ชฌ ๋กœ๊ทธ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

$ journalctl | grep 8c538
Feb 01 12:03:12 xxx dockerd[38879]: time="2018-02-01T12:03:12-05:00" level=info msg="shim docker-containerd-shim started" address="/containerd-shim/moby/8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0/shim.sock" debug=false module="containerd/tasks" pid=94570
Feb 01 12:03:53 xxx dockerd[38879]: time="2018-02-01T12:03:53.823039243-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:03:53 xxx dockerd[38879]: time="2018-02-01T12:03:53.879628386-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:04:04 xxx dockerd[38879]: time="2018-02-01T12:04:04.143264783-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:04:04 xxx dockerd[38879]: time="2018-02-01T12:04:04.285288560-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:04:14 xxx dockerd[38879]: time="2018-02-01T12:04:14.685324737-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:04:24 xxx dockerd[38879]: time="2018-02-01T12:04:24.310513628-05:00" level=warning msg="Health check for container 8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 error: context cancelled"
Feb 01 12:04:34 xxx dockerd[38879]: time="2018-02-01T12:04:34.520599061-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:04:44 xxx dockerd[38879]: time="2018-02-01T12:04:44.332650759-05:00" level=warning msg="Health check for container 8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 error: context cancelled"
Feb 01 12:04:54 xxx dockerd[38879]: time="2018-02-01T12:04:54.666961688-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:05:04 xxx dockerd[38879]: time="2018-02-01T12:05:04.348300333-05:00" level=warning msg="Health check for container 8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 error: context cancelled"
Feb 01 12:05:14 xxx dockerd[38879]: time="2018-02-01T12:05:14.633386506-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:05:20 xxx dockerd[38879]: time="2018-02-01T12:05:20.813814668-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:05:20 xxx dockerd[38879]: time="2018-02-01T12:05:20.813896784-05:00" level=warning msg="Ignoring Exit Event, no such exec command found" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 exec-id=9669e0bea74dbd90d56f61c3b8070fc043f6254d5b5b089d1562fdbfb154aa2b exec-pid=106625
Feb 01 12:05:20 xxx dockerd[38879]: time="2018-02-01T12:05:20.845301695-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:05:20 xxx dockerd[38879]: time="2018-02-01T12:05:20.845372559-05:00" level=warning msg="Ignoring Exit Event, no such exec command found" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 exec-id=b637507387bcce7dcf3f270d48eaf75d4d5deccd00506d0ed656c78833ad8cda exec-pid=104564
Feb 01 12:05:20 xxx dockerd[38879]: time="2018-02-01T12:05:20.877888876-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:05:20 xxx dockerd[38879]: time="2018-02-01T12:05:20.952730879-05:00" level=warning msg="unknown container" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 module=libcontainerd namespace=plugins.moby
Feb 01 12:05:20 xxx dockerd[38879]: time="2018-02-01T12:05:20.952805518-05:00" level=warning msg="Ignoring Exit Event, no such exec command found" container=8c5381ca6248dcbe199c56f87842c2cfd089e3ee5547895d7f037ed79e20dfc0 exec-id=2e5df9c74b29ca12fa9df0e14f095cf8524629564245107c4d8f0fb9d82adf9e exec-pid=103807

์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋Š˜๋ ค์„œ ๋ฏธ์•ˆํ•˜์ง€๋งŒ ๋‚˜๋Š” ์‹คํ—˜ ์ค‘์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ด๋“ ๊ฐ„์— 18.01.0-ce ์—์„œ 18.02.0-ce-rc1 ์‚ฌ์ด์˜ ์–ธ์  ๊ฐ€ docker daemon ( dockerd )์—์„œ ์ˆ˜์ • ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ฑ„๋„์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ ํ•œ ํ›„ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์–ด ์‹คํ—˜์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •๋œ ์ฑ„๋„ 17.12.0 ๋กœ ๋Œ์•„๊ฐ€์„œ ์ €๋Š” Edge ๋ฐ ํ…Œ์ŠคํŠธ ์ฑ„๋„์— ๋ฐฐํฌ ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ํ–ˆ์Šต๋‹ˆ๋‹ค . 18.01 , 18.02-rc1 ๋ฐ 18.02-rc2 , ๊ฐ ๋ฒ„์ „์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • dockerd 17.12.0-ce ์‹คํŒจ
  • dockerd 18.01.0-ce ์‹คํŒจ
  • dockerd 18.02.0-ce-rc1 ์„ฑ๊ณต

๋ช…ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด, FAILED๋ผ๊ณ ํ•˜๋ฉด docker stack deploy ์˜ํ•ด ์ƒ์„ฑ ๋œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ docker stack rm ์„ ์‹คํ–‰ ํ•œ ํ›„์—๋„ Up ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 18.02.0-ce-rc2 ์—์„œ๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. docker stack rm ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•˜์ง€๋งŒ ์ œ๊ฑฐํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค (์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ ๋จ ์ƒํƒœ๋กœ docker stack rm ๋ช…๋ น์ด ๊ฐ ์Šคํƒ์—์„œ ์™„๋ฃŒ๋œ ํ›„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ •๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— 30 ์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ์ •๋ฆฌ๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์ „์— ์ •๋ฆฌ๋ฅผ ์™„๋ฃŒ ํ•  ์‹œ๊ฐ„์„์ค๋‹ˆ๋‹ค.

์ข‹์€ ์†Œ์‹์€ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ • ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ RC๋ฅผ ํŒ€์— ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. 18.01๊ณผ 18.02-rc1 ์‚ฌ์ด์˜ ์ปค๋ฐ‹์„ ์Šค์บ”ํ•˜์—ฌ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. @ cpuguy83 ๋ฐ @thaJeztah ,

์ฃผ์˜ ํ•  ์ ์€์ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ๋ฌธ์ œ๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ์žฌํ˜„๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 18.02 (RC 1 ๋˜๋Š” 2)์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณด์ง€ ๋ชปํ–ˆ์ง€๋งŒ 100 % ๊ธ์ •์ ์ผ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด RC1๋กœ ๊ณ„์† ํ…Œ์ŠคํŠธํ•˜๊ณ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ 17.12-18.01์—์„œ๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์•ฝ 50 % ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. 18.02์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@foleymic์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค! ๋‚ด ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ Docker์˜ ์ตœ์ฒจ๋‹จ ๋ฒ„์ „ (๋ฆด๋ฆฌ์Šค ํ›„๋ณด)์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์œผ๋ฉฐ ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€ / ์ข…๋ฃŒ์— ๋Œ€ํ•œ ๋ฒ„๊ทธ๋กœ ์ธํ•ด ๋งค์šฐ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ๋œ ๋ฒ„์ „์˜ runc๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘

์‹ ๊ณ  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด containerd 1.0.1๊ณผ ํŒจ์น˜ ๋œ runc์˜ ์กฐํ•ฉ์œผ๋กœ ์™„์ „ํžˆ ๊ณ ์ณ ์กŒ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@sorenhansendk- ๋‹น์‹ ๋„ ๊ธ์ •์  ์ธ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ  ๊ธฐ๋ป์š”. @ cpuguy83 ์€ ๋˜ํ•œ spectre / meltdown๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ˆ˜ํ–‰ ๋œ runc ์ˆ˜์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ํ™•์‹คํžˆ ์ €์—๊ฒŒ๋Š” ์ˆ˜์ •์ด ์•„๋‹ˆ ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ˜„์žฌ 17.12.0 ์—์„œ runc ์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ 18.02.0-rc1 ์—์„œ๋งŒ dockerd ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ˜๋Œ€๋กœ runc ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (https://github.com/opencontainers/runc/pull/1698๋กœ runc๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธ์—์„œ ๋ฒ„์ „์„ ๊ฐ€์ ธ ์˜ค๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.) ๋ฐ ๊ฐ€์žฅ์ž๋ฆฌ ๋ฐฐํฌํŒ).

@ cpuguy83- ํŒจ์น˜ ๋œ dockerd๋กœ๋งŒ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. Containerd ๋ฐ runc๋Š” ์—ฌ์ „ํžˆ 17.12.0

๋„์ปค ์ •๋ณด :

...
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 89623f28b87a6004d4b785663257362d1658a729 (expected: 9b55aab90508bd389d7654c4baf173a981477d55)
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f (expected: 9f9c96235cc97674e935002fc3d78361b696a69e)
...

์˜ˆ, 18.02๋Š” ์ตœ์‹  ์ปจํ…Œ์ด๋„ˆ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
17.12์˜ ์ƒˆ๋กœ์šด ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ dockerd๋Š” containerd๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ณ„๋„์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค-docker-containerd. ์–ด์จŒ๋“ , 17.12 ํŒจ์น˜ ์ž‘์—…์„ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์†Œ์‹์„ ๋“ค์œผ๋‹ˆ ๊ธฐ์ฉ๋‹ˆ๋‹ค. ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค. ๋„์›€์„ ์ฃผ์…”์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

image

์˜ค, ๊ทธ๋ž˜์„œ ๋‹น์‹ ์€ ๋ง ๊ทธ๋Œ€๋กœ dockerd ๋ฐ”์ด๋„ˆ๋ฆฌ ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜. ์—ฌ๊ธฐ์— ์–ด๋–ค ํŒจ์น˜๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  17.12 ๋ฆด๋ฆฌ์Šค์— ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

:)-์ €๋Š” ํ˜„์žฌ franken-docker๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค! 18.02-rc1 ์ธ dockerd๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด 17.12.0์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, ์ˆ˜์ • ์‚ฌํ•ญ์€ PR # 35748์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 18.02.0-ce-rc2-mac51 (22446)์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

linuxkit-025000000001:/# /usr/bin/containerd --version
containerd github.com/containerd/containerd v1.0.1 9b55aab90508bd389d7654c4baf173a981477d55
docker info

containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e

@ximarx ์‹ ๊ณ 
Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด

curl --unix-socket /var/run/docker.sock http:/./debug/pprof/goroutine?debug=2

Mac ์šฉ containerd์˜ ๊ฒฝ์šฐ ์•ฝ๊ฐ„ ๊นŒ๋‹ค ๋กญ์Šต๋‹ˆ๋‹ค.

 docker run -it --rm -v /:/host alpine /host/usr/local/bin/docker-containerd-ctr pprof --debug-socket /host/run/docker/containerd/docker-containerd-debug.sock goroutines

@ximarx- ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค๊ณ  ๋งํ•  ๋•Œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚จ์•„ ์žˆ์ง€๋งŒ ์ข…๋ฃŒ ๋œ ์ƒํƒœ์—์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘ ์ƒํƒœ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ? 18.02์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—ฌ์ „ํžˆ ๋‚จ์•„ ์žˆ์ง€๋งŒ ์‹คํ–‰ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ docker stack rm ํ›„์— ์ •๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒ์ ์ด์ง€๋Š” ์•Š์ง€๋งŒ ์ ์–ด๋„ ๋ชจ๋“  ๊ฒƒ์„ ์ค‘๋‹จ ํ•œ ํ›„ ๊นจ๋—ํ•œ ์ƒํƒœ์— ๋„๋‹ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 18.02๋ฅผ ์ทจํ•˜๊ธฐ ์ „์—๋Š” ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ ๋” ์ด์ƒ ์Šคํƒ๊ณผ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ข…๋ฃŒํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

BTW, ๋‚˜๋Š” PR # 35748์„ ๋‚ด ํฌํฌ์˜ 12.17์— ๋ณ‘ํ•ฉํ•˜๊ณ  ๋นŒ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ๋ฅผ ์ ์šฉํ•œ ์ดํ›„๋กœ ๋ฌธ์ œ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

docker ๋ฐ containerd์—์„œ ์Šคํƒ ๋คํ”„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@ cpuguy83 : ๋ถˆํ–‰ํžˆ๋„ ๋„์ปค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์žฌํ˜„ํ•˜์ž๋งˆ์ž ์Šคํƒ ๋คํ”„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค๊ณ  ๋งํ•  ๋•Œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚จ์•„ ์žˆ์ง€๋งŒ ์ข…๋ฃŒ ๋œ ์ƒํƒœ์—์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘ ์ƒํƒœ์—์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๊นŒ?

@foleymic ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹คํ–‰ ์ƒํƒœ๋กœ ์œ ์ง€๋˜์ง€๋งŒ docker inspect ๋ช…๋ น์€ ์˜์›ํžˆ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค ( docker-compose ps ๋ฐ docker stop ).

@ximarx- ํ™•์ธํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ตฐ๋ฐ ๊ตฐ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋˜‘๊ฐ™์€ ๋™์ž‘์„ ๋ณด์•˜์ง€๋งŒ ํŒจ์น˜ ๋œ ๋นŒ๋“œ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ์ดํ›„๋กœ ๋ฌธ์ œ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณด๋Š” ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์šฐ๋ฆฌ๊ฐ€ RHEL์—์„œ ์‹คํ–‰๋˜๊ณ  Mac์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์ด๋ฏธ ํ•ด๊ฒฐ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?
๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ๋ฒ„์ „์œผ๋กœ ์ถœ์‹œ๋ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ณ ์ •์ด 18.02๋กœ ์ฐฉ๋ฅ™ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ™•์ธ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"์•ˆ์ •๋œ"์ฑ„๋„ 17.12.0 ๋ฒ„์ „์—๋Š” ์—ฌ์ „ํžˆ์ด ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ • ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น PR์„ ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค 17.12.1๋กœ ๋ฐฑ ํฌํŒ… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ๋žŒ๋“ค์ด 17.09๋กœ ์™„์ „ํžˆ ๋˜๋Œ ๋ฆฌ๊ฑฐ๋‚˜ ์—ฃ์ง€ ๋ฆด๋ฆฌ์Šค์— ์˜์กดํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์•ˆ์ •์ ์ธ ์ฑ„๋„์€ ๋งค์šฐ ๋ถˆ์•ˆ์ •ํ•ฉ๋‹ˆ๋‹ค.

17.12.1 ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค์˜ ๊ฒฝ์šฐ +1

์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋”ฐ๋œปํ•˜๊ฒŒํ•ด์„œ ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค-์ˆ˜์ •์ด ์˜ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค;)-ํ•˜์ง€๋งŒ ๋น ๋ฅธ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
Dockerfile์— HEALTHCHECK๋ฅผ ์ถ”๊ฐ€ ํ•œ ์ดํ›„๋กœ docker-ce-17.12์—์„œ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Dockerfiles์— HEALTCHECK๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด HEALTHCHECK์™€ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์šฐ์—ฐ์ผ๊นŒ์š”?

๊ฑด๋ฐฐ
ํ•„

@PhilPhonic ์˜ˆ, ์ƒํƒœ ํ™•์ธ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/moby/moby/pull/36097 (์–ด์ œ ๋ฆด๋ฆฌ์Šค์— ์ถ”๊ฐ€๋จ)์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋ฌธ์ œ # 34213์—์„œ ์™”์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์™„์ „ํžˆ ํ™•์‹ ํ•˜์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ์ง€์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์—๊ฒŒ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋Ÿฌํ•œ ์ˆ˜์ • ํ›„์—๋„ ์—ฌ์ „ํžˆ ๋ฉˆ์ถฐ ์žˆ๊ณ  ์‹คํ–‰์„ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์ด๋ฒˆ์—๋Š” ๋„์ปค ๋ฐ๋ชฌ์„ ์žฌ๋ถ€ํŒ…ํ•˜์ง€ ์•Š๊ณ ๋„ ์ค‘์ง€ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋„์ปค ๋ฒ„์ „

Client:
 Version:   17.12.1-ce
 API version:   1.35
 Go version:    go1.9.4
 Git commit:    7390fc6
 Built: Tue Feb 27 22:17:56 2018
 OS/Arch:   linux/amd64

Server:
 Engine:
  Version:  17.12.1-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   7390fc6
  Built:    Tue Feb 27 22:16:28 2018
  OS/Arch:  linux/amd64
  Experimental: false

๋„์ปค ์ •๋ณด

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 17.12.1-ce
Storage Driver: overlay2
 Backing Filesystem: tmpfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
 apparmor
Kernel Version: 4.4.0-64-generic
Operating System: Ubuntu 14.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 6
Total Memory: 19.8GiB
Name: vm64-3
ID: OHED:ZYGD:4ZNG:QWGC:7VQ5:2KVU:YXP3:CKCR:AMV5:FVFF:PMJ6:ICXM
Docker Root Dir: /tmp/ramdisk/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 27
 Goroutines: 47
 System Time: 2018-03-01T07:57:09.565797691Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

docker inspect prerelease (๊ณ ์ฐฉ ๋œ ์ปจํ…Œ์ด๋„ˆ)

[
    {
        "Id": "34d42f7a8246de8c6eb4b3d9f8fe3a62c1b0ac8ce7a800f918538b33c35d282a",
        "Created": "2018-02-28T19:22:54.823764324Z",
        "Path": "bash",
        "Args": [
            "-c",
            "./release_scripts/bootstrap_prerelease.sh /release_scripts/.rosinstall unused-version-argument git /release_scripts/.rosinstall erbium xenial kinetic index.yaml coverage true "
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 6495,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-02-28T19:22:55.675976607Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:fa0591be5fc0613715fb2605264ff61967811262bdbc93d262faca23df1bf2fe",
        "ResolvConfPath": "/tmp/ramdisk/docker/containers/34d42f7a8246de8c6eb4b3d9f8fe3a62c1b0ac8ce7a800f918538b33c35d282a/resolv.conf",
        "HostnamePath": "/tmp/ramdisk/docker/containers/34d42f7a8246de8c6eb4b3d9f8fe3a62c1b0ac8ce7a800f918538b33c35d282a/hostname",
        "HostsPath": "/tmp/ramdisk/docker/containers/34d42f7a8246de8c6eb4b3d9f8fe3a62c1b0ac8ce7a800f918538b33c35d282a/hosts",
        "LogPath": "/tmp/ramdisk/docker/containers/34d42f7a8246de8c6eb4b3d9f8fe3a62c1b0ac8ce7a800f918538b33c35d282a/34d42f7a8246de8c6eb4b3d9f8fe3a62c1b0ac8ce7a800f918538b33c35d282a-json.log",
        "Name": "/prerelease",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "unconfined",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/home/hudson/.hudson/workspace/Mega-Integration/release_scripts:/release_scripts",
                "/tmp/prerelease_out:/tmp/prerelease_out",
                "/home/hudson/pbuilder_ccache:/tmp/pbuilder_ccache",
                "/tmp/.X11-unix:/tmp/.X11-unix:rw",
                "/home/hudson/exchange:/home/user/exchange"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "host",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": true,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": [
                "label=disable"
            ],
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [
                {
                    "PathOnHost": "/dev/snd",
                    "PathInContainer": "/dev/snd",
                    "CgroupPermissions": "rwm"
                }
            ],
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": [
                {
                    "Name": "nofile",
                    "Hard": 10240,
                    "Soft": 10240
                }
            ],
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/tmp/ramdisk/docker/overlay2/03efcd70b4e0faac571708859c2cfb0d43f7da1331702508980c6c49945ba1e4-init/diff:/tmp/ramdisk/docker/overlay2/b4f54a4bcf9693f50de7c5789597a12479edfd42d9b8fa2f449f9c6a3f09e580/diff:/tmp/ramdisk/docker/overlay2/ec49f1ad95aaa5088113b71e7894db1ce0229123457e8e63f76cde8d5501cc73/diff:/tmp/ramdisk/docker/overlay2/3bb76c8cef3b6466f1f57167c326a8b065e5f0133424f16b1c0be2510ec60574/diff:/tmp/ramdisk/docker/overlay2/77e87eeac5f5325031e0ababfe19e094c1a443593e4f849f5d79f3f15ef4a573/diff:/tmp/ramdisk/docker/overlay2/1ad76d631a387704468b365fddcc772596361c64e3085cd9efc50f514211024c/diff:/tmp/ramdisk/docker/overlay2/14ee3b713fb1cb48a8baa1c18c39bb85ebbd4acf23df18f146d1b2ddf2106772/diff:/tmp/ramdisk/docker/overlay2/0636682f487ae65c4123e0d281991fde9eeb207745556ead1aa605588df66053/diff:/tmp/ramdisk/docker/overlay2/635fe79b7fa395eb1171b4cb8a5b053643c152699e2e36711d219de92f32d44f/diff:/tmp/ramdisk/docker/overlay2/f5f559bda6b48218a145b81d505dc6bb7dd1dbd144c00eb8200884c20c541a16/diff:/tmp/ramdisk/docker/overlay2/fd6c90c91221f4395ee5d1fa6e6ce165d98cdb5e38edd00d4ef5aaf7bda9bdec/diff:/tmp/ramdisk/docker/overlay2/4198097e8c9bcdcc596434d269f39a2014049b9f62bbd9e259c6d0653371db6e/diff:/tmp/ramdisk/docker/overlay2/d9665613172c8ceb3cd6bfa5709bb05a38f5886322e9ba6f3b59604755670125/diff:/tmp/ramdisk/docker/overlay2/c3eec0a6317354680ed46e1883089fb345a91aada6d1bebc1585869e7497cfa2/diff:/tmp/ramdisk/docker/overlay2/f82163d218a43b50885139dfad1c5dedcd4d381fd76af4a38e0480d48e2ab32b/diff:/tmp/ramdisk/docker/overlay2/c72be8cddf53887e1c8c55207153d2b59e26e3327b60764d1dbe632d6db7b4ff/diff",
                "MergedDir": "/tmp/ramdisk/docker/overlay2/03efcd70b4e0faac571708859c2cfb0d43f7da1331702508980c6c49945ba1e4/merged",
                "UpperDir": "/tmp/ramdisk/docker/overlay2/03efcd70b4e0faac571708859c2cfb0d43f7da1331702508980c6c49945ba1e4/diff",
                "WorkDir": "/tmp/ramdisk/docker/overlay2/03efcd70b4e0faac571708859c2cfb0d43f7da1331702508980c6c49945ba1e4/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/hudson/.hudson/workspace/Mega-Integration/release_scripts",
                "Destination": "/release_scripts",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/tmp/prerelease_out",
                "Destination": "/tmp/prerelease_out",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/hudson/pbuilder_ccache",
                "Destination": "/tmp/pbuilder_ccache",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/tmp/.X11-unix",
                "Destination": "/tmp/.X11-unix",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/hudson/exchange",
                "Destination": "/home/user/exchange",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "vm64-3",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": true,
            "AttachStderr": true,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "NIGHTLY_BUILD=1",
                "LOCAL_USER_ID=1001",
                "LOCAL_GROUP_ID=1001",
                "LOCAL_GROUP_NAME=hudson",
                "DISPLAY=:0",
                "QT_X11_NO_MITSHM=1",
                "PATH=/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:"
            ],
            "Cmd": [
                "bash",
                "-c",
                "./release_scripts/bootstrap_prerelease.sh /release_scripts/.rosinstall unused-version-argument git /release_scripts/.rosinstall erbium xenial kinetic index.yaml coverage true "
            ],
            "Image": "gitlab:4567/dockers/pal_docker_images/core-erbium-internal-staging",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "com.nvidia.volumes.needed": "nvidia_driver",
                "maintainer": "[email protected]"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "57d9e5bf0c9e05f5351787befe065ef390dd39f39d2aa7681b28abfe4381a8d3",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/default",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "39e3e5618a9dcb24f03e831dbe1929bacdca472fefa3542122bc217429d6914d",
                    "EndpointID": "eabbf4a17b6f92b564ff0303cbc8d3ec67744f9d0b90fe21d49f5b7aebca1d5c",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

๋˜ํ•œ 3 ๋…ธ๋“œ Rancher (v1.6.14) ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€์žˆ๋Š” Ubuntu 16.04.3 LTS์˜ 17.12.0-ce์—์„œ ์ด๋Ÿฌํ•œ ์ฆ์ƒ์„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜๋งŒ์ด ๋™์ผํ•œ ๋„์ปค / ์šฐ๋ถ„ํˆฌ / ๋žœ์ฒ˜ ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ฐ„ํ—์ ์œผ๋กœ (1 ~ 7 ์ผ) ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๋…ธ๋“œ๋Š” ๊ฐ€์žฅ ๋งŽ์€ ์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ๊ฐ€์žฅ ๋งŽ์€ ์–‘์˜ ๋ถ€ํ•˜๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

์ด ๊ต์ฐจ ๋ฌธ์ œ์˜

์•„์ง 17.12.1-ce์—์„œ ์šด์ด ์ข‹์€ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@mauriceteunissen 17.12.1-ce๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค!

์Šฌํ”„๊ฒŒ๋„ 17.12.1-ce๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
Dockerfile์—์„œ HEALTHCHECK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ—‰ํ—‰

์žฌํ˜„ํ•˜๋Š” ๋ฐ ์˜ˆ์ƒ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. zip์—๋Š” ํ•„์š”ํ•œ ๋‘ ๊ฐœ์˜ ๋คํ”„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

$ docker info
Containers: 21
 Running: 21
 Paused: 0
 Stopped: 0
Images: 42
Server Version: 18.03.0-ce-rc1
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc version: 6c55f98695e902427906eed2c799e566e3d3dfb5
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.75-linuxkit-aufs
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.363GiB
Name: linuxkit-025000000001
ID: EDQO:EXVD:FYS7:R47M:V4UC:H63J:NKHU:T466:DLMW:VXSO:C7XE:BROD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 185
 Goroutines: 197
 System Time: 2018-03-07T15:05:02.215912835Z
 EventsListeners: 2
HTTP Proxy: docker.for.mac.http.internal:3128
HTTPS Proxy: docker.for.mac.http.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

dumps.zip

์ด๊ฒƒ์€ 17.12.0-ce์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” 18.03.0-ce-rc1-mac54๋กœ ์ „ํ™˜ํ–ˆ๊ณ , ๊ฐ€๋” ๋ฐœ์ƒํ•˜์ง€๋งŒ ํ›จ์”ฌ ๋œ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ HEALTHCHECK๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์—…์ค‘์ธ ์•ฑ์ธ ๋‹จ์ผ ์Šคํƒ์ด ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ด ์™ธ์—๋„ ์ปจํ…Œ์ด๋„ˆ์— ๋ฐ”์ธ๋”ฉ ๋œ ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜ docker run --rm ๋ช…๋ น์„ ํ†ตํ•ด ๊ฐœ๋ฐœ ์ž‘์—…์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Webpack ๋นŒ๋“œ ๋ช…๋ น์€`docker run --rm -t --env "NODE_ENV = development"-v $ (pwd) : / srv --workdir / srv node : alpine node_modules / .bin / webpack- config webpack.config.js --progress.

๋•Œ๋•Œ๋กœ Webpack ๋นŒ๋“œ๊ฐ€ ๋ฉˆ์ถฐ์„œ (์•ฝ 10-12 %) ctrl + c ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค. 30 ๋ถ„ ์ •๋„ ๊ทธ๋Œ€๋กœ ๋‘๋ ค๊ณ ํ–ˆ์ง€๋งŒ ๊ณ ์ • ํ•ด์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์ผ๋ฐ˜์ ์ธ ๋นŒ๋“œ ์‹œ๊ฐ„์€ <25 ์ดˆ์ž…๋‹ˆ๋‹ค). ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ctrl + c ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œ๋Œ€๋กœ ์ฃฝ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ์ฃผ๋ณ€์— ๋งค๋‹ฌ๋ ค์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฉˆ์ถฐ์žˆ์„ ๋•Œ docker ps ๋Š” ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘์ด๋ผ๊ณ  ํ‘œ์‹œํ•˜์ง€๋งŒ docker kill ๋ฐ docker rm ์ทจ์†Œ ํ•  ๋•Œ๊นŒ์ง€ ์ž ์‹œ ๋ฉˆ ์ถฅ๋‹ˆ ๋‹ค (๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ 20 ๋ถ„ ๋™์•ˆ ๊ทธ๋Œ€๋กœ ๋‘๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. kill ๋ฐ rm ๋ช…๋ น์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ์ƒํƒœ).

๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๊ฐ€ ์˜์‹ฌ๋˜์–ด Windows๋ฅผ ๋ถˆ์•ˆ์ •ํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š๊ณ  Docker์— ํ• ๋‹น ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ตœ๋Œ€ํ•œ ๋Š˜๋ฆฌ๋ ค ๊ณ ํ–ˆ์ง€๋งŒ์ด ๋ฌธ์ œ์˜ ๋นˆ๋„์—๋Š” ์ฐจ์ด๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋นŒ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋„์ปค ํ†ต๊ณ„๋ฅผ ๋ณด๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์•ฝ 150Mb (์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ 2.5Gb ์ค‘)์—์„œ ์ตœ๊ณ ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰์ค‘์ธ ๋‹ค๋ฅธ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์ด ํ•ฉ๊ณ„๊ฐ€ 20 %๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ OOM์ด ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์š”์ ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€์ด ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํŒจํ•œ ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋ฉด (์˜ˆ : Webpack ๋นŒ๋“œ๋ฅผ ์œ„ํ•ด ๊ฒŒ์‹œ ํ•œ ๋™์ผํ•œ docker run ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰) ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ ์ถœ๋ ฅ์—†์ด ๋ฉˆ์ถ”๊ณ  ์ฃฝ์ผ ์ˆ˜ ์—†๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด์ œ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์˜์‹ฌํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Windows ์šฉ Docker๋ฅผ ๊ฐ„๋‹จํžˆ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ Webpack ๋นŒ๋“œ ๋ช…๋ น์„ ๋ฐ˜๋ณตํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋„์ด ๋ฌธ์ œ์— ๊ฐ‡ํ˜€ ์žˆ์ง€ ์•Š์„๊นŒ.

lsof / strace๋กœ ๋””๋ฒ„๊น…ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ containerd๊ฐ€ stdout / stderr ํŒŒ์ดํ”„์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์“ฐ๋Š” ๋ฐ ๊ฑธ๋ฆฐ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

% sudo ls -l /var/run/docker/containerd/2456b59776d918e0e07ae9259a54229a8f0985ae7b6ad2be7d25fccf8fdd5b49
total 0
prwx------ 1 root root 0 Mar  8 21:46 0048bf0b619804896d3b70ccab859221bf8d318415b26cedfc096b80f4f9ed08-stderr
prwx------ 1 root root 0 Mar  8 21:46 0048bf0b619804896d3b70ccab859221bf8d318415b26cedfc096b80f4f9ed08-stdout
prwx------ 1 root root 0 Mar  8 20:10 init-stderr
prwx------ 1 root root 0 Mar  9 11:17 init-stdout

2456b59776d918e0e07ae9259a54229a8f0985ae7b6ad2be7d25fccf8fdd5b49 ์€ ์ปจํ…Œ์ด๋„ˆ ID์ด์ง€๋งŒ 0048bf0b619804896d3b70ccab859221bf8d318415b26cedfc096b80f4f9ed08 ๋Š” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , stdout-> stderr ์ˆœ์„œ๋กœ ์•Œ ์ˆ˜์—†๋Š” ๋‘ ๊ฐœ์˜ ํŒŒ์ดํ”„๋ฅผ ์ฝ์€ ํ›„ containerd ์ถœ๊ตฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

% sudo cat /var/run/docker/containerd/2456b59776d918e0e07ae9259a54229a8f0985ae7b6ad2be7d25fccf8fdd5b49/0048bf0b619804896d3b70ccab859221bf8d318415b26cedfc096b80f4f9ed08-stdout
% sudo cat /var/run/docker/containerd/2456b59776d918e0e07ae9259a54229a8f0985ae7b6ad2be7d25fccf8fdd5b49/0048bf0b619804896d3b70ccab859221bf8d318415b26cedfc096b80f4f9ed08-stderr

dockerd์— ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

์ด์ƒํ•œ ์ ์€ ํ˜ธ์ŠคํŠธ๋ฅผ ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด Dockerd์—์„œ ๋งŽ์€ ๊ฒƒ์„ "์ •๋ฆฌ"ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๋ฏ€๋กœ ํŠน์ • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์ค‘์ง€ํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฉฐ์น  / ์ฃผ ์‹คํ–‰ ๋œ ํ›„์—๋Š” ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ์šฐ docker-compose๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ docker cli๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค (๋”ฐ๋ผ์„œ docker-compose down ๋˜๋Š” docker stop <name> ๋Š” ๋‹ค์‹œ ์‹œ์ž‘๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ผํ•˜๊ฒŒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค).

$ docker info
Containers: 13
 Running: 7
 Paused: 0
 Stopped: 6
Images: 93
Server Version: 17.12.1-ce
Storage Driver: btrfs
 Build Version: Btrfs v4.4
 Library Version: 101
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
 userns
Kernel Version: 4.13.0-36-generic
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.544GiB
Name: malmur
Docker Root Dir: /var/lib/docker/235536.235536
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

๋ฒ„์ „ 18.02์™€ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Jenkins์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„์ฃผ ์‰ฝ๊ฒŒ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋‚ด ์ •๋ณด์ž…๋‹ˆ๋‹ค.

๋„์ปค ์ค‘์ง€ 5a28870c74e1

Error response from daemon: cannot stop container: 5a28870c74e1: Cannot kill container 5a28870c74e166152b4fa57a95691969eb0fb85185504dee43e495168e179bdd: connection error: desc = "transport: dial unix /var/run/docker/containerd/docker-containerd.sock: connect: connection refused": unknown

๋„์ปค ์ •๋ณด ์ถœ๋ ฅ :

Containers: 6
 Running: 3
 Paused: 0
 Stopped: 3
Images: 8
Server Version: 18.02.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: N/A (expected: 9b55aab90508bd389d7654c4baf173a981477d55)
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-693.11.6.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.3MiB
Name: docker
ID: 5WRP:X7CW:ATNU:2UAT:RSKA:4BX7:R4T6:B5DT:HGF4:YRTF:BXGK:NON5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

๋„์ปค ๋ฒ„์ „

Client:
 Version:   18.02.0-ce
 API version:   1.36
 Go version:    go1.9.3
 Git commit:    fc4de44
 Built: Wed Feb  7 21:14:12 2018
 OS/Arch:   linux/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.02.0-ce
  API version:  1.36 (minimum version 1.12)
  Go version:   go1.9.3
  Git commit:   fc4de44
  Built:    Wed Feb  7 21:17:42 2018
  OS/Arch:  linux/amd64
  Experimental: false

๋„์ปค ๊ฒ€์‚ฌ

 [
    {
        "Id": "5a28870c74e166152b4fa57a95691969eb0fb85185504dee43e495168e179bdd",
        "Created": "2018-03-13T09:38:27.546391905Z",
        "Path": "cat",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 22458,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-03-13T09:38:27.977365052Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:0d90898532210246893d448740ee6ad83ad351f71dc188d4a5705d193cb3a580",
        "ResolvConfPath": "/var/lib/docker/containers/5a28870c74e166152b4fa57a95691969eb0fb85185504dee43e495168e179bdd/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/5a28870c74e166152b4fa57a95691969eb0fb85185504dee43e495168e179bdd/hostname",
        "HostsPath": "/var/lib/docker/containers/5a28870c74e166152b4fa57a95691969eb0fb85185504dee43e495168e179bdd/hosts",
        "LogPath": "/var/lib/docker/containers/5a28870c74e166152b4fa57a95691969eb0fb85185504dee43e495168e179bdd/5a28870c74e166152b4fa57a95691969eb0fb85185504dee43e495168e179bdd-json.log",
        "Name": "/reverent_lovelace",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": [
            "6fab9a929239a9659834a3975f11e73662d238c56f2ab994bed0b0df35e45d3b"
        ],
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [
                "5049a01b4358233471daa74fb11996a6b8e3acfd9c00b33ea7a52a3c24264eaa"
            ],
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/78b8c2d7843b9374c55d939ccb028e27bedb1bbba34032c38609eb57f32e74a1-init/diff:/var/lib/docker/overlay2/7816f6aae89ff8e103e90e971e70cdc3a5bda0722d89fa361fce259e169c8aa8/diff:/var/lib/docker/overlay2/72f3b10b691778a8838270b9548a52dfabb11f28b2f520f1a24981dd416d3a25/diff:/var/lib/docker/overlay2/40cbb59d56e7583545b375636d8b99666071d3511c7acc1edc87f8e175ff5df0/diff:/var/lib/docker/overlay2/e0f0d655a2a8e3d518e966d0bd90d8e1de6ea06cd99f27ca7a5716c5be2faa19/diff:/var/lib/docker/overlay2/367dc44c14f8ad44319a439436966e9e1b00779b51c819307eb3ab47422f0b36/diff:/var/lib/docker/overlay2/e04892a8d5d028c713f10f0cdbb5d0be6854b4c90b3fa9c2bee3f0fc7217bad9/diff",
                "MergedDir": "/var/lib/docker/overlay2/78b8c2d7843b9374c55d939ccb028e27bedb1bbba34032c38609eb57f32e74a1/merged",
                "UpperDir": "/var/lib/docker/overlay2/78b8c2d7843b9374c55d939ccb028e27bedb1bbba34032c38609eb57f32e74a1/diff",
                "WorkDir": "/var/lib/docker/overlay2/78b8c2d7843b9374c55d939ccb028e27bedb1bbba34032c38609eb57f32e74a1/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/docker/jenkins/jenkins_home",
                "Destination": "/var/jenkins_home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/run/docker.sock",
                "Destination": "/var/run/docker.sock",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "5a28870c74e1",
            "Domainname": "",
            "User": "1000:1000",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": true,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "BUILD_NUMBER=12",
                "GIT_PREVIOUS_COMMIT=91873d6d120f13daf6ea243a7b8a97e0f982c6be",
                "JOB_NAME=pipeline test/master",
                "RUN_CHANGES_DISPLAY_URL=http://unconfigured-jenkins-location/job/pipeline%20test/job/master/12/display/redirect?page=changes",
                "BUILD_DISPLAY_NAME=#12",
                "BUILD_TAG=jenkins-pipeline test-master-12",
                "GIT_URL=https://github.com/miwa911/jenkins-pipeline.git",
                "JOB_DISPLAY_URL=http://unconfigured-jenkins-location/job/pipeline%20test/job/master/display/redirect",
                "NODE_NAME=master",
                "BUILD_ID=12",
                "GIT_BRANCH=master",
                "GIT_COMMIT=91873d6d120f13daf6ea243a7b8a97e0f982c6be",
                "HUDSON_HOME=/var/jenkins_home",
                "HUDSON_SERVER_COOKIE=76488b4fc4db183f",
                "JENKINS_SERVER_COOKIE=76488b4fc4db183f",
                "RUN_DISPLAY_URL=http://unconfigured-jenkins-location/job/pipeline%20test/job/master/12/display/redirect",
                "WORKSPACE=/var/jenkins_home/workspace/pipeline_test_master-U6GGLXKIF4VESPPHZ475TWN76LB4NUH5VZJ6SPHWOEU6N7DL5ICA",
                "BRANCH_NAME=master",
                "EXECUTOR_NUMBER=1",
                "GIT_PREVIOUS_SUCCESSFUL_COMMIT=145052192787cd88a307e67777367e6f3c90cb81",
                "JENKINS_NODE_COOKIE=911ca1f2-c7cc-41ba-a1d1-78df2155e65b",
                "JOB_BASE_NAME=master",
                "NODE_LABELS=master",
                "CLASSPATH=",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NPM_CONFIG_LOGLEVEL=info",
                "NODE_VERSION=6.3.1"
            ],
            "Cmd": [
                "cat"
            ],
            "Image": "node:6.3",
            "Volumes": null,
            "WorkingDir": "/var/jenkins_home/workspace/pipeline_test_master-U6GGLXKIF4VESPPHZ475TWN76LB4NUH5VZJ6SPHWOEU6N7DL5ICA",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "16d1c596372cdd66415d9e738f493207f7fc8ee4444e936b08b40d273b05de1b",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/16d1c596372c",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "baec7581c0a8f19708e82d87ff98016b89309ef9b2c7717e92c28742f218fa4c",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.4",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:04",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "669f5d230c893729c633095f59ad01885c689028f4379aba3621f239f734e46b",
                    "EndpointID": "baec7581c0a8f19708e82d87ff98016b89309ef9b2c7717e92c28742f218fa4c",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.4",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:04",
                    "DriverOpts": null
                }
            }
        }
    }
]


[
    {
        "Id": "5049a01b4358233471daa74fb11996a6b8e3acfd9c00b33ea7a52a3c24264eaa",
        "Created": "2018-03-12T09:37:38.9422449Z",
        "Path": "/sbin/tini",
        "Args": [
            "--",
            "/usr/local/bin/jenkins.sh"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 22088,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-03-13T09:33:50.029083326Z",
            "FinishedAt": "2018-03-13T09:27:43.347300762Z"
        },
        "Image": "sha256:6844ee63019e341fa7c06a90ce1455200bad2f919738d12e44eaff03198c91d0",
        "ResolvConfPath": "/var/lib/docker/containers/5049a01b4358233471daa74fb11996a6b8e3acfd9c00b33ea7a52a3c24264eaa/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/5049a01b4358233471daa74fb11996a6b8e3acfd9c00b33ea7a52a3c24264eaa/hostname",
        "HostsPath": "/var/lib/docker/containers/5049a01b4358233471daa74fb11996a6b8e3acfd9c00b33ea7a52a3c24264eaa/hosts",
        "LogPath": "/var/lib/docker/containers/5049a01b4358233471daa74fb11996a6b8e3acfd9c00b33ea7a52a3c24264eaa/5049a01b4358233471daa74fb11996a6b8e3acfd9c00b33ea7a52a3c24264eaa-json.log",
        "Name": "/wonderful_carson",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/home/docker/jenkins/jenkins_home:/var/jenkins_home",
                "/var/run/docker.sock:/var/run/docker.sock"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/b3474fead85ba8317d2f19aecb9d13128c3660d9fa4b4a0d785480477a8e627f-init/diff:/var/lib/docker/overlay2/c1db031b078fccca2c4ecb9c08f02a12a166a19fbbb07d709fc7f909e543224b/diff:/var/lib/docker/overlay2/e87a5e9585cf46649068fd2804e9b0077586798e8817b635e9cdb27d604c9de3/diff:/var/lib/docker/overlay2/3aaf41fa890140b773a497f75e1e230249c9a50ef9e637807046bd2645d47383/diff:/var/lib/docker/overlay2/b3042667faad116fa7c1fda0ade770be4b7f3d980ec0c1fdaa3b7141590bce1a/diff:/var/lib/docker/overlay2/061f3bf09589109b981a0b1e4d1e033eda2e69ef0b93ee5d7b7219288392c75e/diff:/var/lib/docker/overlay2/ff2306ca7c4b29c85b102e4274968da89c04335ecbb436c348a2129aadaf5554/diff:/var/lib/docker/overlay2/f82ff9ece6eac85cacb3b39129ea89afe9f59b4729c85a06af7277f357a1800e/diff:/var/lib/docker/overlay2/486e2412d67fc87781f0bd6890402915bf1270ab6b9553c603427e671a2bb01d/diff:/var/lib/docker/overlay2/5a80be543bbabb904d8bc75cdee2788f58988b86bbe6e0b7cafa4f23a1afd08f/diff:/var/lib/docker/overlay2/a80d6b1c1895a11ac66cdb30aabf17cfe912f05b87260d435a53b2199b90bae5/diff:/var/lib/docker/overlay2/ee85443de96d6090613ca21303bb168e3d11f717424fbb2c198e8d9ad315ca7a/diff:/var/lib/docker/overlay2/b4bb1975a154aa01a6d293e6346bece8fca12ecf2390153a1c9b236aec5df008/diff:/var/lib/docker/overlay2/b57c6c33340dae437b79a51f24524821796e8dee73e1cb5499834e8cc08f3e81/diff:/var/lib/docker/overlay2/0e0e4140d22655500ea9580a3f5a3bf69b4a6e3f1880bf0896406aeea17cdb8a/diff:/var/lib/docker/overlay2/d49d5d848055333df33351aeeb4c7a9ed967515ef433ee875d5dbfc6edb14c17/diff:/var/lib/docker/overlay2/a87e0ee4bf32e82943b4e38375131867e0fa6fb5a524ad2a4835223588785a9d/diff:/var/lib/docker/overlay2/a6f8827918230ce42c9988c190c229030a62426de6ebc6de1e905573ef60ae9e/diff:/var/lib/docker/overlay2/5c6b6e85d0f568307e7514e51b736c50a5dbf12f3d8ba971067f4acfa02609bb/diff:/var/lib/docker/overlay2/a79d301bc255744c54ccdaa9c440494dfadec50106b0e3d6d0f7461c7a490742/diff:/var/lib/docker/overlay2/f6f53d9320fee3231a646cbc71bdffc571162368ee123ff3270ba39b2d70691a/diff:/var/lib/docker/overlay2/5930cbcb8f8133c83755f1e2c509a8cd51e7b5ba9a76dc0c581973129d3aa35d/diff",
                "MergedDir": "/var/lib/docker/overlay2/b3474fead85ba8317d2f19aecb9d13128c3660d9fa4b4a0d785480477a8e627f/merged",
                "UpperDir": "/var/lib/docker/overlay2/b3474fead85ba8317d2f19aecb9d13128c3660d9fa4b4a0d785480477a8e627f/diff",
                "WorkDir": "/var/lib/docker/overlay2/b3474fead85ba8317d2f19aecb9d13128c3660d9fa4b4a0d785480477a8e627f/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/docker/jenkins/jenkins_home",
                "Destination": "/var/jenkins_home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/run/docker.sock",
                "Destination": "/var/run/docker.sock",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "5049a01b4358",
            "Domainname": "",
            "User": "jenkins",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "50000/tcp": {},
                "8080/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "[email protected]",
                "LETSENCRYPT_HOST=jenkins.miwashop.com",
                "VIRTUAL_HOST=jenkins.miwashop.com",
                "VIRTUAL_PORT=8080",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "JAVA_HOME=/docker-java-home",
                "JAVA_VERSION=8u151",
                "JAVA_DEBIAN_VERSION=8u151-b12-1~deb9u1",
                "CA_CERTIFICATES_JAVA_VERSION=20170531+nmu1",
                "JENKINS_HOME=/var/jenkins_home",
                "JENKINS_SLAVE_AGENT_PORT=50000",
                "JENKINS_VERSION=2.111",
                "JENKINS_UC=https://updates.jenkins.io",
                "JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental",
                "COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log"
            ],
            "Cmd": null,
            "ArgsEscaped": true,
            "Image": "jenkins/jenkins:latest",
            "Volumes": {
                "/var/jenkins_home": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "/sbin/tini",
                "--",
                "/usr/local/bin/jenkins.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "1dcd94febb0a76606f80777174e45b3fd7bfc4d90676b9b2a3bb2c3226aa2904",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "50000/tcp": null,
                "8080/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/1dcd94febb0a",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "1bd793b1aad29922934758049725101de03b9284bb48774d3fd6012d7cbbbb2b",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "669f5d230c893729c633095f59ad01885c689028f4379aba3621f239f734e46b",
                    "EndpointID": "1bd793b1aad29922934758049725101de03b9284bb48774d3fd6012d7cbbbb2b",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

@ miwa911 ๊ธฐ๋ฐ˜;

containerd version: N/A (expected: 9b55aab90508bd389d7654c4baf173a981477d55)

containerd๊ฐ€ ์ข…๋ฃŒ / ๋‹ค์‹œ ์‹œ์ž‘๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธฐ๊ณ„์—๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Total Memory: 992.3MiB

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

@thaJeztah ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค thaJeztah,
๋‚˜๋Š” ์ดˆ๋ณด์ž๋ผ์„œ ์–ด๋””์„œ ํ™•์ธํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋‚ด ์Šคํƒ ์ถ”์ ์„ ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค (curl --unix-socket /var/run/docker.sock http : // localhost / debug / pprof / goroutine? debug = 2).

goroutine_debug.log

๊ด€๋ จ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค

์ง€๋‚œ์ฃผ์— ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ตœ์‹  17.12.1-ce๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  7390fc6์„ ๋นŒ๋“œํ–ˆ๋Š”๋ฐ์ด ์˜ค๋ฅ˜๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

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

์„œ๋น„์Šค์—์„œ ๋„์ปค ์„œ๋น„์Šค ps๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. https://www.screencast.com/t/LXAfmddRDp
์ด์ „ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ ์ข…๋ฃŒ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

๋…ธ๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ •์ƒ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
https://www.screencast.com/t/ABKVYxNUQ

๊ทธ๋ฆฌ๊ณ  "docker service ls"์—์„œ ์˜ˆ์ƒ๋ณด๋‹ค ๋งŽ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
https://www.screencast.com/t/0Po8Sqs0Jr

๋…ธ๋“œ์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ docker kill ๋ฐ docker inspect๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
dmesg์— ํŠน์ • ๋ฉ”์‹œ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ง€๊ธˆ๋ถ€ํ„ฐ ๋งํ•  ์ˆ˜์žˆ๋Š” ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์—…์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šคํƒ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํŽธ์ง‘ํ•˜๋‹ค:

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

ํ”„๋กœ์„ธ์Šค ์ค‘์— ๋…ธ๋“œ์—์„œ ์ด์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

ar 13 10:04:10 server-name dockerd : time = "2018-03-13T10 : 04 : 10.406196465-04 : 00"level = error msg = "์ปจํ…Œ์ด๋„ˆ๋ฅผ๋กœ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. f5d6bb74d6b37871b72b5f27d46f8705a6b66cba7afb50706bbf68b764facb24 : / var / lib / docker / containers ์—ด๊ธฐ /f5d6bb74d6b37871b72b5f27d46f8705a6b66cba7afb50706bbf68b764facb24/config.v2.json : ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. "
3 ์›” 13 ์ผ 10:04:10 server-name dockerd : time = "2018-03-13T10 : 04 : 10.408039262-04 : 00"level = error msg = "์ปจํ…Œ์ด๋„ˆ๋ฅผ๋กœ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค fd5ac869991b263a28c36bddf9b2847a8a26e2b7d59fa033f85e9616b0b7cb7a : / var / lib / docker / containers ์—ด๊ธฐ /fd5ac869991b263a28c36bddf9b2847a8a26e2b7d59fa033f85e9616b0b7cb7a/config.v2.json : ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. "

EDIT2 :
๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค : https://github.com/moby/moby/issues/36553

/ cc @stevvooe @dmcgowan ์ปจํ…Œ์ด๋„ˆ ์ธก์—์„œ ์ฐพ์•„์•ผ ํ•  ์‚ฌํ•ญ์„ ์•Œ๊ณ ์žˆ๋Š” ๊ฒฝ์šฐ

@mauriceteunissen 17.12.1-ce์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Tini๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค : All Tini does is spawn a single child (Tini is meant to be run in a container), and wait for it to exit all the while reaping zombies and performing signal forwarding.

https://github.com/krallin/tini ์ด ๋ฌธ์ œ์™€ https://github.com/moby/moby/issues/34213 ์ด ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค!

@loretoparisi ์˜์‹ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์€ ํ•ญ์ƒ docker run --init ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค ... --init ๋Š” tini๋ฅผ โ€‹โ€‹์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@ cpuguy83 Java์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ฌธ์ œ์™€ ๊ฒฐ๊ณผ (https://github.com/moby/moby/issues/34213 ์ฐธ์กฐ)์—์„œ ์ฃผ์š” ๋ฌธ์ œ๋Š” JVM์˜ ์ข€๋น„ ํ”„๋กœ์„ธ์Šค (์˜ˆ : ํฌ์ฐฉ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ๊ฐ€ ํŠธ๋žฉ๋˜์ง€ ์•Š์€ Java ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ) ๋ฐ / ๋˜๋Š” ์ž ๊ธด I / O ๋ฆฌ์†Œ์Šค (๋Œ€๋ถ€๋ถ„ ์†Œ์ผ“ / ํŒŒ์ผ์ด ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ๋™์ผํ•œ Java ํ”„๋กœ์„ธ์Šค) ๋˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ์ด์ง€๋งŒ child_process ๋ฅผ ํ†ตํ•ด ์‹œ์ž‘๋œ ์ผ๋ถ€ C ++ ์‹คํ–‰ ํŒŒ์ผ ํฌํฌ. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๋‹จ์ง€ ๊ฐ€์„ค ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ํ™•์‹  ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณต์ œ ํ•  ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ...

17.12.1-ce์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ๋Š” docker ps ๋ฐ docker inspect ๊ฐ€ ์ค‘๋‹จ๋˜๋Š” ์ƒํƒœ๊ฐ€๋ฉ๋‹ˆ๋‹ค.
๋–ผ๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์žฌ๋ฐฐํฌํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข€๋น„ ์ƒํƒœ๊ฐ€๋ฉ๋‹ˆ๋‹ค (์›ํ•˜๋Š” ์ƒํƒœ : ์ข…๋ฃŒ, ํ˜„์žฌ ์ƒํƒœ : ์‹คํ–‰ ์ค‘).

docker kill ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ฃฝ์ด๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ps aux | grep [container_id] ์™€ kill [process_id]

์ œ๊ณต ํ•  ์ˆ˜์žˆ๋Š” ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@mhaamann docker ๋ช…๋ น์ด ๋ฉˆ์ถ˜ ๊ฒฝ์šฐ

/debug/pprof/goroutines?debug=2 ์—”๋“œ ํฌ์ธํŠธ๋ฅผ ์น˜๋ฉด๋ฉ๋‹ˆ๋‹ค.
์˜ˆ:

curl --unix-socket /var/run/docker.sock http://./debug/pprof/goroutines?debug=2

๋ฌผ๋ก  ์ด์ฃ  @ cpuguy83.
๋‚ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํ„ฐ๋ฏธ๋„์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.
์ฒ˜์Œ์—๋Š” docker inspect [container_id] . ๊ณ ์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ์ดˆ ๋™์•ˆ ๊ธฐ๋‹ค๋ ธ์Šต๋‹ˆ๋‹ค. ( ๋ณดํ†ต ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๋Š” 1 ์ดˆ ์ด๋‚ด์— ๋Œ์•„์˜ต๋‹ˆ๋‹ค. )
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‘ ๋ฒˆ์งธ ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

curl --unix-socket /var/run/docker.sock http://./debug/pprof/goroutines?debug=2

Trace๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : https://gist.github.com/mhaamann/f63ad6a0b8f70a8c47e030fae1cdd1f6

@mhaamann ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์Šคํƒ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

docker run -it --rm -v /run/docker/containerd:/run/docker/containerd docker:17.12.1 docker-containerd-ctr pprof --debug-socket /run/docker/containerd/docker-containerd-debug.sock goroutines

๋˜๋Š” ํ˜ธ์ŠคํŠธ์—์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker-containerd-ctr pprof --debug-socket /run/docker/containerd/docker-containerd-debug.sock goroutines

(btw) ๊ด€๋ จ ๊ณ  ๋ฃจํ‹ด์€ containerd์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค : https://gist.github.com/mhaamann/f63ad6a0b8f70a8c47e030fae1cdd1f6#file -stack-trace-from-dockerd-L5213-L5241

๋‹ค์Œ์€ docker-containerd-ctr pprof --debug-socket /run/docker/containerd/docker-containerd-debug.sock goroutines ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ ๋œ ํ˜ธ์ŠคํŠธ์˜ ์Šคํƒ์ž…๋‹ˆ๋‹ค.

https://gist.github.com/mhaamann/215c3c6f77af89972b6eace4d09866fc

@mhaamann ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋” ๊นŠ์ด ํŒŒ๊ณ  ...

์ด๊ฒƒ์€ shim ํ”„๋กœ์„ธ์Šค์—์„œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ด ๋ฉˆ์ถ˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
์‹ฌ์—์„œ ์Šคํƒ ์ถ”์ ์„ ํŠธ๋ฆฌ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? kill -SIGUSR1 ${PID_OF_SHIM}
์ด๋ ‡๊ฒŒํ•˜๋ฉด ์Šคํƒ ์ถ”์ ์ด ์ƒ์„ฑ๋˜๊ณ  dockerd ๋กœ๊ทธ๊นŒ์ง€ ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค.
์ปจํ…Œ์ด๋„ˆ ํ”„๋กœ์„ธ์Šค์˜ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์ด๋ฏ€๋กœ pid๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ—‰ํ—‰

์šฐ๋ฆฌ๋Š” ps faux | grep docker ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ  shim์˜ ๋ถ€๋ชจ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๊ด€๋ จ ๋ถ€๋ถ„์„ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

root      2624  2.3  2.5 5621140 829884 ?      Ssl  Feb28 782:08 /usr/bin/dockerd
root      2634  0.3  0.1 1694516 47684 ?       Ssl  Feb28 105:32  \_ docker-containerd --config /var/run/docker/containerd/containerd.toml
...

๊ทธ๋Ÿฐ ๋‹ค์Œ kill -SIGUSR1 2634 . ๋กœ๊ทธ๋Š” ์—ฌ๊ธฐ์— ์ฒจ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

https://gist.github.com/mhaamann/e245e9a8dedf264ae0343af1322bdf66

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @mhaamann,ํ•˜์ง€๋งŒ ๋‚œ ์šฐ๋ฆฌ๊ฐ€์—์„œ ๋คํ”„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ docker-containerd-shim ๋ณด๋‹ค๋Š” docker-containerd

๋‚˜๋Š” ๋‹ค์‹œ ๊ทธ ๋ฌธ์ œ์— ๊ฐ‡ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” 17.12.1์—์„œ 18.03.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ. ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ docker ps ์ด ์ค‘๋‹จ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ).

Docker-containerd ์†Œ์ผ“์„ ๋คํ”„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์š”์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค : https://gist.github.com/jcberthon/143c3e6b7c9e5fc8f18c9204ca1bedf6

docker-containerd-shim ๋คํ”„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@jcberthon ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ์ด๊ฒƒ์€ ์ฒ˜์Œ ๋ณด๋ฉด ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
docker-containerd-shim ์—์„œ ์Šคํƒ ๋คํ”„๋ฅผ ์–ป์œผ๋ ค๋ฉด kill -s SIGUSR1 <docker-containerd-shim-pid> . ๊ทธ๋Ÿฌ๋ฉด dockerd์— ๋Œ€ํ•œ ๋กœ๊ทธ์— ์Šคํƒ ์ถ”์ ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @ cpuguy83 ์ €๋Š”

๋”ฐ๋ผ์„œ docker-containerd-shim์— ๋Œ€ํ•œ ์Šคํƒ ๋คํ”„๋ฅผ๋ณด๊ณ ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์ž ๊ธˆ์„ ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ 18.03.0์— ์žˆ์ง€๋งŒ ...

์–ด์จŒ๋“  ๋นจ๋ฆฌ ๋Œ์•„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :-)

21 ์ผ ๋™์•ˆ 17.12.1์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ์ด ๋ฌธ์ œ๋Š” ๊ทธ ์ดํ›„๋กœ ๋‘ ๋ฒˆ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค (์˜ค๋Š˜ ํฌํ•จ). ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ๋ฐ•์Šค์—์„œ ์‹คํ–‰ ์ค‘์ด๋ฏ€๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์—†์œผ๋ฉฐ ์ฆ‰์‹œ ์žฌ๋ถ€ํŒ…์ด ํ•ด๊ฒฐ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. @jcberthon์ด ์ง€์  ์‹œ์ž‘ํ•ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™„์ „ํ•œ ์žฌ๋ถ€ํŒ…์ด ์œ ์ผํ•œ "์ˆ˜์ •"์ž…๋‹ˆ๋‹ค.

์‹คํ–‰ํ•ด์•ผํ•˜๋Š” ๋ช…๋ น๊ณผ ๋คํ”„ํ•ด์•ผํ•˜๋Š” ๋กœ๊ทธ์˜ ์ •ํ™•ํ•œ ์ˆœ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‹ค์Œ์— ๋ฐœ์ƒํ•  ๋•Œ์ด๋ฅผ ์บก์ฒ˜ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์žฌ๋ถ€ํŒ…ํ•˜๊ณ  18.03.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ•˜๋Š” ์ด์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

docker-containerd-shim์˜ @ cpuguy83 kill -SIGUSR1 ๋Š” ์Šคํƒ ์ถ”์ ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด ๋ฐ˜์‘์ด ์—†์Šต๋‹ˆ๋‹ค.

dockerd์˜ ๋กœ๊ทธ์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

2018 ๋…„ 3 ์›” 24 ์ผ ํ† ์š”์ผ ์˜คํ›„ 2์‹œ 15 ๋ถ„, Matthias Haamann [email protected]
์ผ๋‹ค :

@ cpuguy83 https://github.com/cpuguy83 kill -SIGUSR1 on the shim does
์Šคํƒ ์ถ”์ ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด ๋ฐ˜์‘์ด ์—†์Šต๋‹ˆ๋‹ค.

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

-

  • ๋ธŒ๋ผ์ด์–ธ ๊ณ ํ”„

๋ˆ„๊ตฌ๋“ ์ง€ ์ง€๊ธˆ๊นŒ์ง€ ํ”„๋กœ๋•์…˜์—์„œ 17.12.1์„ ์ œ๋Œ€๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

์ง€๋‚œ (๊ฑฐ์˜) 5 ์ผ ๋™์•ˆ (์ฆ‰, Docker CE 18.03.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์„ ๋•Œ) ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

18.03.0์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋งํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์ด๋ฅด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ ์–ด๋„ ์ด๊ฒƒ์€ ๋œ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ 2 ~ 3 ์ผ๋งˆ๋‹ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์—. ๐Ÿคž

@jcberthon ์€ ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด ์ •๋ง ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. 18.03.0์—์„œ๋„ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @JnMik 17.12 ๋ฐ 18.02์— ์ž์ฃผ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๋•Œ๊นŒ์ง€ 17.09.1๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ 17.09.1์„ ๊ณ ์ˆ˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์›๋ž˜ ๋ฌธ์ œ๋ฅผ 18.02๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ… ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ง€๊ธˆ๊นŒ์ง€๋Š” ๊ทธ๋ ‡๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๋ฐ”๋กœ ๋„์ปค 17.12.1์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
8 ์‹œ๊ฐ„ ํ›„ ์„œ๋น„์Šค์˜ ๋กค๋ง ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ "์‹คํ–‰ ์ค‘"์— ๋ฉˆ์ถฐ์žˆ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  docker inspect ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@ cpuguy83์ด ์„ค๋ช…ํ•œ๋Œ€๋กœ ์–ป์€ containerd-shim์˜ ๋คํ”„์ž…๋‹ˆ๋‹ค.

https://gist.github.com/mion00/7ff75e04d6ac21de353cef3e8c64fcd1

ํŽธ์ง‘ : ๋˜ํ•œ ๋ถ™์–ด์žˆ๋Š” ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์—์„œ containerd-shim์˜ ์˜ฌ๋ฐ”๋ฅธ ์Šคํƒ ์ถ”์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

@ mion00 containerd-shim์ด ์•„๋‹Œ ์ปจํ…Œ์ด๋„ˆ ๋คํ”„์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค :(

@ cpuguy83 ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ƒ์„ฑ ๋œ ์ƒˆ ์Šคํƒ ์ถ”์ ์œผ๋กœ ์ด์ „ ์ฃผ์„์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์ผ์ฃผ์ผ ์ด์ƒ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 17.12.1์— ๋น„ํ•ด ์Šน๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ฐธ์กฐ : @jordijansen

์–ด์จŒ๋“ , docker-containerd-shim ๋Œ€ํ•œ ๋คํ”„๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ๋ฉˆ์ถฐ์žˆ๋Š” ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ์— ํ•ด๋‹นํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค (์ด ์ปจํ…Œ์ด๋„ˆ์—์„œ docker logs, docker exec ๋“ฑ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค). ๊ทธ๋ž˜์„œ sudo kill -s SIGUSER1 <pid> ํ–ˆ์ง€๋งŒ dockerd์˜ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋ ค๊ณ  ํ•  ๋•Œ ( sudo journalctl -u docker.service ) 12 ์‹œ๊ฐ„ ์ด์ „์˜ ๋งˆ์ง€๋ง‰ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ๋‚ ์งœ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” dockerd๊ฐ€ ๋ฉˆ์ถฐ์„œ ๋” ์ด์ƒ ์•„๋ฌด๊ฒƒ๋„ ๊ธฐ๋กํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ... ๊ทธ๋ž˜์„œ ๋คํ”„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค ... ์–ด๋”˜๊ฐ€์— ์•Œ ์ˆ˜์—†๋Š” ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ...

์š”์  (https://gist.github.com/jcberthon/143c3e6b7c9e5fc8f18c9204ca1bedf6)์„ ์ตœ์‹  ์ •๋ณด๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์— SIGUSR1 ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์•ผํ•˜๋Š” docker-containerd-shim์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฐ‡ํžŒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ด๋ฏ€๋กœ PID๋ฅผ ์ฐพ์€ ๋‹ค์Œ proc FS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†ํ•œ cgroup์„ ์ฐพ์Šต๋‹ˆ๋‹ค. cgroup ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ docker-containerd-shim PID๋ฅผ ์‹๋ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

@jcberthon ๋‚˜๋Š” ๋˜ํ•œ ์Šคํƒ ์ถ”์ ์„ ๋กœ๊น…ํ•˜์ง€ ์•Š๋Š” dockerd ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ถ”๊ฐ€ ํ•ด๊ฒฐ "debug": true ์—์„œ JSON์˜ ์„ค์ •์— /etc/docker/daemon.json ์™€ ์ผ์„ service docker reload ์ƒˆ๋กœ์šด ์„ค์ •์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด dockerd์—์„œ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ๊ฐ€ ํ™œ์„ฑํ™”๋˜๊ณ  kill -s SIGUSER1 ๋’ค์— ์Šคํƒ ์ถ”์ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฐ๋ชฌ์„ ๋‹ค์‹œ๋กœ๋“œํ•˜์—ฌ @ mion00 ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. sudo journalctl -u docker.service ํ•  ๋•Œ ์ผ๋ถ€ ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ USR1 ์‹ ํ˜ธ๋ฅผ docker-containerd-shim ํ”„๋กœ์„ธ์Šค์— ๋ณด๋‚ผ ๋•Œ ์ƒˆ ๋กœ๊ทธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋คํ”„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@ mion00 @jcberthon https://github.com/moby/moby/pull/36751 ์—์„œ ํŒจ์น˜๋ฅผ ์‹œ๋„ํ•˜๊ณ  ๋„์›€์ด๋˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

18.03.0์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์˜ํ–ฅ์„๋ฐ›์Šต๋‹ˆ๋‹ค.

Mac ์šฉ 18.03.0์—์„œ ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค ... ๋œ ์ž์ฃผ ...ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

$ docker run -it --rm -v /run/docker/containerd:/run/docker/containerd docker:18.03.0 docker-containerd-ctr pprof --debug-socket /run/docker/containerd/docker-containerd-debug.sock goroutines
goroutine 764393 [running]:
runtime/pprof.writeGoroutineStacks(0x145e720, 0xc420741ce0, 0x0, 0xc420419ad0)
    /usr/local/go/src/runtime/pprof/pprof.go:608 +0xa9
runtime/pprof.writeGoroutine(0x145e720, 0xc420741ce0, 0x2, 0x30, 0x1026340)
    /usr/local/go/src/runtime/pprof/pprof.go:597 +0x46
runtime/pprof.(*Profile).WriteTo(0x1448700, 0x145e720, 0xc420741ce0, 0x2, 0xc420741ce0, 0xc4201b8750)
    /usr/local/go/src/runtime/pprof/pprof.go:310 +0x3ad
net/http/pprof.handler.ServeHTTP(0xc42052f4b1, 0x9, 0x1469220, 0xc420741ce0, 0xc4207e0000)
    /usr/local/go/src/net/http/pprof/pprof.go:237 +0x1ba
net/http/pprof.Index(0x1469220, 0xc420741ce0, 0xc4207e0000)
    /usr/local/go/src/net/http/pprof/pprof.go:248 +0x1dd
net/http.HandlerFunc.ServeHTTP(0x10b0ee8, 0x1469220, 0xc420741ce0, 0xc4207e0000)
    /usr/local/go/src/net/http/server.go:1918 +0x46
net/http.(*ServeMux).ServeHTTP(0xc4201b8750, 0x1469220, 0xc420741ce0, 0xc4207e0000)
    /usr/local/go/src/net/http/server.go:2254 +0x132
net/http.serverHandler.ServeHTTP(0xc4201c0410, 0x1469220, 0xc420741ce0, 0xc4207e0000)
    /usr/local/go/src/net/http/server.go:2619 +0xb6
net/http.(*conn).serve(0xc4206f6280, 0x1469fe0, 0xc4206e26c0)
    /usr/local/go/src/net/http/server.go:1801 +0x71f
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2720 +0x28a

goroutine 1 [chan receive, 5006 minutes]:
main.main.func1(0xc4200aedc0, 0xc4200aedc0, 0xc4201adb4f)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:132 +0x871
github.com/containerd/containerd/vendor/github.com/urfave/cli.HandleAction(0xf9bc00, 0x10b0b60, 0xc4200aedc0, 0xc420058ba0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:502 +0xd4
github.com/containerd/containerd/vendor/github.com/urfave/cli.(*App).Run(0xc420182a80, 0xc420010090, 0x3, 0x3, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:268 +0x655
main.main()
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:135 +0x53d

goroutine 13 [select, 12 minutes]:
main.handleSignals.func1(0xc420058c60, 0xc420058c00, 0x146a0a0, 0xc4201739b0, 0xc420070420)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main_unix.go:30 +0xf7
created by main.handleSignals
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main_unix.go:27 +0x8b

goroutine 12 [syscall, 12 minutes]:
os/signal.signal_recv(0x14640a0)
    /usr/local/go/src/runtime/sigqueue.go:131 +0xa8
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:22 +0x24
created by os/signal.init.0
    /usr/local/go/src/os/signal/signal_unix.go:28 +0x43

goroutine 14 [select, 5006 minutes, locked to thread]:
runtime.gopark(0x10b1368, 0x0, 0xba26f3, 0x6, 0x18, 0x1)
    /usr/local/go/src/runtime/proc.go:287 +0x132
runtime.selectgo(0xc420200f50, 0xc4200704e0)
    /usr/local/go/src/runtime/select.go:395 +0x114f
runtime.ensureSigM.func1()
    /usr/local/go/src/runtime/signal_unix.go:511 +0x226
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1

goroutine 34 [select, 1 minutes]:
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Broadcaster).run(0xc4201a23c0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/broadcast.go:117 +0x414
created by github.com/containerd/containerd/vendor/github.com/docker/go-events.NewBroadcaster
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/broadcast.go:39 +0x1b1

goroutine 35 [select, 1 minutes]:
github.com/containerd/containerd/gc/scheduler.(*gcScheduler).run(0xc4201ec3c0, 0x146a0a0, 0xc42024eb10)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/gc/scheduler/scheduler.go:243 +0x21d
created by github.com/containerd/containerd/gc/scheduler.init.0.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/gc/scheduler/scheduler.go:107 +0x4bf

goroutine 36 [syscall, 1 minutes]:
syscall.Syscall6(0xe8, 0x5, 0xc4206439b8, 0x80, 0xffffffffffffffff, 0x0, 0x0, 0x1, 0x80, 0x0)
    /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
github.com/containerd/containerd/vendor/golang.org/x/sys/unix.EpollWait(0x5, 0xc4206439b8, 0x80, 0x80, 0xffffffffffffffff, 0x1, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go:1518 +0x79
github.com/containerd/containerd/metrics/cgroups.(*oomCollector).start(0xc42020d3c0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/metrics/cgroups/oom.go:98 +0x7d
created by github.com/containerd/containerd/metrics/cgroups.newOOMCollector
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/metrics/cgroups/oom.go:34 +0x125

goroutine 50 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56f70, 0x72, 0xffffffffffffffff)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee118, 0x72, 0xc420203b00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee118, 0xffffffffffffff00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Accept(0xc4202ee100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:335 +0x1e4
net.(*netFD).accept(0xc4202ee100, 0xc4206f6300, 0xfb2160, 0xc420203d78)
    /usr/local/go/src/net/fd_unix.go:238 +0x44
net.(*UnixListener).accept(0xc4202c7920, 0x7f8e9a, 0x45ad10, 0xc420203dc0)
    /usr/local/go/src/net/unixsock_posix.go:162 +0x34
net.(*UnixListener).Accept(0xc4202c7920, 0x10b0d00, 0xc4206f6280, 0x146a0a0, 0xc4201b8840)
    /usr/local/go/src/net/unixsock.go:241 +0x4b
net/http.(*Server).Serve(0xc4201c0410, 0x1468fe0, 0xc4202c7920, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:2695 +0x1b4
net/http.Serve(0x1468fe0, 0xc4202c7920, 0x145e360, 0xc4201b8750, 0x10b0f00, 0xc420268720)
    /usr/local/go/src/net/http/server.go:2323 +0x75
github.com/containerd/containerd/server.(*Server).ServeDebug(0xc4201aef40, 0x1468fe0, 0xc4202c7920, 0xc420268738, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:159 +0x1c8
github.com/containerd/containerd/server.(*Server).ServeDebug-fm(0x1468fe0, 0xc4202c7920, 0xc4202c7920, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:115 +0x40
main.serve.func1(0x1468fe0, 0xc4202c7920, 0xc4202bb620, 0x146a0a0, 0xc4202c79e0, 0xc4202c0380, 0x37)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:146 +0x77
created by main.serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:144 +0x1c8

goroutine 51 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56eb0, 0x72, 0xffffffffffffffff)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee298, 0x72, 0xc420033b00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee298, 0xffffffffffffff00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Accept(0xc4202ee280, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:335 +0x1e4
net.(*netFD).accept(0xc4202ee280, 0xc4202b8008, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:238 +0x44
net.(*UnixListener).accept(0xc4202c7a70, 0x89339b, 0x45ad10, 0xc420033da0)
    /usr/local/go/src/net/unixsock_posix.go:162 +0x34
net.(*UnixListener).Accept(0xc4202c7a70, 0x10b07e8, 0xc4201f8140, 0x146d6c0, 0xc4202b8008)
    /usr/local/go/src/net/unixsock.go:241 +0x4b
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve(0xc4201f8140, 0x1468fe0, 0xc4202c7a70, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:463 +0x198
github.com/containerd/containerd/server.(*Server).ServeGRPC(0xc4201aef40, 0x1468fe0, 0xc4202c7a70, 0xc420268f38, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:138 +0x55
github.com/containerd/containerd/server.(*Server).ServeGRPC-fm(0x1468fe0, 0xc4202c7a70, 0xc4202c7a70, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:129 +0x40
main.serve.func1(0x1468fe0, 0xc4202c7a70, 0xc4202bb730, 0x146a0a0, 0xc4202c7b30, 0xc4202c0480, 0x31)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:146 +0x77
created by main.serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:144 +0x1c8

goroutine 52 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56df0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee618, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee618, 0xc4203f2000, 0x8000, 0x8000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4202ee600, 0xc4203f2000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4202ee600, 0xc4203f2000, 0x8000, 0x8000, 0x11, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc4202b8028, 0xc4203f2000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc4202da660, 0xc4203021f8, 0x9, 0x9, 0x9, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc4202da660, 0xc4203021f8, 0x9, 0x9, 0x9, 0x4acb760201fcbb8, 0x5ac36c5e, 0xc4201fcbc0)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc4202da660, 0xc4203021f8, 0x9, 0x9, 0x111349c75d3a6, 0x14a7a60, 0xbea8f8f784a7d948)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/golang.org/x/net/http2.readFrameHeader(0xc4203021f8, 0x9, 0x9, 0x145c760, 0xc4202da660, 0x0, 0x7070e0900000000, 0xc4202e6798, 0xc4201fcce8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:237 +0x7d
github.com/containerd/containerd/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc4203021c0, 0xc4201c8ce0, 0xc4201c8ce0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:492 +0xa6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc420404000, 0xc4203ef9e0, 0x10b0820)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:393 +0x317
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams(0xc4201f8140, 0x146d1e0, 0xc420404000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:568 +0x142
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveHTTP2Transport(0xc4201f8140, 0x146d6c0, 0xc4202b8028, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:561 +0x473
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleRawConn(0xc4201f8140, 0x146d6c0, 0xc4202b8028)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:526 +0x499
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:495 +0x5bb

goroutine 53 [select, 1 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.loopyWriter(0x7f97623111a8, 0xc4203ed840, 0xc4203ef980, 0xc42041cfb8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/transport.go:750 +0x2e6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server.func1(0xc420404000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:227 +0x60
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:226 +0x8fb

goroutine 54 [select, 88 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).keepalive(0xc420404000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:935 +0x266
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:230 +0x920

goroutine 56 [select, 5006 minutes]:
github.com/containerd/containerd/services/events.(*service).Subscribe(0xc4201b0088, 0xc4203e93c0, 0x146d000, 0xc4203f0550, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/events/service.go:61 +0x213
github.com/containerd/containerd/api/services/events/v1._Events_Subscribe_Handler(0xff7e20, 0xc4201b0088, 0x146c580, 0xc4203e93a0, 0xc4202e6d20, 0xc4202a2000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/events/v1/events.pb.go:288 +0x110
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.StreamServerInterceptor(0xff7e20, 0xc4201b0088, 0x146c640, 0xc4202ee800, 0xc4203e9380, 0x10af408, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:40 +0x13b
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processStreamingRPC(0xc4201f8140, 0x146d1e0, 0xc4200aef20, 0xc4202f0400, 0xc4202c7470, 0x1447fc0, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:940 +0x2ea
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc4200aef20, 0xc4202f0400, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1027 +0x14c3
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4200157f0, 0xc4201f8140, 0x146d1e0, 0xc4200aef20, 0xc4202f0400)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 15 [IO wait, 74 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56d30, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc420012498, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc420012498, 0xc420428000, 0x8000, 0x8000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc420012480, 0xc420428000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc420012480, 0xc420428000, 0x8000, 0x8000, 0x11, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc42000e138, 0xc420428000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc420058cc0, 0xc4200ac3b8, 0x9, 0x9, 0x9, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc420058cc0, 0xc4200ac3b8, 0x9, 0x9, 0x9, 0xc420038bb8, 0x400f10, 0xc420038c67)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc420058cc0, 0xc4200ac3b8, 0x9, 0x9, 0x83ce2d, 0xc42048414c, 0xc42043a000)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/golang.org/x/net/http2.readFrameHeader(0xc4200ac3b8, 0x9, 0x9, 0x145c760, 0xc420058cc0, 0x0, 0x0, 0xc420484140, 0xc420038ce8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:237 +0x7d
github.com/containerd/containerd/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc4200ac380, 0xc420484140, 0xc420484140, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:492 +0xa6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc4200aef20, 0xc420173bc0, 0x10b0820)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:393 +0x317
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams(0xc4201f8140, 0x146d1e0, 0xc4200aef20)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:568 +0x142
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveHTTP2Transport(0xc4201f8140, 0x146d6c0, 0xc42000e138, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:561 +0x473
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleRawConn(0xc4201f8140, 0x146d6c0, 0xc42000e138)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:526 +0x499
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:495 +0x5bb

goroutine 16 [select, 74 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.loopyWriter(0x7f97623111a8, 0xc420054cc0, 0xc420173b60, 0xc42041dfb8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/transport.go:750 +0x2e6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server.func1(0xc4200aef20)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:227 +0x60
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:226 +0x8fb

goroutine 66 [select, 74 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).keepalive(0xc4200aef20)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:935 +0x266
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:230 +0x920

goroutine 57 [semacquire, 5006 minutes]:
sync.runtime_notifyListWait(0xc4203edbd0, 0xc400000000)
    /usr/local/go/src/runtime/sema.go:507 +0x114
sync.(*Cond).Wait(0xc4203edbc0)
    /usr/local/go/src/sync/cond.go:56 +0x82
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).next(0xc4204382d0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:103 +0x87
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).run(0xc4204382d0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:68 +0x34
created by github.com/containerd/containerd/vendor/github.com/docker/go-events.NewQueue
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:29 +0x14d

goroutine 58 [select, 5006 minutes]:
github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe.func3(0xc420438330, 0xc4203e93e0, 0xc42040a120, 0x1469fe0, 0xc4203edb80, 0xc4202da7e0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:155 +0x15f
created by github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:149 +0x291

goroutine 67 [select, 1 minutes]:
github.com/containerd/containerd/services/events.(*service).Subscribe(0xc4201b0088, 0xc4203e9700, 0x146d000, 0xc4203f06f0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/events/service.go:61 +0x213
github.com/containerd/containerd/api/services/events/v1._Events_Subscribe_Handler(0xff7e20, 0xc4201b0088, 0x146c580, 0xc4203e96e0, 0xc4202e7090, 0xc420029400)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/events/v1/events.pb.go:288 +0x110
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.StreamServerInterceptor(0xff7e20, 0xc4201b0088, 0x146c640, 0xc4202eeb80, 0xc4203e96c0, 0x10af408, 0x0, 0xc420268ec8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:40 +0x13b
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processStreamingRPC(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42019a200, 0xc4202c7470, 0x1447fc0, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:940 +0x2ea
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42019a200, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1027 +0x14c3
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4202c8860, 0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42019a200)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 60 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56c70, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee918, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee918, 0xc420458000, 0x8000, 0x8000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4202ee900, 0xc420458000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4202ee900, 0xc420458000, 0x8000, 0x8000, 0x11, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc4202b8040, 0xc420458000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc4202daae0, 0xc4203023b8, 0x9, 0x9, 0x9, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc4202daae0, 0xc4203023b8, 0x9, 0x9, 0x9, 0x7add264201febb8, 0x5ac36c5e, 0xc4201febc0)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc4202daae0, 0xc4203023b8, 0x9, 0x9, 0x111349f76e9fa, 0x14a7a60, 0xbea8f8f787ab9e54)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/golang.org/x/net/http2.readFrameHeader(0xc4203023b8, 0x9, 0x9, 0x145c760, 0xc4202daae0, 0x0, 0x7070e0900000000, 0xc4202e6fb8, 0xc4201fece8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:237 +0x7d
github.com/containerd/containerd/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc420302380, 0xc4202bf260, 0xc4202bf260, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:492 +0xa6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc420404840, 0xc420438900, 0x10b0820)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:393 +0x317
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams(0xc4201f8140, 0x146d1e0, 0xc420404840)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:568 +0x142
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveHTTP2Transport(0xc4201f8140, 0x146d6c0, 0xc4202b8040, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:561 +0x473
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleRawConn(0xc4201f8140, 0x146d6c0, 0xc4202b8040)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:526 +0x499
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:495 +0x5bb

goroutine 61 [select, 1 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.loopyWriter(0x7f97623111a8, 0xc4203eddc0, 0xc4204388a0, 0xc42046cfb8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/transport.go:750 +0x2e6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server.func1(0xc420404840)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:227 +0x60
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:226 +0x8fb

goroutine 62 [select, 74 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).keepalive(0xc420404840)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:935 +0x266
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:230 +0x920

goroutine 63 [semacquire, 1 minutes]:
sync.runtime_notifyListWait(0xc4203edf50, 0xc400009f35)
    /usr/local/go/src/runtime/sema.go:507 +0x114
sync.(*Cond).Wait(0xc4203edf40)
    /usr/local/go/src/sync/cond.go:56 +0x82
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).next(0xc4204389c0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:103 +0x87
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).run(0xc4204389c0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:68 +0x34
created by github.com/containerd/containerd/vendor/github.com/docker/go-events.NewQueue
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:29 +0x14d

goroutine 64 [select, 1 minutes]:
github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe.func3(0xc420438a20, 0xc4203e9720, 0xc42040a3c0, 0x1469fe0, 0xc4203edf00, 0xc4202daf00)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:155 +0x15f
created by github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:149 +0x291

goroutine 592290 [select, 42 minutes]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run(0xc4201a6360)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:171 +0x342
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.NewClient
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:46 +0x2ab

goroutine 764394 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56970, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee698, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee698, 0xc4205a7600, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4202ee680, 0xc4205a7661, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4202ee680, 0xc4205a7661, 0x1, 0x1, 0x0, 0xc420545a00, 0x42b91b)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc42000e398, 0xc4205a7661, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
net/http.(*connReader).backgroundRead(0xc4205a7650)
    /usr/local/go/src/net/http/server.go:660 +0x64
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:656 +0xda

goroutine 671746 [select, 42 minutes]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).dispatch(0xc4201a6360, 0x146a0a0, 0xc4204eee70, 0xc420345a80, 0xc4201daa60, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:102 +0x282
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).Call(0xc4201a6360, 0x146a0a0, 0xc4204eee70, 0xbbc2cb, 0x25, 0xba0ec1, 0x5, 0x1046a60, 0xc4201a1ee0, 0x1046b40, ...)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:73 +0x15d
github.com/containerd/containerd/linux/shim/v1.(*shimClient).State(0xc42000e068, 0x146a0a0, 0xc4204eee70, 0xc4201a1ee0, 0x0, 0xc42016b298, 0xc42059f578)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/v1/shim.pb.go:1729 +0xbf
github.com/containerd/containerd/linux.(*Process).State(0xc4201daa40, 0x146a0a0, 0xc4204eee70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/process.go:45 +0xc7
github.com/containerd/containerd/services/tasks.processFromContainerd(0x7f9762311168, 0xc4204eee70, 0x146d0c0, 0xc4201daa40, 0x40, 0x146d0c0, 0xc4201daa40)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/tasks/service.go:225 +0xbe
github.com/containerd/containerd/services/tasks.(*service).Get(0xc4202c6e70, 0x7f9762311168, 0xc4204eee70, 0xc4201da800, 0xc4202c6e70, 0xbbd46b, 0x3)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/tasks/service.go:268 +0xef
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Get_Handler.func1(0x7f9762311168, 0xc4204eee70, 0x10444c0, 0xc4201da800, 0xc420079ae0, 0x14cdcb0, 0xf87860, 0xc4201a1e30)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:680 +0x88
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.UnaryServerInterceptor(0x7f9762311168, 0xc4204eee70, 0x10444c0, 0xc4201da800, 0xc4201da820, 0xc4201da840, 0x50, 0x48, 0xc4201da7e0, 0xc42059f968)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:29 +0xd4
github.com/containerd/containerd/server.interceptor(0x7f9762311168, 0xc4204eedb0, 0x10444c0, 0xc4201da800, 0xc4201da820, 0xc4201da840, 0x4354a6, 0xc42059f9e0, 0x41228a, 0x50)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:267 +0x1d2
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Get_Handler(0x1097ee0, 0xc4202c6e70, 0x7f9762311168, 0xc42044fbc0, 0xc420079900, 0x10af920, 0x0, 0x0, 0xc42001d900, 0x46)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:682 +0x16f
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42021d700, 0xc4202c77d0, 0x1452dc0, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:826 +0xab6
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42021d700, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1023 +0x152a
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4202c8860, 0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42021d700)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 764368 [syscall, 1 minutes]:
syscall.Syscall6(0xf7, 0x1, 0x36fe, 0xc42049d5b8, 0x1000004, 0x0, 0x0, 0x146d1e0, 0xc420404840, 0xc4204f9c00)
    /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
os.(*Process).blockUntilWaitable(0xc4207ebe90, 0x0, 0xc42049d6b0, 0x5268aa)
    /usr/local/go/src/os/wait_waitid.go:31 +0xa7
os.(*Process).wait(0xc4207ebe90, 0xc42049d770, 0x8943d5, 0x146a0a0)
    /usr/local/go/src/os/exec_unix.go:22 +0x44
os.(*Process).Wait(0xc4207ebe90, 0xc420523400, 0x42b91b, 0xc400000008)
    /usr/local/go/src/os/exec.go:115 +0x2d
os/exec.(*Cmd).Wait(0xc4203138c0, 0x45e611, 0xc4202c8860)
    /usr/local/go/src/os/exec/exec.go:446 +0x64
github.com/containerd/containerd/linux/shim/client.WithStart.func1.2(0xc4203138c0, 0xc420568320)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:59 +0x2d
created by github.com/containerd/containerd/linux/shim/client.WithStart.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:58 +0x2d5

goroutine 592291 [IO wait, 42 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56af0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4201b4398, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4201b4398, 0xc4202ea000, 0x1000, 0x1000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4201b4380, 0xc4202ea000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4201b4380, 0xc4202ea000, 0x1000, 0x1000, 0xc420201e78, 0x43ebf4, 0xc42040a720)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc42000e060, 0xc4202ea000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc4201a6300, 0xc4202fa060, 0xa, 0xa, 0xc420201fac, 0x0, 0xc420201fa8)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc4201a6300, 0xc4202fa060, 0xa, 0xa, 0xa, 0xc42021e300, 0x0, 0xc420201f48)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc4201a6300, 0xc4202fa060, 0xa, 0xa, 0x2, 0x2, 0x0)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.readMessageHeader(0xc4202fa060, 0xa, 0xa, 0x145c760, 0xc4201a6300, 0xc420201f48, 0x2, 0x2, 0xc420201fa8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:38 +0x62
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*channel).recv(0xc4202fa040, 0x146a020, 0xc420014048, 0x0, 0x2, 0xc4201b6070, 0x6, 0x6, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:86 +0x6f
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run.func1(0xc42040a780, 0xc4201a6360, 0xc42003ba20, 0xc42040a720)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:144 +0x9a
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:139 +0x164

goroutine 764369 [select, 1 minutes]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run(0xc42065c540)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:171 +0x342
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.NewClient
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:46 +0x2ab

goroutine 671647 [select, 42 minutes]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).dispatch(0xc4201a6360, 0x146a0a0, 0xc42024e5a0, 0xc4203440c0, 0xc420306260, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:102 +0x282
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).Call(0xc4201a6360, 0x146a0a0, 0xc42024e5a0, 0xbbc2cb, 0x25, 0xba0ebc, 0x5, 0x10468a0, 0xc4201ae640, 0x1046980, ...)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:73 +0x15d
github.com/containerd/containerd/linux/shim/v1.(*shimClient).Start(0xc42000e068, 0x146a0a0, 0xc42024e5a0, 0xc4201ae640, 0x1001ae0, 0x7f9762311101, 0xc420571660)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/v1/shim.pb.go:1745 +0xbf
github.com/containerd/containerd/linux.(*Process).Start(0xc4203061e0, 0x146a0a0, 0xc42024e5a0, 0x146a0a0, 0xc42024e5a0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/process.go:109 +0x91
github.com/containerd/containerd/services/tasks.(*service).Start(0xc4202c6e70, 0x7f9762311168, 0xc42024e5a0, 0xc42000c560, 0xc4202c6e70, 0xbbea93, 0x5)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/tasks/service.go:175 +0x14e
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Start_Handler.func1(0x7f9762311168, 0xc42024e5a0, 0x1044f40, 0xc42000c560, 0xc4202f64b0, 0x14cdcb0, 0xf87860, 0xc4201ae630)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:626 +0x8b
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.UnaryServerInterceptor(0x7f9762311168, 0xc42024e5a0, 0x1044f40, 0xc42000c560, 0xc42000c580, 0xc42000c5a0, 0x50, 0x48, 0xc42000c540, 0xc420571968)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:29 +0xd4
github.com/containerd/containerd/server.interceptor(0x7f9762311168, 0xc42024e4b0, 0x1044f40, 0xc42000c560, 0xc42000c580, 0xc42000c5a0, 0x8000000000000000, 0xc4205719e0, 0x41228a, 0x50)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:267 +0x1d2
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Start_Handler(0x1097ee0, 0xc4202c6e70, 0x7f9762311168, 0xc420471a70, 0xc4202f62d0, 0x10af920, 0x0, 0x0, 0x0, 0x145e9e0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:628 +0x16f
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc4202f0000, 0xc4202c77d0, 0x1452d78, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:826 +0xab6
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc4202f0000, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1023 +0x152a
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4202c8860, 0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc4202f0000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 592225 [syscall, 68 minutes]:
syscall.Syscall6(0xf7, 0x1, 0xb0e, 0xc42026a5b8, 0x1000004, 0x0, 0x0, 0x146d1e0, 0xc420404840, 0xc4202f5000)
    /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
os.(*Process).blockUntilWaitable(0xc420016d50, 0x0, 0xc42026a6b0, 0x5268aa)
    /usr/local/go/src/os/wait_waitid.go:31 +0xa7
os.(*Process).wait(0xc420016d50, 0xc42026a770, 0x8943d5, 0x146a0a0)
    /usr/local/go/src/os/exec_unix.go:22 +0x44
os.(*Process).Wait(0xc420016d50, 0xc42034b300, 0x42b91b, 0xc400000008)
    /usr/local/go/src/os/exec.go:115 +0x2d
os/exec.(*Cmd).Wait(0xc420262160, 0x45e611, 0xc4202c8860)
    /usr/local/go/src/os/exec/exec.go:446 +0x64
github.com/containerd/containerd/linux/shim/client.WithStart.func1.2(0xc420262160, 0xc420440280)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:59 +0x2d
created by github.com/containerd/containerd/linux/shim/client.WithStart.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:58 +0x2d5

goroutine 764402 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56bb0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4201b4898, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4201b4898, 0xc42073d000, 0x1000, 0x1000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4201b4880, 0xc42073d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4201b4880, 0xc42073d000, 0x1000, 0x1000, 0xc42041ee78, 0x43ebf4, 0xc4201be7e0)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc4201b0370, 0xc42073d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc42065c4e0, 0xc420774420, 0xa, 0xa, 0xc42041efac, 0x0, 0xc42041efa8)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc42065c4e0, 0xc420774420, 0xa, 0xa, 0xa, 0xc4201f6100, 0x0, 0xc42041ef48)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc42065c4e0, 0xc420774420, 0xa, 0xa, 0x2, 0x2, 0x0)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.readMessageHeader(0xc420774420, 0xa, 0xa, 0x145c760, 0xc42065c4e0, 0xc42041ef48, 0x2, 0x2, 0xc42041efa8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:38 +0x62
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*channel).recv(0xc420774400, 0x146a020, 0xc420014048, 0x0, 0x2, 0xc4204a7060, 0x6, 0xb, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:86 +0x6f
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run.func1(0xc4201be840, 0xc42065c540, 0xc420265220, 0xc4201be7e0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:144 +0x9a
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:139 +0x164

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ (๊ณ ์ฐฉ ์ƒํƒœ์—์„œ ๊ณผ๋„ ์ƒํƒœ๋ฅผ ์‰ฝ๊ฒŒ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋„๋ก)

$ docker run -it --rm -v /run/docker/containerd:/run/docker/containerd docker:18.03.0 docker-containerd-ctr pprof --debug-socket /run/docker/containerd/docker-containerd-debug.sock goroutines
goroutine 764428 [running]:
runtime/pprof.writeGoroutineStacks(0x145e720, 0xc4200ac7e0, 0x0, 0xc4205ccad0)
    /usr/local/go/src/runtime/pprof/pprof.go:608 +0xa9
runtime/pprof.writeGoroutine(0x145e720, 0xc4200ac7e0, 0x2, 0x30, 0x1026340)
    /usr/local/go/src/runtime/pprof/pprof.go:597 +0x46
runtime/pprof.(*Profile).WriteTo(0x1448700, 0x145e720, 0xc4200ac7e0, 0x2, 0xc4200ac7e0, 0xc4201b8750)
    /usr/local/go/src/runtime/pprof/pprof.go:310 +0x3ad
net/http/pprof.handler.ServeHTTP(0xc4205620d1, 0x9, 0x1469220, 0xc4200ac7e0, 0xc42057b200)
    /usr/local/go/src/net/http/pprof/pprof.go:237 +0x1ba
net/http/pprof.Index(0x1469220, 0xc4200ac7e0, 0xc42057b200)
    /usr/local/go/src/net/http/pprof/pprof.go:248 +0x1dd
net/http.HandlerFunc.ServeHTTP(0x10b0ee8, 0x1469220, 0xc4200ac7e0, 0xc42057b200)
    /usr/local/go/src/net/http/server.go:1918 +0x46
net/http.(*ServeMux).ServeHTTP(0xc4201b8750, 0x1469220, 0xc4200ac7e0, 0xc42057b200)
    /usr/local/go/src/net/http/server.go:2254 +0x132
net/http.serverHandler.ServeHTTP(0xc4201c0410, 0x1469220, 0xc4200ac7e0, 0xc42057b200)
    /usr/local/go/src/net/http/server.go:2619 +0xb6
net/http.(*conn).serve(0xc4206328c0, 0x1469fe0, 0xc4202fa300)
    /usr/local/go/src/net/http/server.go:1801 +0x71f
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2720 +0x28a

goroutine 1 [chan receive, 5006 minutes]:
main.main.func1(0xc4200aedc0, 0xc4200aedc0, 0xc4201adb4f)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:132 +0x871
github.com/containerd/containerd/vendor/github.com/urfave/cli.HandleAction(0xf9bc00, 0x10b0b60, 0xc4200aedc0, 0xc420058ba0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:502 +0xd4
github.com/containerd/containerd/vendor/github.com/urfave/cli.(*App).Run(0xc420182a80, 0xc420010090, 0x3, 0x3, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:268 +0x655
main.main()
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:135 +0x53d

goroutine 13 [select, 12 minutes]:
main.handleSignals.func1(0xc420058c60, 0xc420058c00, 0x146a0a0, 0xc4201739b0, 0xc420070420)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main_unix.go:30 +0xf7
created by main.handleSignals
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main_unix.go:27 +0x8b

goroutine 12 [syscall, 12 minutes]:
os/signal.signal_recv(0x14640a0)
    /usr/local/go/src/runtime/sigqueue.go:131 +0xa8
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:22 +0x24
created by os/signal.init.0
    /usr/local/go/src/os/signal/signal_unix.go:28 +0x43

goroutine 14 [select, 5006 minutes, locked to thread]:
runtime.gopark(0x10b1368, 0x0, 0xba26f3, 0x6, 0x18, 0x1)
    /usr/local/go/src/runtime/proc.go:287 +0x132
runtime.selectgo(0xc420200f50, 0xc4200704e0)
    /usr/local/go/src/runtime/select.go:395 +0x114f
runtime.ensureSigM.func1()
    /usr/local/go/src/runtime/signal_unix.go:511 +0x226
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1

goroutine 34 [select]:
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Broadcaster).run(0xc4201a23c0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/broadcast.go:117 +0x414
created by github.com/containerd/containerd/vendor/github.com/docker/go-events.NewBroadcaster
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/broadcast.go:39 +0x1b1

goroutine 35 [select]:
github.com/containerd/containerd/gc/scheduler.(*gcScheduler).run(0xc4201ec3c0, 0x146a0a0, 0xc42024eb10)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/gc/scheduler/scheduler.go:243 +0x21d
created by github.com/containerd/containerd/gc/scheduler.init.0.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/gc/scheduler/scheduler.go:107 +0x4bf

goroutine 36 [syscall]:
syscall.Syscall6(0xe8, 0x5, 0xc4206439b8, 0x80, 0xffffffffffffffff, 0x0, 0x0, 0x1, 0x80, 0x0)
    /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
github.com/containerd/containerd/vendor/golang.org/x/sys/unix.EpollWait(0x5, 0xc4206439b8, 0x80, 0x80, 0xffffffffffffffff, 0x1, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go:1518 +0x79
github.com/containerd/containerd/metrics/cgroups.(*oomCollector).start(0xc42020d3c0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/metrics/cgroups/oom.go:98 +0x7d
created by github.com/containerd/containerd/metrics/cgroups.newOOMCollector
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/metrics/cgroups/oom.go:34 +0x125

goroutine 50 [IO wait]:
internal/poll.runtime_pollWait(0x7f9762b56f70, 0x72, 0xffffffffffffffff)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee118, 0x72, 0xc420203b00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee118, 0xffffffffffffff00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Accept(0xc4202ee100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:335 +0x1e4
net.(*netFD).accept(0xc4202ee100, 0xc420632940, 0xfb2160, 0xc420203d78)
    /usr/local/go/src/net/fd_unix.go:238 +0x44
net.(*UnixListener).accept(0xc4202c7920, 0x7f8e9a, 0x45ad10, 0xc420203dc0)
    /usr/local/go/src/net/unixsock_posix.go:162 +0x34
net.(*UnixListener).Accept(0xc4202c7920, 0x10b0d00, 0xc4206328c0, 0x146a0a0, 0xc4201b8840)
    /usr/local/go/src/net/unixsock.go:241 +0x4b
net/http.(*Server).Serve(0xc4201c0410, 0x1468fe0, 0xc4202c7920, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:2695 +0x1b4
net/http.Serve(0x1468fe0, 0xc4202c7920, 0x145e360, 0xc4201b8750, 0x10b0f00, 0xc420268720)
    /usr/local/go/src/net/http/server.go:2323 +0x75
github.com/containerd/containerd/server.(*Server).ServeDebug(0xc4201aef40, 0x1468fe0, 0xc4202c7920, 0xc420268738, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:159 +0x1c8
github.com/containerd/containerd/server.(*Server).ServeDebug-fm(0x1468fe0, 0xc4202c7920, 0xc4202c7920, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:115 +0x40
main.serve.func1(0x1468fe0, 0xc4202c7920, 0xc4202bb620, 0x146a0a0, 0xc4202c79e0, 0xc4202c0380, 0x37)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:146 +0x77
created by main.serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:144 +0x1c8

goroutine 51 [IO wait]:
internal/poll.runtime_pollWait(0x7f9762b56eb0, 0x72, 0xffffffffffffffff)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee298, 0x72, 0xc420033b00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee298, 0xffffffffffffff00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Accept(0xc4202ee280, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:335 +0x1e4
net.(*netFD).accept(0xc4202ee280, 0xc4202b8000, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:238 +0x44
net.(*UnixListener).accept(0xc4202c7a70, 0x89339b, 0x45ad10, 0xc420033da0)
    /usr/local/go/src/net/unixsock_posix.go:162 +0x34
net.(*UnixListener).Accept(0xc4202c7a70, 0x10b07e8, 0xc4201f8140, 0x146d6c0, 0xc4202b8000)
    /usr/local/go/src/net/unixsock.go:241 +0x4b
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve(0xc4201f8140, 0x1468fe0, 0xc4202c7a70, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:463 +0x198
github.com/containerd/containerd/server.(*Server).ServeGRPC(0xc4201aef40, 0x1468fe0, 0xc4202c7a70, 0xc420268f38, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:138 +0x55
github.com/containerd/containerd/server.(*Server).ServeGRPC-fm(0x1468fe0, 0xc4202c7a70, 0xc4202c7a70, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:129 +0x40
main.serve.func1(0x1468fe0, 0xc4202c7a70, 0xc4202bb730, 0x146a0a0, 0xc4202c7b30, 0xc4202c0480, 0x31)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:146 +0x77
created by main.serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/cmd/containerd/main.go:144 +0x1c8

goroutine 52 [IO wait]:
internal/poll.runtime_pollWait(0x7f9762b56df0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee618, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee618, 0xc4203f2000, 0x8000, 0x8000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4202ee600, 0xc4203f2000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4202ee600, 0xc4203f2000, 0x8000, 0x8000, 0x11, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc4202b8028, 0xc4203f2000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc4202da660, 0xc4203021f8, 0x9, 0x9, 0x9, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc4202da660, 0xc4203021f8, 0x9, 0x9, 0x9, 0x227a0234201fcbb8, 0x5ac36c69, 0xc4201fcbc0)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc4202da660, 0xc4203021f8, 0x9, 0x9, 0x1113749e9ca22, 0x14a7a60, 0xbea8f8fa62751fd0)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/golang.org/x/net/http2.readFrameHeader(0xc4203021f8, 0x9, 0x9, 0x145c760, 0xc4202da660, 0x0, 0x7070e0900000000, 0xc4202e6798, 0xc4201fcce8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:237 +0x7d
github.com/containerd/containerd/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc4203021c0, 0xc4202bff20, 0xc4202bff20, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:492 +0xa6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc420404000, 0xc4203ef9e0, 0x10b0820)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:393 +0x317
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams(0xc4201f8140, 0x146d1e0, 0xc420404000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:568 +0x142
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveHTTP2Transport(0xc4201f8140, 0x146d6c0, 0xc4202b8028, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:561 +0x473
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleRawConn(0xc4201f8140, 0x146d6c0, 0xc4202b8028)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:526 +0x499
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:495 +0x5bb

goroutine 53 [select]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.loopyWriter(0x7f97623111a8, 0xc4203ed840, 0xc4203ef980, 0xc42041cfb8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/transport.go:750 +0x2e6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server.func1(0xc420404000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:227 +0x60
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:226 +0x8fb

goroutine 54 [select, 88 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).keepalive(0xc420404000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:935 +0x266
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:230 +0x920

goroutine 56 [select, 5006 minutes]:
github.com/containerd/containerd/services/events.(*service).Subscribe(0xc4201b0088, 0xc4203e93c0, 0x146d000, 0xc4203f0550, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/events/service.go:61 +0x213
github.com/containerd/containerd/api/services/events/v1._Events_Subscribe_Handler(0xff7e20, 0xc4201b0088, 0x146c580, 0xc4203e93a0, 0xc4202e6d20, 0xc4202a2000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/events/v1/events.pb.go:288 +0x110
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.StreamServerInterceptor(0xff7e20, 0xc4201b0088, 0x146c640, 0xc4202ee800, 0xc4203e9380, 0x10af408, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:40 +0x13b
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processStreamingRPC(0xc4201f8140, 0x146d1e0, 0xc4200aef20, 0xc4202f0400, 0xc4202c7470, 0x1447fc0, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:940 +0x2ea
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc4200aef20, 0xc4202f0400, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1027 +0x14c3
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4200157f0, 0xc4201f8140, 0x146d1e0, 0xc4200aef20, 0xc4202f0400)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 15 [IO wait, 74 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56d30, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc420012498, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc420012498, 0xc420428000, 0x8000, 0x8000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc420012480, 0xc420428000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc420012480, 0xc420428000, 0x8000, 0x8000, 0x11, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc42000e138, 0xc420428000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc420058cc0, 0xc4200ac3b8, 0x9, 0x9, 0x9, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc420058cc0, 0xc4200ac3b8, 0x9, 0x9, 0x9, 0xc420038bb8, 0x400f10, 0xc420038c67)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc420058cc0, 0xc4200ac3b8, 0x9, 0x9, 0x83ce2d, 0xc42048414c, 0xc42043a000)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/golang.org/x/net/http2.readFrameHeader(0xc4200ac3b8, 0x9, 0x9, 0x145c760, 0xc420058cc0, 0x0, 0x0, 0xc420484140, 0xc420038ce8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:237 +0x7d
github.com/containerd/containerd/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc4200ac380, 0xc420484140, 0xc420484140, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:492 +0xa6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc4200aef20, 0xc420173bc0, 0x10b0820)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:393 +0x317
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams(0xc4201f8140, 0x146d1e0, 0xc4200aef20)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:568 +0x142
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveHTTP2Transport(0xc4201f8140, 0x146d6c0, 0xc42000e138, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:561 +0x473
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleRawConn(0xc4201f8140, 0x146d6c0, 0xc42000e138)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:526 +0x499
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:495 +0x5bb

goroutine 16 [select, 74 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.loopyWriter(0x7f97623111a8, 0xc420054cc0, 0xc420173b60, 0xc42041dfb8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/transport.go:750 +0x2e6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server.func1(0xc4200aef20)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:227 +0x60
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:226 +0x8fb

goroutine 66 [select, 74 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).keepalive(0xc4200aef20)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:935 +0x266
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:230 +0x920

goroutine 57 [semacquire, 5006 minutes]:
sync.runtime_notifyListWait(0xc4203edbd0, 0xc400000000)
    /usr/local/go/src/runtime/sema.go:507 +0x114
sync.(*Cond).Wait(0xc4203edbc0)
    /usr/local/go/src/sync/cond.go:56 +0x82
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).next(0xc4204382d0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:103 +0x87
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).run(0xc4204382d0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:68 +0x34
created by github.com/containerd/containerd/vendor/github.com/docker/go-events.NewQueue
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:29 +0x14d

goroutine 58 [select, 5006 minutes]:
github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe.func3(0xc420438330, 0xc4203e93e0, 0xc42040a120, 0x1469fe0, 0xc4203edb80, 0xc4202da7e0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:155 +0x15f
created by github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:149 +0x291

goroutine 67 [select]:
github.com/containerd/containerd/services/events.(*service).Subscribe(0xc4201b0088, 0xc4203e9700, 0x146d000, 0xc4203f06f0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/events/service.go:61 +0x213
github.com/containerd/containerd/api/services/events/v1._Events_Subscribe_Handler(0xff7e20, 0xc4201b0088, 0x146c580, 0xc4203e96e0, 0xc4202e7090, 0xc420029400)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/events/v1/events.pb.go:288 +0x110
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.StreamServerInterceptor(0xff7e20, 0xc4201b0088, 0x146c640, 0xc4202eeb80, 0xc4203e96c0, 0x10af408, 0x0, 0xc420268ec8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:40 +0x13b
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processStreamingRPC(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42019a200, 0xc4202c7470, 0x1447fc0, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:940 +0x2ea
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42019a200, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1027 +0x14c3
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4202c8860, 0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42019a200)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 60 [IO wait]:
internal/poll.runtime_pollWait(0x7f9762b56c70, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee918, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee918, 0xc420458000, 0x8000, 0x8000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4202ee900, 0xc420458000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4202ee900, 0xc420458000, 0x8000, 0x8000, 0x11, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc4202b8040, 0xc420458000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc4202daae0, 0xc4203023b8, 0x9, 0x9, 0x9, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc4202daae0, 0xc4203023b8, 0x9, 0x9, 0x9, 0x22856124201febb8, 0x5ac36c69, 0xc4201febc0)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc4202daae0, 0xc4203023b8, 0x9, 0x9, 0x1113749f52782, 0x14a7a60, 0xbea8f8fa62803e4c)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/golang.org/x/net/http2.readFrameHeader(0xc4203023b8, 0x9, 0x9, 0x145c760, 0xc4202daae0, 0x0, 0x7070e0900000000, 0xc4202e6fb8, 0xc4201fece8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:237 +0x7d
github.com/containerd/containerd/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc420302380, 0xc420204d20, 0xc420204d20, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/golang.org/x/net/http2/frame.go:492 +0xa6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc420404840, 0xc420438900, 0x10b0820)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:393 +0x317
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams(0xc4201f8140, 0x146d1e0, 0xc420404840)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:568 +0x142
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveHTTP2Transport(0xc4201f8140, 0x146d6c0, 0xc4202b8040, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:561 +0x473
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleRawConn(0xc4201f8140, 0x146d6c0, 0xc4202b8040)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:526 +0x499
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).Serve
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:495 +0x5bb

goroutine 61 [select]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.loopyWriter(0x7f97623111a8, 0xc4203eddc0, 0xc4204388a0, 0xc42046cfb8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/transport.go:750 +0x2e6
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server.func1(0xc420404840)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:227 +0x60
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:226 +0x8fb

goroutine 62 [select, 74 minutes]:
github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.(*http2Server).keepalive(0xc420404840)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:935 +0x266
created by github.com/containerd/containerd/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/transport/http2_server.go:230 +0x920

goroutine 63 [semacquire]:
sync.runtime_notifyListWait(0xc4203edf50, 0xc400009f39)
    /usr/local/go/src/runtime/sema.go:507 +0x114
sync.(*Cond).Wait(0xc4203edf40)
    /usr/local/go/src/sync/cond.go:56 +0x82
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).next(0xc4204389c0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:103 +0x87
github.com/containerd/containerd/vendor/github.com/docker/go-events.(*Queue).run(0xc4204389c0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:68 +0x34
created by github.com/containerd/containerd/vendor/github.com/docker/go-events.NewQueue
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/docker/go-events/queue.go:29 +0x14d

goroutine 64 [select]:
github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe.func3(0xc420438a20, 0xc4203e9720, 0xc42040a3c0, 0x1469fe0, 0xc4203edf00, 0xc4202daf00)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:155 +0x15f
created by github.com/containerd/containerd/events/exchange.(*Exchange).Subscribe
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/events/exchange/exchange.go:149 +0x291

goroutine 592290 [select, 43 minutes]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run(0xc4201a6360)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:171 +0x342
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.NewClient
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:46 +0x2ab

goroutine 671746 [select, 43 minutes]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).dispatch(0xc4201a6360, 0x146a0a0, 0xc4204eee70, 0xc420345a80, 0xc4201daa60, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:102 +0x282
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).Call(0xc4201a6360, 0x146a0a0, 0xc4204eee70, 0xbbc2cb, 0x25, 0xba0ec1, 0x5, 0x1046a60, 0xc4201a1ee0, 0x1046b40, ...)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:73 +0x15d
github.com/containerd/containerd/linux/shim/v1.(*shimClient).State(0xc42000e068, 0x146a0a0, 0xc4204eee70, 0xc4201a1ee0, 0x0, 0xc42016b298, 0xc42059f578)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/v1/shim.pb.go:1729 +0xbf
github.com/containerd/containerd/linux.(*Process).State(0xc4201daa40, 0x146a0a0, 0xc4204eee70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/process.go:45 +0xc7
github.com/containerd/containerd/services/tasks.processFromContainerd(0x7f9762311168, 0xc4204eee70, 0x146d0c0, 0xc4201daa40, 0x40, 0x146d0c0, 0xc4201daa40)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/tasks/service.go:225 +0xbe
github.com/containerd/containerd/services/tasks.(*service).Get(0xc4202c6e70, 0x7f9762311168, 0xc4204eee70, 0xc4201da800, 0xc4202c6e70, 0xbbd46b, 0x3)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/tasks/service.go:268 +0xef
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Get_Handler.func1(0x7f9762311168, 0xc4204eee70, 0x10444c0, 0xc4201da800, 0xc420079ae0, 0x14cdcb0, 0xf87860, 0xc4201a1e30)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:680 +0x88
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.UnaryServerInterceptor(0x7f9762311168, 0xc4204eee70, 0x10444c0, 0xc4201da800, 0xc4201da820, 0xc4201da840, 0x50, 0x48, 0xc4201da7e0, 0xc42059f968)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:29 +0xd4
github.com/containerd/containerd/server.interceptor(0x7f9762311168, 0xc4204eedb0, 0x10444c0, 0xc4201da800, 0xc4201da820, 0xc4201da840, 0x4354a6, 0xc42059f9e0, 0x41228a, 0x50)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:267 +0x1d2
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Get_Handler(0x1097ee0, 0xc4202c6e70, 0x7f9762311168, 0xc42044fbc0, 0xc420079900, 0x10af920, 0x0, 0x0, 0xc42001d900, 0x46)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:682 +0x16f
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42021d700, 0xc4202c77d0, 0x1452dc0, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:826 +0xab6
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42021d700, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1023 +0x152a
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4202c8860, 0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc42021d700)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 764452 [select]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run(0xc420169500)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:171 +0x342
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.NewClient
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:46 +0x2ab

goroutine 592291 [IO wait, 43 minutes]:
internal/poll.runtime_pollWait(0x7f9762b56af0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4201b4398, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4201b4398, 0xc4202ea000, 0x1000, 0x1000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4201b4380, 0xc4202ea000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4201b4380, 0xc4202ea000, 0x1000, 0x1000, 0xc420201e78, 0x43ebf4, 0xc42040a720)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc42000e060, 0xc4202ea000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc4201a6300, 0xc4202fa060, 0xa, 0xa, 0xc420201fac, 0x0, 0xc420201fa8)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc4201a6300, 0xc4202fa060, 0xa, 0xa, 0xa, 0xc42021e300, 0x0, 0xc420201f48)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc4201a6300, 0xc4202fa060, 0xa, 0xa, 0x2, 0x2, 0x0)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.readMessageHeader(0xc4202fa060, 0xa, 0xa, 0x145c760, 0xc4201a6300, 0xc420201f48, 0x2, 0x2, 0xc420201fa8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:38 +0x62
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*channel).recv(0xc4202fa040, 0x146a020, 0xc420014048, 0x0, 0x2, 0xc4201b6070, 0x6, 0x6, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:86 +0x6f
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run.func1(0xc42040a780, 0xc4201a6360, 0xc42003ba20, 0xc42040a720)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:144 +0x9a
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:139 +0x164

goroutine 764451 [syscall]:
syscall.Syscall6(0xf7, 0x1, 0x3778, 0xc42026d5b8, 0x1000004, 0x0, 0x0, 0x146d1e0, 0xc420404840, 0xc42019af00)
    /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
os.(*Process).blockUntilWaitable(0xc42052ed80, 0x0, 0xc42026d6b0, 0x5268aa)
    /usr/local/go/src/os/wait_waitid.go:31 +0xa7
os.(*Process).wait(0xc42052ed80, 0xc42026d770, 0x8943d5, 0x146a0a0)
    /usr/local/go/src/os/exec_unix.go:22 +0x44
os.(*Process).Wait(0xc42052ed80, 0xc420128d00, 0x42b91b, 0xc400000008)
    /usr/local/go/src/os/exec.go:115 +0x2d
os/exec.(*Cmd).Wait(0xc4200ae580, 0x45e611, 0xc4202c8860)
    /usr/local/go/src/os/exec/exec.go:446 +0x64
github.com/containerd/containerd/linux/shim/client.WithStart.func1.2(0xc4200ae580, 0xc4202f6410)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:59 +0x2d
created by github.com/containerd/containerd/linux/shim/client.WithStart.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:58 +0x2d5

goroutine 764429 [IO wait]:
internal/poll.runtime_pollWait(0x7f9762b56bb0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc420230818, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc420230818, 0xc4204def00, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc420230800, 0xc4204defa1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc420230800, 0xc4204defa1, 0x1, 0x1, 0x0, 0xc4204deb00, 0x42b91b)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc4201b0230, 0xc4204defa1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
net/http.(*connReader).backgroundRead(0xc4204def90)
    /usr/local/go/src/net/http/server.go:660 +0x64
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:656 +0xda

goroutine 671647 [select, 43 minutes]:
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).dispatch(0xc4201a6360, 0x146a0a0, 0xc42024e5a0, 0xc4203440c0, 0xc420306260, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:102 +0x282
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).Call(0xc4201a6360, 0x146a0a0, 0xc42024e5a0, 0xbbc2cb, 0x25, 0xba0ebc, 0x5, 0x10468a0, 0xc4201ae640, 0x1046980, ...)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:73 +0x15d
github.com/containerd/containerd/linux/shim/v1.(*shimClient).Start(0xc42000e068, 0x146a0a0, 0xc42024e5a0, 0xc4201ae640, 0x1001ae0, 0x7f9762311101, 0xc420571660)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/v1/shim.pb.go:1745 +0xbf
github.com/containerd/containerd/linux.(*Process).Start(0xc4203061e0, 0x146a0a0, 0xc42024e5a0, 0x146a0a0, 0xc42024e5a0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/process.go:109 +0x91
github.com/containerd/containerd/services/tasks.(*service).Start(0xc4202c6e70, 0x7f9762311168, 0xc42024e5a0, 0xc42000c560, 0xc4202c6e70, 0xbbea93, 0x5)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/services/tasks/service.go:175 +0x14e
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Start_Handler.func1(0x7f9762311168, 0xc42024e5a0, 0x1044f40, 0xc42000c560, 0xc4202f64b0, 0x14cdcb0, 0xf87860, 0xc4201ae630)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:626 +0x8b
github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.UnaryServerInterceptor(0x7f9762311168, 0xc42024e5a0, 0x1044f40, 0xc42000c560, 0xc42000c580, 0xc42000c5a0, 0x50, 0x48, 0xc42000c540, 0xc420571968)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:29 +0xd4
github.com/containerd/containerd/server.interceptor(0x7f9762311168, 0xc42024e4b0, 0x1044f40, 0xc42000c560, 0xc42000c580, 0xc42000c5a0, 0x8000000000000000, 0xc4205719e0, 0x41228a, 0x50)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/server/server.go:267 +0x1d2
github.com/containerd/containerd/api/services/tasks/v1._Tasks_Start_Handler(0x1097ee0, 0xc4202c6e70, 0x7f9762311168, 0xc420471a70, 0xc4202f62d0, 0x10af920, 0x0, 0x0, 0x0, 0x145e9e0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go:628 +0x16f
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc4202f0000, 0xc4202c77d0, 0x1452d78, 0x0, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:826 +0xab6
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc4202f0000, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:1023 +0x152a
github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc4202c8860, 0xc4201f8140, 0x146d1e0, 0xc420404840, 0xc4202f0000)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:572 +0xa1
created by github.com/containerd/containerd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/google.golang.org/grpc/server.go:570 +0xa3

goroutine 592225 [syscall, 68 minutes]:
syscall.Syscall6(0xf7, 0x1, 0xb0e, 0xc42026a5b8, 0x1000004, 0x0, 0x0, 0x146d1e0, 0xc420404840, 0xc4202f5000)
    /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
os.(*Process).blockUntilWaitable(0xc420016d50, 0x0, 0xc42026a6b0, 0x5268aa)
    /usr/local/go/src/os/wait_waitid.go:31 +0xa7
os.(*Process).wait(0xc420016d50, 0xc42026a770, 0x8943d5, 0x146a0a0)
    /usr/local/go/src/os/exec_unix.go:22 +0x44
os.(*Process).Wait(0xc420016d50, 0xc42034b300, 0x42b91b, 0xc400000008)
    /usr/local/go/src/os/exec.go:115 +0x2d
os/exec.(*Cmd).Wait(0xc420262160, 0x45e611, 0xc4202c8860)
    /usr/local/go/src/os/exec/exec.go:446 +0x64
github.com/containerd/containerd/linux/shim/client.WithStart.func1.2(0xc420262160, 0xc420440280)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:59 +0x2d
created by github.com/containerd/containerd/linux/shim/client.WithStart.func1
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/linux/shim/client/client.go:58 +0x2d5

goroutine 764453 [IO wait]:
internal/poll.runtime_pollWait(0x7f9762b567f0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x59
internal/poll.(*pollDesc).wait(0xc4202ee498, 0x72, 0xffffffffffffff00, 0x1460960, 0x145adf0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xb0
internal/poll.(*pollDesc).waitRead(0xc4202ee498, 0xc420777000, 0x1000, 0x1000)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3f
internal/poll.(*FD).Read(0xc4202ee480, 0xc420777000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:126 +0x18c
net.(*netFD).Read(0xc4202ee480, 0xc420777000, 0x1000, 0x1000, 0xc42041fe78, 0x43ebf4, 0xc4201be300)
    /usr/local/go/src/net/fd_unix.go:202 +0x54
net.(*conn).Read(0xc42000e1f0, 0xc420777000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:176 +0x6f
bufio.(*Reader).Read(0xc420169440, 0xc4203453e0, 0xa, 0xa, 0xc42041ffac, 0x0, 0xc42041ffa8)
    /usr/local/go/src/bufio/bufio.go:213 +0x30d
io.ReadAtLeast(0x145c760, 0xc420169440, 0xc4203453e0, 0xa, 0xa, 0xa, 0xc4200b4180, 0x0, 0xc42041ff48)
    /usr/local/go/src/io/io.go:309 +0x88
io.ReadFull(0x145c760, 0xc420169440, 0xc4203453e0, 0xa, 0xa, 0x2, 0x2, 0x0)
    /usr/local/go/src/io/io.go:327 +0x5a
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.readMessageHeader(0xc4203453e0, 0xa, 0xa, 0x145c760, 0xc420169440, 0xc42041ff48, 0x2, 0x2, 0xc42041ffa8)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:38 +0x62
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*channel).recv(0xc4203453c0, 0x146a020, 0xc420014048, 0x0, 0x2, 0xc42073a000, 0x6, 0x1b9, 0x0, 0x0)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/channel.go:86 +0x6f
github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run.func1(0xc4201be360, 0xc420169500, 0xc420664ec0, 0xc4201be300)
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:144 +0x9a
created by github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc.(*Client).run
    /tmp/tmp.AD0Uaz9KtF/src/github.com/containerd/containerd/vendor/github.com/stevvooe/ttrpc/client.go:139 +0x164
$ docker info
Containers: 5
 Running: 1
 Paused: 0
 Stopped: 4
Images: 323
Server Version: 18.03.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.87-linuxkit-aufs
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.786GiB
Name: linuxkit-025000000001
ID: UUJI:BHCD:4SFP:CCSM:H5QT:VZQL:E6AH:UXGU:5VMJ:P525:VYIK:YWOH
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 42
 Goroutines: 70
 System Time: 2018-04-03T11:59:08.2610107Z
 EventsListeners: 2
HTTP Proxy: docker.for.mac.http.internal:3128
HTTPS Proxy: docker.for.mac.http.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
$ docker version
Client:
 Version:   18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:06:22 2018
 OS/Arch:   darwin/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.03.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   0520e24
  Built:    Wed Mar 21 23:14:32 2018
  OS/Arch:  linux/amd64
  Experimental: true

๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ์–ป๋Š” ์ด๋ฏธ์ง€๋Š” ํ•ญ์ƒ docker.elastic.co/elasticsearch/elasticsearch:6.0.1 (๋˜๋Š” elasticsearch ์ด๋ฏธ์ง€ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค ... ์ €๋Š” 6.0.1์„ ์ง€์†์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)

๋งค์ผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹œ์ž‘ํ•˜๊ณ  ์ค‘์ง€ํ•˜๋Š” 23 ๊ฐœ์˜ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์ง€๋งŒ elasticsearch ํ•˜๋‚˜๋Š” ์ง€์†์ ์œผ๋กœ ์ฃฝ์Šต๋‹ˆ๋‹ค ... ๋™์ผํ•œ elasticsearch ์ปจํ…Œ์ด๋„ˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜์ƒ)...

์ค‘๋‹จ์€ ์‹œ์ž‘ ํ›„ 1 ~ 2 ๋ถ„์—์„œ 2 ~ 3 ์‹œ๊ฐ„๊นŒ์ง€ ์–ธ์ œ๋“ ์ง€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ์—ฌ๋Ÿฌ ๋ฌด๋ฆฌ ์—์„œ์ด ๋ฌธ์ œ๋กœ ๋ณด์ด๋Š” ๊ฒƒ์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ณธ ์›์ธ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

์‚ฌ๋žŒ๋“ค์ด ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? (17.09 ์–ธ๊ธ‰ ๋จ)

๋ฌธ์ œ๊ฐ€ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

@timdau ์ด "๋ฉˆ์ถœ ์ˆ˜์—†๋Š” ์ปจํ…Œ์ด๋„ˆ"๋กœ ์ธํ•ด ์šฐ๋ฆฌ์—๊ฒŒ ๊ฐ€์žฅ ์•ˆ์ •์ ์ธ ๋ฒ„์ „์ด๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์•„์ง 17.09๋ฅผ ์ƒ์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

docker-CE 17.12.0 (3 ๊ฐœ ํด๋Ÿฌ์Šคํ„ฐ)์—์„œ๋„ ๋˜‘๊ฐ™์ด ๋ฐœ์ƒํ•˜๋ฉฐ 17.09๋กœ ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค.
Docker๋Š” ์ด์ œ ๋‘ ๊ฐœ์˜ LTS ๋ฒ„์ „์—์„œ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ค‘์š”ํ•œ ๋ฒ„๊ทธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ˆ˜์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ฒˆ์‹์ด ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ด ํ•ฉ๋‹ˆ๋‹ค๋งŒ, ์ด๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค ...

ยฟ ์ด์ œ EE ๋ฒ„์ „์ด ์žˆ๊ณ  ํ•ด๋‹น ๋ฒ„์ „ EE 2.2.x (Docker 17.06.x)์— ๋…ธ๋ ฅ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ์˜์—ญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ฌ๋Ÿฌ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

docker-CE 17.12.0์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

17.12.1์€ ํ•œ๋™์•ˆ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ผ๋ถ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.
18.03.0์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์ง€๋งŒ ๊ณง ์ถœ์‹œ ๋  18.03.1์„ ๊ธฐ๋‹ค๋ฆด ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํ•ด๊ฒฐ ์ค‘์ž„์„ ์ดํ•ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„์ง ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.
๋„์›€์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ๋ก€ ๋ฒ”์œ„๋ฅผ ์ขํžˆ๋Š” ๊ฒƒ ์™ธ์— ๊ธฐ์—ฌํ•  ์ˆ˜์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์™€์„œ ๊ฑฐ์ง“ ์ฃผ์žฅ์„ ์–ด๋ฆฌ์„์€ ์ž์„ธ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ „ํ˜€ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
docker service ls

ID NAME MODE REPLICAS IMAGE PORTS
2uy2rdh3cu7e arxx_rxx replicated 5/4 xx/arxx_rxx:latest-SNAP *:80->80/tcp,*:443->443/tcp
4 ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ 5 ๊ฐœ๋ณด๊ธฐ ...> (ํ•ญ์ƒ ๋ณต์ œ๋ณธ 4 ๊ฐœ๋กœ ์„ค์ • ๋จ)

docker service ps arxx_rxx
๋‹ฌ๋ฆฌ๊ธฐ 4 ๊ฐœ๋งŒ ํ‘œ์‹œ

docker ps
๋ฉˆ์ถœ ์ˆ˜์—†๋Š” ์—ฌ๋ถ„์˜ ์šฉ๊ธฐ๋„ ๋ณด์—ฌ์ฃผ์„ธ์š”
69364e4293d1 xx/arxx_rxx:latest-SNAP "java -jar app-all.jโ€ฆ" 13 days ago Up 13 days (healthy) 80/tcp, 443/tcp arxx_rxx.1.bayrllx65489r7e1vh5te3plp

์ด ์ปจํ…Œ์ด๋„ˆ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ช…๋ น์ด ์ค‘๋‹จ๋จ
docker inspect 69364e4293d1

์ปจํ…Œ์ด๋„ˆ๋„ ์„œ๋น„์Šค๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

ยฟ ๋ฒ„๊ทธ๋ฅผ ์ฐพ๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ์ •ํ™•ํ•œ ๋ช…๋ น์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Ubuntu 16.04
Docker 17.12.0-ce

Skype / ํ–‰ ์•„์›ƒ์ด์žˆ๋Š” ๊ฒฝ์šฐ ์ง์ ‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ—‰ํ—‰

์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ค‘๋‹จ๋˜์–ด docker rmi / logs์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ช…๋ น์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ณ ์–‘์ด / etc / redhat-release

CentOS Linux ๋ฆด๋ฆฌ์Šค 7.4.1708 (์ฝ”์–ด)

๋„์ปค ๋ฒ„์ „

๊ณ ๊ฐ:
๋ฒ„์ „ : 17.12.0-ce
API ๋ฒ„์ „ : 1.35
Go ๋ฒ„์ „ : go1.9.2
ํž˜๋‚ด ์ปค๋ฐ‹ : c97c6d6
๊ฑด์ถ• : 2017 ๋…„ 12 ์›” 27 ์ผ ์ˆ˜์š”์ผ 20:10:14
OS / ์•„์น˜ : linux / amd64

์„ฌ๊ธฐ๋Š” ์‚ฌ๋žŒ:
์—”์ง„:
๋ฒ„์ „ : 17.12.0-ce
API ๋ฒ„์ „ : 1.35 (์ตœ์†Œ ๋ฒ„์ „ 1.12)
Go ๋ฒ„์ „ : go1.9.2
ํž˜๋‚ด ์ปค๋ฐ‹ : c97c6d6
๊ฑด์ถ• : 2017 ๋…„ 12 ์›” 27 ์ผ ์ˆ˜์š”์ผ 20:12:46
OS / ์•„์น˜ : linux / amd64
์‹คํ—˜์  : ๊ฑฐ์ง“

๊ณ  ๋ฃจํ‹ด

(curl --unix-socket /var/run/docker.sock http : /./ debug / pprof / goroutine? debug = 2)
goroutine.log

๋กœ๊ทธ์—์„œ ํฐ IO ๋Œ€๊ธฐ๋ฅผ ๋ด…๋‹ˆ๋‹ค ..
ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” ๋„์ปค ๋ฒ„์ „ 17.09.1-ce๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@victorvarza ๋Š” ์ด์ „ ์˜๊ฒฌ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค : https://github.com/moby/moby/issues/35933#issuecomment -378957035-17.12์—์žˆ๋Š” ๊ฒฝ์šฐ; ์ ์–ด๋„ 17.12.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€๋งŒ 17.12๊ฐ€ EOL์— ๋„๋‹ฌํ–ˆ์Œ์„ ๊ฐ์•ˆํ•  ๋•Œ 18.03์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค (ํ•˜์ง€๋งŒ 18.03.1์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ์ˆ˜์ • ์‚ฌํ•ญ์ด์žˆ์„ ์ˆ˜ ์žˆ์Œ).

๋‹ค์Œ ๋ฒˆ์— ๋‚ด ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ์ผ์ด ๋ฐœ์ƒํ•  ๋•Œ ๋กœ๊ทธ / ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์•  ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ”„๋ผ๋ฅผ ์•ฝ๊ฐ„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ docker-ce 18.03.1 ๋ฐ Linux Kernel 4.13.0-39-generic x86_64๋ฅผ ์‹คํ–‰ํ•˜๋Š” Ubuntu 16.04.4 LTS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์ง‘ํ•ด์•ผํ•˜๋Š” ๋ชจ๋“  ์ •๋ณด์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  1. docker inspect {container-id} > docker-inspect-container.log
  2. docker-containerd-shim pid๋ฅผ ์–ป์œผ๋ ค๋ฉด ps -aux | grep {container-id}
  3. docker-containerd-shim์—์„œ ์Šคํƒ ๋คํ”„๋ฅผ ์–ป์œผ๋ ค๋ฉด kill -s SIGUSR1 {docker-containerd-shim-pid} ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด dockerd์— ๋Œ€ํ•œ ๋กœ๊ทธ์— ์Šคํƒ ์ถ”์ ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  4. sudo journalctl -u docker.service --since today > docker-service-log.txt
  5. docker info
  6. docker version

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฉ๊ธฐ๊ฐ€ ๋ถ™์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์ง€, ์ข…๋ฃŒ, rm ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ฒจ๋ถ€ ํŒŒ์ผ์— ๋ชจ๋“  ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

Client:
 Version:   18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:04:48 2018
 OS/Arch:   linux/arm64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.03.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   0520e24
  Built:    Wed Mar 21 23:10:22 2018
  OS/Arch:  linux/arm64
  Experimental: false

strace-pid.log
docker-version.txt
docker-service-log.txt
docker-inspect-container.log
docker-info.txt
docker-containerd-shim-cmd-pid.txt
contanerd-stack.log

18.03.0-ce์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ํ˜ธ์ŠคํŠธ ๋งˆ์šดํŠธ NFS ๋ณผ๋ฅจ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ด๋ฏธ ์œ ์‚ฌํ•œ ์„ค์ •์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. NFS๊ฐ€ ์—ฌ๊ธฐ์„œ ์‹ค์ œ ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” NFS๊ฐ€ ์„ค์ •์— ๊ด€์—ฌํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•ฉ๋‹ˆ๋‹ค.

18.03.1์€ ์ด์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์™„ํ™” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฆด๋ฆฌ์Šค์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@ cpuguy83 AWS ์šฉ Docker๋Š” ๋งˆ์ง€๋ง‰์œผ๋กœ ํ™•์ธํ–ˆ์„ ๋•Œ ์—ฌ์ „ํžˆ 18.03.0์—์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ์ •๋ณด์— ๋‚˜์—ด๋œ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์€ 18.03.0์ž…๋‹ˆ๋‹ค. ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Docker for AWS stable์ด ์–ธ์ œ 18.03.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๋Š”์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

์ฃผ์˜ ๋ฌด๋ฆฌ ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ, ๋ฒ„๊ทธ : # 36961, ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ฃฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ cpuguy83 18.03.1์€ ์•„์ง ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€์— ์—†์Šต๋‹ˆ๋‹ค : https://docs.docker.com/release-notes/docker-ce/ ๋˜๋Š” ๋‚˜๋Š” ๋งน์ธ์ž…๋‹ˆ๊นŒ?

18.03.1์€ ์•„์ง ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€์— ์—†์Šต๋‹ˆ๋‹ค : https://docs.docker.com/release-notes/docker-ce/ ๋˜๋Š” ๋‚˜๋Š” ์‹œ๊ฐ ์žฅ์• ์ธ์ž…๋‹ˆ๊นŒ?

ํ•ด๋‹น ๋ฌธ์„œ๋Š” ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/docker/docker-ce/releases/tag/v18.03.1-ce์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
11 ์ผ ์ „์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@marcomsousa ์•Œ์•„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋Š” ์ด์ œ ๋ฌธ์„œ ์›น ์‚ฌ์ดํŠธ์—๋„ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. https://docs.docker.com/release-notes/docker-ce/#18031 -ce-2018-04-26

@ cpuguy83 ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ฌธ์ œ ๋ชฉ๋ก์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ์–ธ์ œ ํ•ด๊ฒฐ๋˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ์•ˆ์ „ํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@timdau ์ด๊ฒƒ์€ https://github.com/containerd/containerd/commit/d235ae9439c7a22b96a0d66cb15dd8808d978e8f์— ์˜ํ•ด ์™„ํ™”๋ฉ๋‹ˆ๋‹ค.

์ด ์ปค๋ฐ‹ containerd / containerd @ d235ae9 ๋Š” containerd 1.0.3์—์„œ ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Docker-ce 18.03.1์—๋Š”์ด ๋ฒ„์ „์˜ containerd๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ์ด ์˜ค๋ฅ˜๊ฐ€ 18.03.1 ๋ฒ„์ „์—์„œ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

18.03.1์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์ง€์—์„œ ์ผ์ฃผ์ผ ๋™์•ˆ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•˜๋ฃจ ์•ˆ์— ์‰ฝ๊ฒŒ ์žฌํ˜„ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

18.03.1 ๋ฒ„์ „์€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. (๋˜๋Š” ์™„ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค @ cpuguy83)

4 ๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์†ํ•ด์„œ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Docker 18.03.1 ์ด์ƒ์—์„œ ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด; ์„ธ๋ถ€ ์‚ฌํ•ญ์ด์žˆ๋Š” ์ƒˆ ๋ฌธ์ œ๋ฅผ์—ฌ์‹ญ์‹œ์˜ค.

@mavogel ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋™๊ฒฐํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋กœ๊น…์„ / dev / stderr์—์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋‚ด๋ถ€ ํŒŒ์ผ๋กœ ์ด๋™ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ / dev / stderr์— ๋กœ๊ทธ ํ•  ๋•Œ ๋””์Šคํฌ ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 18.06.1-ce ๋ฐ 18.09์˜ ๋‚ด (์ž„์‹œ) ์†”๋ฃจ์…˜์€ @casperWWW์™€ ์œ ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๊ทธ ์ˆ˜์ค€์„ ๋‚ฎ์ถ”๊ณ  ์ค‘๋‹จ์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ• ๋‹น ๋œ I / O ๋ฆฌ์†Œ์Šค๋ฅผ ํ•ด์ œ ํ•  ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

docker-compose๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋„์ปค ๋–ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋”๋„ ์ปค๊ฐ€ ๋–ผ์ง€ ์•Š๊ณ  ๋„์ปค CLI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋„ ๋ฉˆ์ถœ ์ˆ˜์—†๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด docker swarm์€ ์ถ•์†Œ ํ•  ์ˆ˜์—†๋Š” ์›ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ณต์ œ๋ณธ์„ ์ˆ˜์ง‘ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ด๋Ÿฌํ•œ ๋ณต์ œ๋ณธ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์‹  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์˜ํ–ฅ์„๋ฐ›๋Š” ๋…ธ๋“œ์—์„œ docker๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ํ–ฅ์„๋ฐ›๋Š” ๋…ธ๋“œ์—์„œ ๋„์ปค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋‹น์‹ ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

docker-compose๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋„์ปค ๋–ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋”๋„ ์ปค๊ฐ€ ๋–ผ์ง€ ์•Š๊ณ  ๋„์ปค CLI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋„ ๋ฉˆ์ถœ ์ˆ˜์—†๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด docker swarm์€ ์ถ•์†Œ ํ•  ์ˆ˜์—†๋Š” ์›ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ณต์ œ๋ณธ์„ ์ˆ˜์ง‘ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ด๋Ÿฌํ•œ ๋ณต์ œ๋ณธ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์‹  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์˜ํ–ฅ์„๋ฐ›๋Š” ๋…ธ๋“œ์—์„œ docker๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ํ–ฅ์„๋ฐ›๋Š” ๋…ธ๋“œ์—์„œ ๋„์ปค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋‹น์‹ ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ์ด์ „์— ๋ณด๋‚ธ ๋‚ด ์˜๊ฒฌ์„ ์ฐธ์กฐ ํ•˜์‹ญ์‹œ์˜ค -https://github.com/moby/moby/issues/35933#issuecomment -419863541
๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

docker-compose๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋„์ปค ๋–ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋”๋„ ์ปค๊ฐ€ ๋–ผ์ง€ ์•Š๊ณ  ๋„์ปค CLI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋„ ๋ฉˆ์ถœ ์ˆ˜์—†๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด docker swarm์€ ์ถ•์†Œ ํ•  ์ˆ˜์—†๋Š” ์›ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ณต์ œ๋ณธ์„ ์ˆ˜์ง‘ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ด๋Ÿฌํ•œ ๋ณต์ œ๋ณธ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์‹  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์˜ํ–ฅ์„๋ฐ›๋Š” ๋…ธ๋“œ์—์„œ docker๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด Docker ๋ฒ„์ „ v17.12.1.
๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ฐ ์ปจํ…Œ์ด๋„ˆ์˜ ์„œ๋น„์Šค ๋ถ€ํ•˜ ๋ถ„์‚ฐ์ด ๋ณต์ œ๋ณธ ์„ธํŠธ๋ณด๋‹ค ๋” ๋งŽ์ด ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋„์ปค์˜ ํฐ ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ์„œ๋น„์Šค์— ์‹ฌ๊ฐํ•œ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์„ ๋„์™€์ฃผ์„ธ์š”. ๋ฟก ๋นต๋€จ

Docker 17.12๋Š” 1 ๋…„ ์ „์— EOL์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฒ„์ „์—์„œ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

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