06G. Docker ์์์ Docker ์คํํ๊ธฐ
06G. Docker ์์์ Docker ์คํํ๊ธฐ ๊ด๋ จ
Docker ์ปจํ ์ด๋ ์์์ Docker๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ณต์กํ๊ฒ ์ Docker ์ปจํ ์ด๋ ์์์ Docker๋ฅผ ์คํํ ๊น์? ๋ณดํต Jenkins ๋ฑ์ CI/CD ๋น๋ ์๋ํ ์์คํ ์ ์ด์ฉํด์ Docker ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋ ํ์ฉํ ์ ์์ต๋๋ค. CI/CD ํ๊ฒฝ ์์ฒด๋ Docker ์ด๋ฏธ์ง๋ก ๋ง๋ค์๋ค๋ฉด Docker ์ปจํ ์ด๋ ์์์ Docker๋ฅผ ์คํํ ์ ์์ด์ผ ํฉ๋๋ค.
๋จผ์ docker:dind
์ด๋ฏธ์ง๋ก Docker ์๋ฒ๋ฅผ ์คํํฉ๋๋ค.
sudo docker network create dind-network
sudo docker volume create docker-certs-ca
sudo docker volume create docker-certs-client
sudo docker run --privileged --name dind-docker -d \
--network dind-network --network-alias docker \
-e DOCKER_TLS_CERTDIR=/certs \
-v docker-certs-ca:/certs/ca \
-v docker-certs-client:/certs/client \
docker:dind
์ฌ๊ธฐ์ --privileged
์ต์
์ด ์ค์ํฉ๋๋ค. ์ด ์ต์
์ ์ปจํ
์ด๋ ์์์ ํธ์คํธ์ ๋ฆฌ๋
์ค ์ปค๋ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋๋ค.
๋ค์ ๋ช ๋ น์ ์คํํ์ฌ docker ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค.
sudo docker run -i -t --rm --network dind-network \
-e DOCKER_TLS_CERTDIR=/certs \
-v docker-certs-client:/certs/client:ro \
docker:latest sh
์ด์ Docker ์ปจํ
์ด๋ ์์์ Docker๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค. ๋ค์ ๋ช
๋ น์ ์
๋ ฅํ์ฌ busybox
๋ฅผ ์คํํด๋ด
๋๋ค.
docker run -i -t busybox:latest /bin/sh
#
# Unable to find image 'busybox:latest' locally
# latest: Pulling from library/busybox
# f5b7ce95afea: Pull complete
# Digest: sha256:9810966b5f712084ea05bf28fc8ba2c8fb110baa2531a10e2da52c1efc504698
# Status: Downloaded newer image for busybox:latest
์ด๋ ๊ฒ ํธ์คํธ โ docker
์ปจํ
์ด๋ โ busybox
์ปจํ
์ด๋ ์์๋ก ์คํ์ด ๋์์ต๋๋ค.