반응형
컨테이너 내부에서 도커를 사용하는 방법
Jenkins 이미지를 이용하여 파이프라인을 구현하려고 했으나 젠킨스를 실행시키는 컨테이너 내부에서 도커 명령어를 사용할 수 없다는 문제가 있었습니다.
도커 컨테이너 내부에서 도커를 실행히키는 방법은 크게 두 가지가 있습니다.
Docker in Docker (DinD 방법)
도커 컨테이너 내부에 도커를 설치하는 방법입니다.
실제로 도커 데몬을 실행시켜야 하기 때문에 권한을 설정해주어야 합니다.
자세한 사항은 아래 링크를 참고해주세요!
https://sreeninet.wordpress.com/2016/12/23/docker-in-docker-and-play-with-docker/
Docker out of Docker (DooD 방법)
도커 컨테이너 내부에 도커를 설치하는 방식이 아닌 해당 컨테이너를 실행중인 호스트의 도커 데몬을 사용하여 도커를 실행시키는 방법입니다.
도커 컨테이너 내부에서 도커 명령어를 실행시키기 위하여 도커 컨테이너내부에 Docker.sock을 볼륨 설정을 해주어야 합니다.
docker run -d -p 8080:8080 --name <컨테이너명> -v /var/run/docker.sock:/var/run/docker.sock <이미지명>
이렇게 해줌으로써 도커 컨테이너 내부에서 docker 명령어를 입력시 외부 호스트의 도커 데몬에게 도커 명령이 전달되게 됩니다.
apt-get update
apt-get -y install lsb-release apt-transport-https ca-certificates curl gnupg2 software-properties-common
apt-get -y upgrade apt-transport-https
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey
apt-key add /tmp/dkey
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
apt-get update
apt-get -y install docker-ce docker-ce-cli containerd.io
위의 사항들을 설치해주면 컨테이너 내부에서 docker 명령어를 사용할 수 있게 됩니다.
반응형
'데브옵스' 카테고리의 다른 글
[Jenkins] 젠킨스 빌드할 때 필요한 파일 미리 넣어두기 (0) | 2024.02.17 |
---|---|
[Jenkins] Jenkinsfile을 통해서 파이프라인 실행 (0) | 2024.02.16 |
윈도우에 우분투 설치 (1) | 2024.02.15 |
[NCP] NCP 쿠버네티스 클러스터 사용법 (1) | 2023.11.13 |
젠킨스를 이용한 간단한 파이프라인 구성 (0) | 2023.11.04 |