Moby: API๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ํ†ต๊ณ„๋ฅผ ์›ํ•  ๋•Œ ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” Docker API์— ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ๋จผ์ €:

$ docker version
Client:
 Version:      1.8.2-rc1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   28220ac
 Built:        Thu Sep  3 19:07:51 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2-rc1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   28220ac
 Built:        Thu Sep  3 19:07:51 UTC 2015
 OS/Arch:      linux/amd64

$ docker info   
Containers: 17
Images: 8
Storage Driver: devicemapper
 Pool Name: docker-254:0-1512633-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: extfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 3.557 GB
 Data Space Total: 107.4 GB
 Data Space Available: 8.216 GB
 Metadata Space Used: 7.848 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.14 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.104 (2015-08-10)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.1.0-1-amd64
Operating System: Debian GNU/Linux stretch/sid
CPUs: 8
Total Memory: 15.65 GiB
Name: n-pc
ID: LWBS:FFUU:5FGD:UXXH:J5FB:G4WL:WUZM:RFS4:3TEC:3IGG:K7GU:YWBV
WARNING: No memory limit support
WARNING: No swap limit support

$ uname -a
Linux n-pc 4.1.0-1-amd64 #1 SMP Debian 4.1.3-1 (2015-08-03) x86_64 GNU/Linux

API๋ฅผ ๋ช…๋ น์ค„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ปจํ…Œ์ด๋„ˆ์˜ ํ†ต๊ณ„๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•  ๋•Œ API๊ฐ€ ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ echo -e "GET /containers/57d3/stats?stream=0 HTTP/1.1\r\n" | nc -U /var/run/docker.sock 
HTTP/1.1 200 OK
Content-Type: application/json
Server: Docker/1.8.2-rc1 (linux)
Date: Fri, 04 Sep 2015 08:13:10 GMT
Content-Length: 0

"docker" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ํ†ต๊ณ„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ API๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

docker stats --no-stream 57d3
CONTAINER           CPU %               MEM USAGE/LIMIT     MEM %               NET I/O
57d3                 1.16%               0 B/16.81 GB        0.00%               8.565 MB/1.499 MB

๊ทธ๋Ÿฌ๋‚˜ API๊ฐ€ ์ž‘๋™ ์ค‘์ž…๋‹ˆ๋‹ค ...

echo -e "GET /version HTTP/1.1\r\n" | nc -U /var/run/docker.sock | tail -1 | json
{
    "ApiVersion": "1.20",
    "Arch": "amd64",
    "BuildTime": "Thu Sep  3 19:07:51 UTC 2015",
    "GitCommit": "28220ac",
    "GoVersion": "go1.4.2",
    "KernelVersion": "4.1.0-1-amd64",
    "Os": "linux",
    "Version": "1.8.2-rc1"
}

๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋‹ˆ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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

๋‚˜๋Š” ์ด๊ฒƒ์ด 'nc'์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์‹œ๋„: ... nc -q -1 -U /var/run/docker.sock ("-q -1" ์ฐธ๊ณ ).

'nc'๋Š” ์„œ๋ฒ„๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— http ์š”์ฒญ์„ ๋‹ซ๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ 'ํ†ต๊ณ„' ์ฒ˜๋ฆฌ๋ฅผ ์ค‘์ง€ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. http ์š”์ฒญ์„ ํ™•์ธํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ๋„์ปค cmds๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

nc ๋ฌธ์ œ๋งŒํผ ๋„์ปค ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. curl์„ ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

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

์ด๊ฒƒ์€ docker๊ฐ€ ์‘๋‹ต ํ—ค๋”๋ฅผ ๋จผ์ € ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...
๋‚˜๋Š” ์ด๊ฒƒ์„ ์ปฌ๋กœ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์—ฌ๊ธฐ์—์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ nc๋กœ ํŒŒ์ดํ•‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ CLI๋Š” ๋™์ผํ•œ ์ •ํ™•ํ•œ API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด 'nc'์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์‹œ๋„: ... nc -q -1 -U /var/run/docker.sock ("-q -1" ์ฐธ๊ณ ).

'nc'๋Š” ์„œ๋ฒ„๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— http ์š”์ฒญ์„ ๋‹ซ๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ 'ํ†ต๊ณ„' ์ฒ˜๋ฆฌ๋ฅผ ์ค‘์ง€ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. http ์š”์ฒญ์„ ํ™•์ธํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ๋„์ปค cmds๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

nc ๋ฌธ์ œ๋งŒํผ ๋„์ปค ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. curl์„ ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” -q๋ฅผ 5๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๊ณ (-1์€ ์˜์›ํžˆ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—) 5๋Š” ์‹œ๊ฐ„ ์ œํ•œ์„ 5์ดˆ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Debian Stretch์—์„œ๋Š” ๋Œ€์‹  curl์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Ubuntu 14.04์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. curl: option --unix-socket: is unknown

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