์ด๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค. ์
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"
์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
๋์ปค ํธ์คํธ์์ ์คํํ๊ณ ์ถ์ง ์๊ณ ๋ก์ปฌ์์ ์คํํ๊ณ ์ถ์ง๋ง ๋์ปค ์ค์ ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ ํธ์คํธ์ ํต์ ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๊ฐ๋จํ ๋ฒ์
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
๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ ์ ํ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ด ์ด๋ฏธ
ssh
๊ฐ ํ๋ ์ผ์ฒ๋ผ ๋ค๋ฆฌ๋์?์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?