반응형
Jenkins 컨테이너에서 Docker를 실행하기 위해 Docker 이미지를 만들기(Jenkins in Docker)
- 도커 버전 확인
- 현재 설치된 도커 버전을 확인합니다. BuildKit은 Docker 18.09 버전 이상에서 지원됩니다.
docker version
$ docker version
Client:
Cloud integration: v1.0.35+desktop.5
Version: 24.0.6
API version: 1.43
Go version: go1.20.7
Git commit: ed223bc
Built: Mon Sep 4 12:28:49 2023
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.25.2 (129061)
Engine:
Version: 24.0.6
API version: 1.43 (minimum version 1.12)
Go version: go1.20.7
Git commit: 1a79695
Built: Mon Sep 4 12:31:36 2023
OS/Arch: linux/arm64
Experimental: true
containerd:
Version: 1.6.22
GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca
runc:
Version: 1.1.8
GitCommit: v1.1.8-0-g82f18fe
docker-init:
Version: 0.19.0
GitCommit: de40ad0
- BuildKit 활성화 확인
- 현재 시스템에서 BuildKit이 활성화되어 있는지 확인합니다.
docker buildx version
$ docker buildx version
github.com/docker/buildx v0.11.2-desktop.5 f20ec1393426619870066baba9618cf999063886
- DOCKER_BUILDKIT 환경 변수 확인
- 환경 변수가 설정되어 있는지 확인합니다.
- BuildKit을 사용하려면 $DOCKER_BUILDKIT 환경 변수는 1로 설정되어야 합니다.
echo $DOCKER_BUILDKIT
- BuildKit을 사용하여 빌드
- BuildKit을 사용하여 빌드합니다.
DOCKER_BUILDKIT=1 docker build -t your_image_name:tag .
728x90
- Dockerfile 생성
- Dockerfile을 생성합니다. 이 파일에는 Jenkins를 실행하기 위한 설정이 포함됩니다.
vim Dockerfile
### Docker-in-Docker
FROM jenkins/jenkins:lts
USER root
RUN apt-get update -qq \
&& apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update -qq \
&& apt-get -y install docker-ce \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN usermod -aG docker jenkins
- Docker CLI 플러그인 설치
docker buildx create --use
- Buildx로 다중 플랫폼 이미지 빌드 후 도커 허브에 이미지 업로드 (PUSH)
docker buildx build --platform linux/amd64,linux/arm64 -t anti1346/jenkinsindocker:latest --no-cache --push .
- 도커 허브에서 이미지 다운로드 (PULL)
docker pull anti1346/jenkinsindocker:latest
- 다중 플랫폼 이미지 정보 확인
docker inspect anti1346/jenkinsindocker:latest --format='{{.Architecture}}'
$ docker inspect anti1346/jenkinsindocker:latest --format='{{.Architecture}}'
arm64
$ docker inspect anti1346/jenkinsindocker:latest --format='{{.Architecture}}'
amd64
- Docker 이미지 실행
- 빌드한 Docker 이미지를 사용하여 Jenkins 컨테이너를 실행합니다.
docker run -p 8080:8080 -p 50000:50000 --name jenkins -d anti1346/jenkinsindocker:latest
위 명령어는 호스트의 8080 포트와 50000 포트를 Jenkins 컨테이너에 매핑하며 jenkins는 컨테이너의 이름입니다. 필요에 따라 포트나 컨테이너 이름을 변경할 수 있습니다.
728x90
반응형
'리눅스' 카테고리의 다른 글
우분투에서 lsyncd를 사용하여 디렉토리 간에 변경 사항을 실시간으로 동기화하는 방법 (0) | 2023.12.01 |
---|---|
rev 명령어 (0) | 2023.11.29 |
Docker Compose를 사용하여 Jenkins를 설치하고 실행하는 방법 (0) | 2023.11.25 |
우분투에서 Redis를 소스 코드로 컴파일하고 설치하는 방법 (0) | 2023.11.24 |
Java 프로세스의 메모리 사용량을 확인하는 방법 (0) | 2023.11.20 |