Machine: ์ œ์•ˆ: `docker-machine exec` ์ถ”๊ฐ€

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

์ด๋“ค์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ

docker-machine exec mymachine docker images
docker-machine exec mymachine ./my-docker-wrapper.sh

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

์ด๊ฒƒ์ด ์ด๋ฏธ ssh ๊ฐ€ ํ•˜๋Š” ์ผ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๋‚˜์š”?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

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

์ด๊ฒƒ์ด ์ด๋ฏธ ssh ๊ฐ€ ํ•˜๋Š” ์ผ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๋‚˜์š”?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋„์ปค ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ณ  ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๋„์ปค ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์™€ ํ†ต์‹ ํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ๊ฐ„๋‹จํ•œ ๋ฒ„์ „

bash -c "eval $(docker-machine env mymachine);
docker images
"

๋‚˜๋Š” ๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ ์…ธ์—์„œ ๋‚ด ํ™˜๊ฒฝ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋‚ด๊ฐ€ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ์„ ๊ณ„์† ์žŠ๊ณ  ์žˆ๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋„์ปค๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ณ  ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ธˆ ์žฅํ™ฉํ•˜์ง€๋งŒ ๋จธ์‹ ์—์„œ ์ผํšŒ์„ฑ ๋„์ปค ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ docker-machine config ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ง€์ •๋œ ๋จธ์‹ ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์˜ฌ๋ฐ”๋ฅธ docker ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

$ docker $(docker-machine config name) info

์ž…๋ ฅํ•˜๊ธฐ์— ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•ฝ๊ฐ„์˜ ์‰˜ ๋ณ„์นญ์„ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

dkrm () {
    docker $(docker-machine config $1) "${@:2}"
}

์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์ง€์ •๋œ ์‹œ์Šคํ…œ์—์„œ Docker ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ๋‚˜๋จธ์ง€๋ฅผ Docker ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•:

$ dkrm devbox ps
... some containers on the machine "devbox"
$ dkrm staging ps
...some containers on the machine "staging"

๊ทธ๊ฒŒ ๋„์›€์ด ๋˜๋‚˜์š”?

๊ทธ ๋ช…๋ น์„ ๋ชฐ๋ž๋Š”๋ฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์ง€๋งŒ exec ๋ช…๋ น๋งŒํผ ํˆฌ๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด docker-compose, fig ๋˜๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ž˜ํผ ์Šคํฌ๋ฆฝํŠธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ์—์„œ Dockerfile์„ ๋นŒ๋“œํ•˜๊ณ  docker build - ๋ฅผ ํ†ตํ•ด ๊ณต๊ธ‰ํ•˜๋Š” ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

DOCKER="docker $(docker-machine config mymachine)" ./build.sh ์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ์— : ${DOCKER:=docker} ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž‘๋™ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ docker-compose์— ๋Œ€ํ•ด์„œ๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ, docker-compose ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ ์ ˆํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

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