Machine: docker-machine์„ ์‚ฌ์šฉํ•˜์—ฌ --driver = generic ๋ฐ / ๋˜๋Š” --url์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2015๋…„ 05์›” 23์ผ  ยท  62์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: docker/machine

์•ˆ๋…• ์—ฌ๋Ÿฌ๋ถ„
์ด๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด์ด ์งˆ๋ฌธ์„ํ•˜๊ธฐ์— ์ž˜๋ชป๋œ ๊ณณ์ด๋ผ๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ์žฅ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์˜ฌ๋ฐ”๋ฅธ ์žฅ์†Œ๋ฅผ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

Docker-machine์„ ์‚ฌ์šฉํ•˜์—ฌ Virtualbox, ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž ๋“œ๋ผ์ด๋ฒ„ ๋“ฑ๊ณผ ๊ฐ™์€ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋ฒ ์–ด ๋ฉ”ํƒˆ Linux ๋‚ด๋ถ€์—์„œ Docker๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ์ด๋ฏธ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฅผ docker-machine๊ณผ ์–ด๋–ป๊ฒŒ ํ†ตํ•ฉํ•ฉ๋‹ˆ๊นŒ? docker-machine์ด ์—†์œผ๋ฉด ํŠน์ • ํฌํŠธ์—์„œ Docker ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•˜๊ณ  ์™ธ๋ถ€์—์„œ docker ํด๋ผ์ด์–ธํŠธ์—์„œ docker daemon ip ๋ฐ port๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. docker-machine์— ๋“œ๋ผ์ด๋ฒ„์—†์ด ํ˜ธ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด ๋ชฉ์ ์„์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ
Sreenivas

drivegeneric kinbug

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

@nathanleclaire ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? docker-machine ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ๋งŒ๋“  Microsoft Azure์—์„œ ์‹คํ–‰์ค‘์ธ Docker ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋‚ด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์†”๋ฃจ์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š” @smakam , ์ €๋Š” ๋‹น์‹ ์ด ์ฐพ๊ณ ์žˆ๋Š” ๊ฒƒ์ด url ๋“œ๋ผ์ด๋ฒ„๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค : http://docs.docker.com/machine/#adding -a-host-without-a-driver

์•ˆ๋…•ํ•˜์„ธ์š” @nathanleclaire
์‘๋‹ต ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹น์‹ ์ด ์–ธ๊ธ‰ ํ•œ ๋งํฌ๋ฅผ ๋ณด์•˜๊ณ  ๋‹ค์Œ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์šด์ด ์—†์Šต๋‹ˆ๋‹ค.

์ฒซ์งธ, TLS์—†์ด ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
Ubuntu ์ปดํ“จํ„ฐ์—์„œ Docker ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ ‡๊ฒŒํ–ˆ์Šต๋‹ˆ๋‹ค.
sudo docker -d -H unix : ///var/run/docker.sock -H tcp : //192.168.56.101 : 2376 &

docker-machine์ด ์„ค์น˜๋œ Windows์—์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
$ docker-machine create --url = tcp : //192.168.56.101 : 2376 custom6
โ† [34mINFO โ† [0m [0000] "custom6"์ด ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ ํ™œ์„ฑ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
$ docker-machine ls
์ด๋ฆ„ ํ™œ์„ฑ ์šด์ „์ž ์ƒํƒœ URL SWARM
custom6 * ์—†์Œ tcp : //192.168.56.101 : 2376

์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
$ docker-machine env custom6
โ† [31mFATA โ† [0m [0000] open C : Userssrmakam.dockermachinescustom6ca.pem : ์‹œ์Šคํ…œ์ด ์ง€์ •๋œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

docker-machine์ด TLS๋ฅผ ์ ์šฉํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์„œ์™€ ํ‚ค๋กœ ๋„์ปค ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ๋„์ปค ํด๋ผ์ด์–ธํŠธ๋กœ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์šด์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ
Sreenivas

์šฐ๋ฆฌ๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ํ˜„์žฌ ํ˜•์‹์œผ๋กœ TLS๋ฅผ ์˜๋ฌดํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ CA์™€ ์ธ์ฆ์„œ / ํ‚ค๋ฅผ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ์•„๋งˆ๋„ --tls-ca-cert , --tls-ca-key gloabl ์˜ต์…˜์„ ํ†ตํ•ด Docker Machine์— ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. @ehazlett ์–ด๋–ค ์ฝ”๋ฉ˜ํŠธ?

์•ˆ๋…•ํ•˜์„ธ์š”

๋‚˜๋Š” TLS๋กœ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋†“์น˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Ubuntu ํ˜ธ์ŠคํŠธ์—์„œ docker๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
sudo / usr / bin / docker -d --tlsverify --tlscacert =

/ca.pem --tlskey =/key.pem --tlscert =/cert.pem --host = unix : ///var/run/docker.sock --host = tcp : //0.0.0.0 : 2376

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋“œ๋ผ์ด๋ฒ„์—†์ด ๋„์ปค ๋จธ์‹  ํ˜ธ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋„์ปค ๋จธ์‹  --tls-client-cert =

/cert.pem --tls-ca-cert =/ca.pem --tls-client-key =/key.pem create --url = tcp : //: 2376 custom3

ํ™˜๊ฒฝ์„ ๋ณด๋ ค๊ณ  ํ•  ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
$ docker-machine env custom3
โ† [31mFATA โ† [0m [0000] open C : Userssrmakam.dockermachinescustom3ca.pem : ์‹œ์Šคํ…œ์ด ์ง€์ •๋œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ
Sreenivas

--tls-ca-cert ๋“ฑ ์„ค์ •์ด ์ „์—ญ์ด๋ฏ€๋กœ ๋ชจ๋“  ์ปดํ“จํ„ฐ ๊ด€๋ จ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๊ธฐ์กด CA, ํด๋ผ์ด์–ธํŠธ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„์ปค ๋ฐ๋ชฌ์˜ ๊ฒฝ์šฐ CA ๋ฐ ์„œ๋ฒ„ ์ธ์ฆ์„œ / keys๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ๋Š” CA ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ ํ‚ค์™€ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

docker -d --tlsverify --tlscacert ca.pem --tlscakey ca-key.pem --tlscert server.pem --tlskey server-key.pem

๋ฟก๋ฟก
๋ช…๋ น ์ค„์—์„œ ์˜ต์…˜์„ ์ง€์ •ํ•˜๋Š” docker-machine create์— ๋Œ€ํ•ด "certs"๋””๋ ‰ํ† ๋ฆฌ์˜ ์ „์—ญ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ machines /์—์„œ ๋ˆ„๋ฝ ๋œ "ca.pem"์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฐฐ ๊ทœ์น™์„œ.
"server.pem"๋ฐ "server-key.pem"์€ ์–ด๋–ป๊ฒŒ ์–ป์Šต๋‹ˆ๊นŒ? ์ƒ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

docker-machine์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  TLS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„์˜ ์ปดํ“จํ„ฐ์—์„œ docker client์™€ docker agent๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ
Sreenivas

์‚ฌ์šฉ ๋œ ๋ช…๋ น ์ค„ ์ธ์ˆ˜๋ฅผ ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์€์ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. :)

์•ˆ๋…•ํ•˜์„ธ์š” @ehazlett
๋จผ์ € ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„์ปค ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
sudo / usr / bin / docker -d --tlsverify --tlscacert = / home / xxx / .docker / machine / certs / ca.pem --tlskey = / home / xxx / .docker / machine / certs / key.pem --tlscert = / home / xxx / .docker / machine / certs / cert.pem --host = unix : ///var/run/docker.sock --host = tcp : //0.0.0.0 : 2376

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด docker-machine ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
docker-machine --tls-ca-cert = / home / xxx / .docker / machine / certs / ca.pem --tls-client-key = / home / xxx / .docker / machine / certs / key.pem- -tls-client-cert = / home / xxx / .docker / machine / certs / cert.pem create --url = tcp : //0.0.0.0 : 2376 custom3

ํ™˜๊ฒฝ์„ ์„ค์ •ํ•  ๋•Œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
xxx @ ubuntu : ~ $ docker-machine env custom3
/home/xxx/.docker/machine/machines/custom3/ca.pem์„ ์—ฝ๋‹ˆ ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ๋Š” ๋™์ผํ•œ Ubuntu ์‹œ์Šคํ…œ์—์„œ docker agent์™€ docker-machine์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Ubuntu์—์„œ docker ์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Windows์—์„œ docker-machine์„ ์‹คํ–‰ํ•  ๋•Œ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ
Sreenivas

Docker ์—”์ง„์— key.pem ๋ฐ cert.pem ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ์—”์ง„์—๋Š” ์„œ๋ฒ„ ํ‚ค / ์ธ์ฆ์„œ ์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค (๋จธ์‹ ์ด์ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค).

ํ™˜๊ฒฝ์„ ์œ„ํ•ด custom3 ๋จธ์‹ ์„ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๊นŒ? ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒ์„ฑ ์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @ehazlett
๋„์ปค ์—”์ง„์„ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๋‚ด ์ดํ•ด์— ๋”ฐ๋ฅด๋ฉด docker-machine์€ TLS๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ custom3 ๊ธฐ๊ณ„๋ฅผ ๋งŒ๋“  ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์–ด๋–ค ์˜ค๋ฅ˜๋„์ฃผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
docker-machine --tls-ca-cert = / home / xxx / .docker / machine / certs / ca.pem --tls-client-key = / home / xxx / .docker / machine / certs / key.pem- -tls-client-cert = / home / xxx / .docker / machine / certs / cert.pem create --url = tcp : //0.0.0.0 : 2376 custom3

๋“œ๋ผ์ด๋ฒ„๊ฐ€ docker-machine๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ ๋œ ๊ฒฝ์šฐ ์–ด๋–ค ์ปดํ“จํ„ฐ๊ฐ€ ์ˆ˜ํ–‰ ํ•  ๊ฒƒ์ธ์ง€์™€ ๊ฐ™์ด ์„œ๋ฒ„ ํ‚ค / ์ธ์ฆ์„œ ์Œ์„ ์ˆ˜๋™์œผ๋กœ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๊ฐ์‚ฌ
Sreenivas

@smakam ์ด๊ฒƒ์€ ์ •ํ™•ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด CA๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„ ํ‚ค๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@smakam ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@nathanleclaire ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ทธ๊ฒƒ์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์–ธ๊ธ‰ ๋œ ์ผ๋ฐ˜ ๋“œ๋ผ์ด๋ฒ„ ์ ˆ์ฐจ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ docker-machine 3.0์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค (http://blog.docker.com/2015/06/docker-machine-0-3-0-deep-dive/).
์ด๊ฒƒ์€ ์–ธ๊ธ‰ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
docker-machine create -d ์ผ๋ฐ˜
-์ผ๋ฐ˜ SSH ์‚ฌ์šฉ์ž ์šฐ๋ถ„ํˆฌ
--generic-ssh-key ~ / Downloads / manually_created_key.pub
-์ผ๋ฐ˜ IP ์ฃผ์†Œ 12.34.56.78
๋ฐ€๋ฆผ

.pub๊ฐ€ ์˜คํƒ€๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๊ฐœ์ธ ํ‚ค๋ฅผ ์ œ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ๋‘ ๊ฐ€์ง€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ๋ก€ 1 :
SSH ํ‚ค ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
์ปดํ“จํ„ฐ ์ƒ์„ฑ ์˜ค๋ฅ˜ : ์ข…๋ฃŒ ์ƒํƒœ 1
๊ณต๊ธ‰์ž๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹œ์Šคํ…œ ๋ฐ ๊ด€๋ จ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ œ๊ฑฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋ก€ 2 :
SSH ํ‚ค ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
๋ฐ๋ชฌ์ด ์ž‘๋™ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด SSH ๋ช…๋ น์„ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ์˜ค๋ฅ˜ : ์ข…๋ฃŒ ์ƒํƒœ 1
๋ฐ๋ชฌ์ด ์ž‘๋™ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด SSH ๋ช…๋ น์„ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ์˜ค๋ฅ˜ : ์ข…๋ฃŒ ์ƒํƒœ 1

btw, docker-machine ์ƒ์„ธ ๋กœ๊ทธ๋Š” ์–ด๋””์— ์ €์žฅ๋ฉ๋‹ˆ๊นŒ?
๋‚˜๋Š” Windows์™€ Linux ์šฉ docker-machine์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ
Sreenivas

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
--url ๋ฐ -d ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ๋ชจ๋‘ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ํฌ์Šคํ„ฐ์™€ ๋™์ผํ•œ ๋‹จ๊ณ„๋ฅผ ์‹œ๋„ํ•˜๊ณ  ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ ์ผ๋ฐ˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์‚ฌ๋ก€ 1 (CentOS 7)๊ณผ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. --url์„ ์‚ฌ์šฉํ•˜๊ณ  ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Docker ํŒ€์ด ๋‹จ๊ณ„๋ณ„๋กœ ์•ˆ๋‚ดํ•˜๋Š” ์งง์€ ์ž์Šต์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

anyconnect vpn์ด ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. anyconnect์—†์ด ๋žฉํ†ฑ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„์—๋Š” ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•œ +1.
์›๊ฒฉ ํ˜ธ์ŠคํŠธ์˜ ๊ธฐ์กด ๋„์ปค ์„ค์ •๊ณผ ํ•จ๊ป˜ docker-machine create --url= ์„ (๋ฅผ) ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์šด์ด ์—†์Šต๋‹ˆ๋‹ค. DM์ด $HOME/.docker/machine/machines/<name>/ca.pem ์—์„œ TLS๋ฅผ ๊ฐ€์ ธ ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋‹จ๊ณ„๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์„œ๋ฒ„ ์ธ์ฆ์„œ / ํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
docker-machine ๋ฒ„์ „ 0.4.0
Docker ๋ฒ„์ „ 1.8.0

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋‹จ๊ณ„๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์„œ๋ฒ„ ์ธ์ฆ์„œ / ํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
docker-machine ๋ฒ„์ „ 0.4.1
Docker ๋ฒ„์ „ 1.8.1

@csokun @ miracle-in-sunday @narqo ์ผ๋ฐ˜์ ์œผ๋กœ --url ํ•˜๋ฉด "์ž์‹ ์˜ ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ ธ ์˜ค์‹ญ์‹œ์˜ค"๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ก ์ œ๊ฐ€ ์ธ์ •ํ•˜์ง€๋งŒ ์ฝ”๋“œ์˜ ์ผ๋ถ€๊ฐ€ ์‹œ๋“ค ์–ด์„œ ๊นจ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์ฆ์„œ ๋ฐ ํ‚ค๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋„๋กํ•˜๋ ค๋ฉด generic ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค. https://docs.docker.com/machine/drivers/generic/

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

๊ฐ์‚ฌ!

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, --virtualbox-hostonly-cidr ์ง€์ •์„ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”ํŠธ ์Šฌ๋ผ ๋งŒ @ VLRNB176 ~
$ docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.99.100/24"dev4
VirtualBox VM ์ƒ์„ฑ ์ค‘ ...
SSH ํ‚ค ์ƒ์„ฑ ์ค‘ ...
VirtualBox VM ์‹œ์ž‘ ์ค‘ ...
VM ์‹œ์ž‘ ์ค‘ ...
Docker๋ฅผ์ด ๋จธ์‹ ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. C : Program Files (x86) Gitbindocker-machine env dev4

๋ฐ”ํŠธ ์Šฌ๋ผ ๋งŒ @ VLRNB176 ~
$ docker-machine env dev4
๋‚ด๋ณด๋‚ด๊ธฐ DOCKER_TLS_VERIFY = "1"
export DOCKER_HOST = " tcp : //192.168.99.101 : 2376"
export DOCKER_CERT_PATH = "C : UsersBartSlaman.dockermachinemachinesdev4"
๋‚ด๋ณด๋‚ด๊ธฐ DOCKER_MACHINE_NAME = "dev4"

๋ฌธ์•ˆ ์ธ์‚ฌ
Bart Slaman

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? --tls- *์™€ ํ•จ๊ป˜ --url์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ "open /Users/user/.docker/machine/machine/ss/ca.pem no such file or directory"๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์ปค ๋จธ์‹  ๋ฒ„์ „ 0.4.1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ๋Š” ๋™์ผํ•˜์ง€๋งŒ ์ƒ์„ฑ์‹œ ๋‹ค๋ฅธ ์˜ค๋ฅ˜ :

SSH ํ‚ค ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
SSH cmd ์˜ค๋ฅ˜!
๋ช…๋ น : sudo hostname internal && echo "internal"| sudo ํ‹ฐ / etc / hostname
์˜ค๋ฅ˜ : ์ข…๋ฃŒ ์ƒํƒœ 1
output : sudo : tty๊ฐ€์—†๊ณ  askpass ํ”„๋กœ๊ทธ๋žจ์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  eval "$ (docker-machine env internal)"์„ ์‹คํ–‰ํ•  ๋•Œ :
/Users/marlon/.docker/machine/machines/internal/ca.pem์„ ์—ฝ๋‹ˆ ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋Š” ์ธ์ฆ์„œ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์žฌ๋ฏธ์žˆ๋Š” ๊ฒƒ์€ "docker-machine ssh internal"์„ ์‹คํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ์— ssh ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

--url ์„ (๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ Docker Machine์œผ๋กœ ๋งŒ๋“  DigitalOcean์˜ ๊ธฐ์กด Docker ์—”์ง„์„ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

--url ๋˜๋Š” none ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ์‹œ์Šคํ…œ์— ๊ธฐ์กด ~/.docker/machine/machines/dobox/ ํด๋”๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  cert.pem , key.pem , id_rsa.pub , id_rsa ๋ฐ config.json ( ca.pem , server.pem ๋ฐ server-key.pem ์ œ์™ธ). ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด์ „์— ์ƒˆ๋กœ ์ƒ์„ฑ ๋œ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์ƒˆ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ / ํ‚ค ์Œ (https://docs.docker.com/articles/https/, "ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ ์šฉ"์—์„œ ์‹œ์ž‘)์„ ์ƒ์„ฑํ•˜๊ณ  ์ด์ „์— ์žˆ๋˜ ์ปดํ“จํ„ฐ์— ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ docker-machine create --url=tcp://SOME_IP:2376 dobox ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  Docker Machine์ด ์˜ˆ์ƒํ•˜๋Š” ์œ„์น˜๋กœ ์ธ์ฆ์„œ๋ฅผ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค : ~/.docker/machine/machines/dobox/ . ํด๋”๊ฐ€ ์ด๋ฏธ ์žˆ๊ณ  config.json ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ธ์ฆ์„œ ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค. Docker๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” TLS ํ”Œ๋ž˜๊ทธ / ์ธ์ฆ ์ฒด๊ณ„๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--tlsverify \
--tlscacert="/home/roberto/.docker/machine/machines/dobox/ca.pem" \
--tlscert="/home/roberto/.docker/machine/machines/dobox/cert.pem" \
--tlskey="/home/roberto/.docker/machine/machines/dobox/key.pem" \
-H=tcp://SOME_IP:2376

์ด์ œ ๋‘ ๋ฒˆ์งธ ํด๋ผ์ด์–ธํŠธ ์ปดํ“จํ„ฐ์—์„œ docker $(docker-machine config dobox) images ๋˜๋Š” eval "$(docker-machine env dobox)" ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker-machine ๋ฒ„์ „ 0.4.0
Docker ๋ฒ„์ „ 1.8.2

๋„์ปค์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•. ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผํ•˜๋Š” ์‚ฌ์šฉ์ž
https://docs.docker.com/reference/api/docker_remote_api_v1.20/๋ฅผ ์‚ฌ์šฉํ•˜๊ณ 
๋™์ผํ•œ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์— ๋„์ปค ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋‘˜ ๋‹ค ๋™์ผํ•œ ์ปดํ“จํ„ฐ์— ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์‹ ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ๋ถ„, ์กด์žฌํ•˜๋Š” ๋„์ปค ๋จธ์‹ ์„ ๊ฐ€์ ธ ์˜ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŠœํ† ๋ฆฌ์–ผ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
2 ๊ฐœ์˜ ๋ณ„๋„ PC์—์„œ 2 ๊ฐœ์˜ ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ Azure ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ด์ œ PC์—์„œ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ๋งŒ๋“  Azure ์ปดํ“จํ„ฐ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ด๋ฏธ 2 ์ €๋…์„ ๋ณด๋‚ด๊ณ  ๋ชจ๋“  ์ œ์•ˆ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ

@ dmp42 ์ •ํ™•ํžˆ ๋ฌด์—‡์— ๋Œ€ํ•ด? --url ๊ณ ์žฅ์€ ๋งค์šฐ ์ž˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์ด๋ฉฐ, ์ด์‹ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ์œผ๋กœ ๊ณง ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ์—์„œ ๋จธ์‹  ์‚ฌ์šฉ์„ ์ง€์›ํ•˜๊ณ ์žํ•ฉ๋‹ˆ๋‹ค.

PC์—์„œ PC๋กœ ๊ธฐ์กด ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ด ๊ณต์‹ ๋ฌธ์„œ ๋˜๋Š” ์—ฌ๊ธฐ github์˜ ์–ด๋”˜๊ฐ€์—์„œ ํ˜„์žฌ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๋ช…ํ™•ํ•œ ์ง„์ˆ ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@baio +1

ํ‘œ์ค€ Centos ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ด๋ฏธ ํ‘œ์ค€ ๋„์ปค ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ ํ•œ Centos 7 ํ˜ธ์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Docker ์›น ์‚ฌ์ดํŠธ์˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด ๋กœ์ปฌ ์›Œํฌ ์Šคํ…Œ์ด์…˜์—์„œ ์ผ๋ฐ˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์ด Centos 7 ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ•˜๋ฉด "docker-engine"์ด๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ "์ข…๋ฃŒ ์ƒํƒœ 1"๊ณผ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Docker๊ฐ€ ์ด๋ฏธ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์— ์„ค์น˜๋œ ๊ฒฝ์šฐ ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ : # 2270

์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ตœ์†Œํ•œ์˜ ์˜ˆ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ Vagrantfile ์ƒ์„ฑ

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  # Box
  config.vm.box = "ubuntu/precise64"
  config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box"

  # To make this easily reproducible
  config.ssh.insert_key = false
  config.vm.network "private_network", ip: "192.168.50.4"

end

VM ์‹œ์ž‘

$ vagrant up

์˜ˆ์ƒ ํ•œ ํ‚ค, ์‚ฌ์šฉ์ž ๋ฐ IP๋กœ SSH๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ssh -i ~/.vagrant.d/insecure_private_key [email protected]

^ ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

Docker ๋จธ์‹  ์ƒ์„ฑ

$ docker-machine create -d generic --generic-ssh-user vagrant --generic-ssh-key ~/.vagrant.d/insecure_private_key --generic-ip-address 192.168.50.4 repro

Importing SSH key...
Error creating machine: Maximum number of retries (60) exceeded
You will want to check the provider to make sure the machine and associated resources were properly removed.

๋„ˆํฌ๋“ค์€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋””๋ฒ„๊น…์— ๋„์›€์ด ๋ ๋งŒํ•œ ์‚ฌํ•ญ์ด ๋” ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. --url (๋“œ๋ผ์ด๋ฒ„ ์—†์Œ)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ :

  • OSX์˜ Docker Machine 0.5.1 (ํด๋ผ์ด์–ธํŠธ ์ธก)
  • Docker 1.9 (์›๊ฒฉ ์„œ๋ฒ„ ์ธก)
  • ์›๊ฒฉ ๋ฐ๋ชฌ ์‹œ์ž‘ :
--tlsverify -H=unix:///var/run/docker.sock -H=0.0.0.0:2376 --tlscacert=/root/.docker/ca.pem --tlscert=/root/.docker/cert.pem --tlskey=/root/.docker/key.pem
  • ~/.docker/machine/machines/mymachine/ ์„ค์น˜๋œ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ (ca, key, cert)

docker-machine env mymachine ์ž…๋ ฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "": open /Users/f2i/.docker/machine/machines/anakin/server.pem: no such file or directory
You can attempt to regenerate them using 'docker-machine regenerate-certs name'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

docker-machine ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค.

> docker --tlsverify -H=myhost:2376 ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS 

์ œ๋„ค๋ฆญ ( --driver "generic" --generic-ip-address ... ) ๊ณผ ๋“œ๋ผ์ด๋ฒ„ ์—†์Œ ( --driver "none" --url ...) ์˜ ์‹ค์ œ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
SSH๋ฅผ ํ†ตํ•ด ์ผ๋ฐ˜ ์—ฐ๊ฒฐ์„ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ (์›๊ฒฉ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Œ) TCP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค .

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉ server.pem ๋ฐ server-key.pem ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ธฐ๊ณ„๋กœ ๊ด€๋ฆฌํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๊ถŒ๋ฆฌ ?

๋งˆ์ง€๋ง‰ PEM ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋”๋ผ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "": crypto/tls: failed to parse private key
You can attempt to regenerate them using 'docker-machine regenerate-certs name'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

"๋“œ๋ผ์ด๋ฒ„ ์—†์Œ"์€ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๋“œ๋ผ์ด๋ฒ„์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ถฉ๋ถ„ํžˆ ํ•ดํ‚นํ•˜๋ฉด ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์ปดํ“จํ„ฐ๋ฅผ ๋“ฑ๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค (# 2437)์—์„œ ์ œ๊ฑฐ ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฌธ์„œ๋Š”์ด none ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•ด ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

generic ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์— docker๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์ตœ์†Œํ•œ ๋Œ€์ƒ ํ˜ธ์ŠคํŠธ์—์„œ docker ๋ฐ๋ชฌ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ssh ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ•œ '์ผ๋ฐ˜'๋จธ์‹ ์„ ๋„์ปค ๋จธ์‹ ์— ๋“ฑ๋กํ•˜๋Š” ์•ˆ์ •์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

@jeanlaurent generic ๋“œ๋ผ์ด๋ฒ„์˜ ๋ฌธ์ œ๋Š” docker๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ (์˜ˆ : ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ, yum update ์‹คํ–‰) ์ปดํ“จํ„ฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ค‘ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด none ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ตœ๊ณ  ์ˆ˜์ค€์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ท€์ค‘ํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (ํƒ€๊ฒŸ ๋“œ๋ผ์ด๋ฒ„์— ์ถ”๊ฐ€). .

์ด๊ฒƒ ์— ๋Œ€ํ•ด none ๋“œ๋ผ์ด๋ฒ„๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์›๊ฒฉ Docker API์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์„ test ๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ์œ ๊ฐ์ž…๋‹ˆ๋‹ค. Peraphs ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€์žˆ๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ƒˆ ๋จธ์‹  ( docker-machine create )์„ ์ƒ์„ฑ / ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๊ธฐ์กด ๋จธ์‹ ์—๋งŒ ์—ฐ๊ฒฐํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹ ์œผ๋กœ๋“  ๋„์ปค-๋จธ์‹ ์— ๊ธฐ์กด ๋จธ์‹ ์„ '๋“ฑ๋ก'ํ•  ์ˆ˜ ์—†์–ด์•ผํ•œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ ์ ˆํ•˜๊ฒŒํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋œ๋‹ค. none ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•ด ๋งŽ์€ ํ˜ผ๋™์ด ์žˆ์œผ๋ฉฐ ๋งŽ์€ ๊ณณ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ๋žŒ๋“ค์ด ์˜ค์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ์˜ ๋ชฉ์ ์€ ์‹ค์ œ register existing machine ๊ธฐ๋Šฅ์„์œ„ํ•œ ๊ธฐ๋ฐ˜์„ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‹œ์Šคํ…œ์ด none ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด docker-machine์— 'ํ•ดํ‚น'๋˜๋ฉด ์ฒด์ธ์„ ๋ฌด๋„ˆ ๋œจ๋ฆฌ๋Š” ๋งŽ์€ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค-> restart , upgrade , ssh ๋‹น์—ฐํžˆ none ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์‹ค์ œ๋กœ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ๋งŒ ํผ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

@metasim generic ๋“œ๋ผ์ด๋ฒ„๋ฅผ '๋จธ์‹ ์ด ์—‰๋ง์ด๋˜์ง€ ์•Š๋„๋ก'์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์€์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

@vpusher ์ ์ ˆํ•œ ๋“ฑ๋ก ๊ธฐ๋Šฅ์„ ์„ค๊ณ„ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@jeanlaurent ์‘๋‹ต generic ์„ (๋ฅผ) ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "๋ฌธ์ œ ๋ถ„๋ฆฌ"๋ผ๋Š” ์ •์‹ ์œผ๋กœ ์ƒˆ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค ( existing ?, preconfig ?, manual ?, diy ? :-))์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํŠนํžˆ์ด ์ข์€ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ ์•ˆ์ •์„ฑ์„ ๋” ์ž˜ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ. # 2260 ๋ฐ # 2269 (ํ์‡„๋˜์—ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ํ•ด๊ฒฐ๋˜์ง€๋Š” ์•Š์Œ)๋Š” none ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ํ˜ผ๋ž€์„ ํฌ์ฐฉํ•˜๋ ค๋Š” ์‹œ๋„์˜€์Šต๋‹ˆ๋‹ค.

์ถ”์‹  :์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์ผ๋ถ€ ๋ช…๋ น์ด ๋ช…์‹œ ์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ „์ ์œผ๋กœ ํ—ˆ์šฉ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : restart , upgrade ๋“ฑ).

@metasim Yup ์ „์šฉ ๋“œ๋ผ์ด๋ฒ„๋Š” ์‹ค์ œ๋กœ ๋ ˆ์ง€์Šคํ„ฐ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ• ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์œ ์ผํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ „์šฉ ๋ช…๋ น์€ ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ์ „์—, ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ docker-machine docker๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์ƒˆ ๋จธ์‹ ์„ ๋“ฑ๋กํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ช…ํ™•ํžˆ / ์ •์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด PR # 2442๋ฅผ ์‚ดํŽด๋ณด๋ฉด docker ๋ฒ„์ „์— ๋Œ€ํ•œ docker ํ˜ธ์ŠคํŠธ๋ฅผ pingํ•ฉ๋‹ˆ๋‹ค. ์–ด๋Š ์‹œ์ ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜๊ฑฐ๋‚˜ Docker ํ˜ธ์ŠคํŠธ๊ฐ€ ํ˜„์žฌ Docker ํด๋ผ์ด์–ธํŠธ์— ๋น„ํ•ด ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ์Œ์„ ๊ฒฝ๊ณ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋„์ปค ๋ฐ๋ชฌ์„ ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๋จธ์‹ ์—์„œ๋Š” ์ด๊ฒƒ์€ ์–ด๋ ต๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ๋งค์šฐ ๋ถˆ์•ˆ์ •ํ•œ ๊ฒƒ์œผ๋กœ ํŒ๋ช… ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋ฌด์—‡ ๋‹น์‹ ์ด์•ผ ? ๊ทธ๋“ค์„ ๋‚˜์—ดํ•ฉ์‹œ๋‹ค.

none ๋Œ€ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€ ์ •์˜ ๋ฐ / ๋˜๋Š” ์ž ์žฌ์ ์œผ๋กœ ํ๊ธฐ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์„ค๋ช… : https://github.com/docker/machine/pull/2437#issuecomment -160768813

๋‚ด ๋Š๋‚Œ์€ ์šฐ๋ฆฌ (๊ธฐ๊ณ„ ํŒ€)๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ๊ธฐ๋Šฅ ์ค‘๋‹จ์— ๋Œ€ํ•œ Docker์˜ ๊ธฐ์กด ์ง€์นจ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค (2 ๊ฐœ ๋ฆด๋ฆฌ์Šค์ฃผ๊ธฐ ์ด์ƒ ์ค‘๋‹จ๋จ).
  • ๋”ฐ๋ผ์„œ none ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด 0.7.0๊นŒ์ง€ ์™„์ „ํžˆ ์ œ๊ฑฐ ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋™์•ˆ none ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด์˜ ํ‘œ์‹œ ์ค‘๋‹จ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ด์ƒ์ ์ธ ํ–ฅํ›„ ์›Œํฌ ํ”Œ๋กœ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค ( import / register ๋˜๋Š” generic ๋“œ๋ผ์ด๋ฒ„) ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ํŒŒ์ดํ”„ ์•„๋ž˜๋กœ ๋‚ด๋ ค ์˜ค๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ค€๋น„ ํ•  ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@dgageot @jeanlaurent ์–ด๋–ป๊ฒŒ ๋“ค๋ฆฌ๋‚˜์š”?

@jeanlaurent ๋‚˜๋Š” ssh ๊ฐ€ ๊ฝค ๋งŽ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ชจ๋“  ๊ฒƒ์ด REST API๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

docker ๊ฐ€ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๋„๊ตฌ๋กœ docker-machine ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. upgrade / restart ๋“ฑ์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด Docker ํ˜ธ์ŠคํŠธ๋Š” vOrchestrator ์›Œํฌ ํ”Œ๋กœ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ ๋œ ์‚ฌ์šฉ์ž ์ง€์ • ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ vSphere์— ์žˆ์Šต๋‹ˆ๋‹ค. docker-machine์—์„œ vSphere ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ฆ‰, ๋‚ด ์œ ์Šค ์ผ€์ด์Šค๊ฐ€ ์œ ์ผํ•œ ์œ ์Šค ์ผ€์ด์Šค๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ ์–ด๋„ ๊ณ ๋ คํ•  ๊ฒƒ์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ ์–ด๋„ ๋‚ด ๋ชฉ์ ์„ ์œ„ํ•ด docker-machine ๋ฅผ ์‰˜ ๋ณ„์นญ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋„์›€์ด๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ƒ˜ํ”Œ ์‚ฌ์šฉ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

elasticbeanstalk์—๋Š” ๋งŽ์€ ์žฅ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— docker-machine ๋Œ€์‹  elasticbeanstalk๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Amazon์—์„œ ec2 ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค (์ž๋™ ํ™•์žฅ ๋ฐ ์ปดํ“จํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘๊ณผ ๊ฐ™์€). ๋‚˜๋Š” ๊ทธ๊ฒƒ๋“ค์„ docker-machine์— ๋“ฑ๋กํ•˜๊ณ  docker-swarm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์–ดํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

Docker 1.9๋ฅผ ๊ฐ–๋„๋ก ํ•ด๋‹น ๋จธ์‹ ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ด์ง€๋งŒ ์ผ๋ถ€ ์•„๋งˆ์กด ๋ฆฌ๋ˆ…์Šค (๊ณ ๋Œ€ centos ํฌํฌ)๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ผ๋ฐ˜์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋„์ปค ์—”์ง„์—๋Š” tl์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ๋„์ปค๋กœ ์›๊ฒฉ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํŠธ๋ฆญ์€ socat์„ ์‚ฌ์šฉํ•˜์—ฌ localhost : 2375์— docker.sock์„ ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (https://github.com/sequenceiq/docker- socat) ssh -i id_rsa [email protected] -L 2375 : localhost : 2375 -N๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ssh ํ„ฐ๋„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ docker --tls = false -H tcp : // localhost : 2375๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŽ์€ ์ฒด์กฐ์ž…๋‹ˆ๋‹ค. ssh ์•ก์„ธ์Šค์™€ ์ž‘๋™ํ•˜๋Š” ๋„์ปค ์„ค์ • (ssl ์—†์ด๋„)์˜ ์กฐํ•ฉ์€ ๋งŽ์€ ํฅ๋ฏธ๋กœ์šด ๊ฒฝ์šฐ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋„์ปค ๋จธ์‹ ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค (์—…๊ทธ๋ ˆ์ด๋“œ ์—†์Œ, ๋‹ค๋ฅธ ์•Œ๋ฆผ๊ณผ ๊ฐ™์ด ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€๋งŒ ์–ด์จŒ๋“  ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).

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

@bonitao ์ฒ ์ž๋ฅผ

๊ธฐ์กด ํ˜ธ์ŠคํŠธ์™€ ํ•จ๊ป˜ Docker ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... none ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•œ @metasim ๋ฌธ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค ... generic ์ดํ›„ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. none ์„ (๋ฅผ) test ๋กœ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ์ œ์•ˆ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ์ž‘์—…ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. @nathanleclaire generic ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์„ค๋ช… ๋œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ ???

https://github.com/docker/machine/issues/2628 ์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๊ณ  ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค ... docker๋กœ ํšŒ์‚ฌ ์ „์ฒด์˜ ๊ธฐ์กด ํŒ€ ์ง€์› ...

๋‚˜๋Š” ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋งŒ๋“  CI ์„œ๋ฒ„์—์„œ ํ•˜๋Š˜์ƒ‰ ๋„์ปค ๋จธ์‹ ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋‚ด๋ ค๊ณ  ์ดํ•ด๊ฐ€ ์™„์ „ํžˆ ๋ˆ„๋ฝ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ๋๋‚ฌ๊ณ  ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค (ํ•ด์ปค ์—†์ด๋Š”).

Azure Docker ๋จธ์‹  ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์›Œํฌ ์Šคํ…Œ์ด์…˜์—์„œ ์™„์ „ํžˆ ๊ฐ€๋™ํ•˜๊ณ  ์‹คํ–‰ํ–ˆ์œผ๋ฉฐ ์—ฌ๋Ÿฌ CI ์Šฌ๋ ˆ์ด๋ธŒ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” CI ์Šคํฌ๋ฆฝํŠธ์—์„œ์ด๋ฅผ ์ œ์–ดํ•˜๊ณ  ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ฌ์„ฑ๋˜์–ด์•ผํ•˜๋Š” ๊ณต์‹์ ์ธ ๋ฐฉ๋ฒ•์ด ์ •๋ง๋กœ ์—†์Šต๋‹ˆ๊นŒ?

Docker๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ์ด์ œ ๋” ์ด์ƒ ์ด์ „ docker-machine ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์–ป๋‹ค

Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "xxxxx:2376": open : no such file or directory
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

regeenrate-certs ๋ช…๋ น์„ ํ†ตํ•ด

Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Detecting the provisioner...
Installing Docker...
Copying certs to the local machine directory...
Copying ca.pem to machine dir failed: open : no such file or directory

์žฌ๋ฏธ์žˆ๋Š” ๊ฒƒ์€ ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

docker-machine ssh

์•„๋ฌด ๋ฌธ์ œ์—†์ด ..

์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์‹œ๋‚˜๋ฆฌ์˜ค : Docker ๋ฐ TLS๊ฐ€ ํ™œ์„ฑํ™” ๋œ ๊ธฐ์กด ๋ฐ ์ž‘์—… ์„œ๋ฒ„.

docker-machine์— ๊ธฐ์กด ์„œ๋ฒ„ / ๋จธ์‹ ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

docker-machine --tls-ca-cert path/to/ca.pem --tls-ca-key path/to/ca-key.pem --tls-client-cert path/to/client.pem --tls-client-key path/to/client-key.pem create --driver none --url tcp://HOST:2376 NAME

์‚ฌ์šฉ์ž ๋””๋ ‰ํ† ๋ฆฌ (~ / .docker / machine / machines / NAME)์—์„œ "cert.pem"๋ฐ "server.pem"๊ณผ ๋™์ผํ•œ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  "key.pem"๋ฐ "server-key์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. pem "๋„ ๊ด€๋ จ SSH ์„ค์ •์„ ํฌํ•จํ•˜๋„๋ก config.json์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ตœ๊ทผ์— ์ด๊ฒƒ์„ ์ž‘๋™ํ–ˆ๊ณ  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ฐธ์กฐํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์—ฌ๊ธฐ (https://sreeninet.wordpress.com/2015/05/31/docker-machine/)์— ์ง€์นจ์„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://github.com/docker/machine/issues/3344#issuecomment -212536797

@devcrust ์ •ํ™•ํžˆ ์–ด๋””์—

path/to/ca.pem
path/to/ca-key.pem
path/to/client.pem
path/to/client-key.pem

???

$ ls certs/
ca-key.pem  ca.pem  cert.pem  key.pem
$ ls machines/adhoc/
ca.pem  cert.pem  config.json  id_rsa  id_rsa.pub  key.pem  server-key.pem  server.pem

์ œ๋Œ€๋กœ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Copying ca.pem to machine dir failed: open : no such file or directory

0.6.0 ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ .... 12 ๋Œ€์˜ ์ปดํ“จํ„ฐ์— ๋Œ€ํ•œ TCP ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค.

@nathanleclaire ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? docker-machine ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ๋งŒ๋“  Microsoft Azure์—์„œ ์‹คํ–‰์ค‘์ธ Docker ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋‚ด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์†”๋ฃจ์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜ : _ (์›ํ•˜๋Š”) _

docker-machine add <๐Ÿ–ฅ๏ธ ์ด๋ฆ„> --driver <โ˜๏ธ๏ธ ๊ณต๊ธ‰์ž ๋“œ๋ผ์ด๋ฒ„>

๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์ด ์ง€๋‚ฌ๊ณ  ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๊ธฐ๋Šฅ์ด ๋„์ž…๋˜์ง€ ์•Š์•„์„œ ๋„ˆ๋ฌด ์Šฌํ”„๋‹ค.

๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋จธ์‹ ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์‹œ ์‹œ์ž‘ ์ถ”๊ฐ€ : ํ•ญ์ƒ ์ปจํ…Œ์ด๋„ˆ์— ์žˆ์œผ๋ฉด ์ค‘์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ docker-machine ์ถ”๊ฐ€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ docker-machine ์ถ”๊ฐ€ ์˜ต์…˜์„ ๊ฐ–๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋จธ์‹  ๊ณต์œ ์— ๋Œ€ํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ€์ง„ ๋‘ ๊ฐ€์ง€ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ

๋ฌด์—‡ ๋‹น์‹ ์ด์•ผ ? ๊ทธ๋“ค์„ ๋‚˜์—ดํ•ฉ์‹œ๋‹ค.

๋‚ด ์ƒ๊ฐ์€ ์ปจํ…Œ์ด๋„ˆ ๋ถ€ํ•˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ƒํƒœ์—์„œ ๋กœ์ปฌ ์ปดํ“จํ„ฐ๋ฅผ ๊ธฐ์กด ๋ฌผ๋ฆฌ์  ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ docker-machine create --driver generic ๋Œ€๋ถ€๋ถ„์„ ์ค‘์ง€ ํ•œ ๊ฒƒ ๋ณด๋‹ค . ๋„์ปค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค ...

๊ธ€์Ž„, ๋‚˜๋Š” ๋‹จ์ˆœํžˆ ssh๋ฅผ ํ†ตํ•ด ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„ค๋ช…์—์„œ docker-machine ๋„ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ปดํ“จํ„ฐ์—์„œ VM์„ ๋งŒ๋“ค๊ณ  ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ๊ด€๋ฆฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ. ๋˜๋Š” ๋กœ์ปฌ OS๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” VM์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์œ„์ž„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ถ”์‹  : Docker๋กœ ์ฒซ ๊ฑธ์Œ์„ ๋‚ด๋”›๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ˆ„๋ฝ ๋œ ์ ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ...

@ x-yuri ์‹œ์Šคํ…œ์„ ์ˆ˜๋™์œผ๋กœ "์ƒ์„ฑ"ํ•˜๋ ค๋ฉด .docker/machine/machines ์—์„œ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ณ  ๊ฒฝ๋กœ๋ฅผ ์กฐ์ •ํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

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