Docker Compose로 GitLab Runner 설치 및 실행하기
GitLab Runner 설치 디렉터리 생성
mkdir gitlab-runner
cd gitlab-runner
docker-compose.yml 작성
cat <<EOF > docker-compose.yml
version: '3.8'
services:
gitlab-runner:
image: gitlab/gitlab-runner:latest
restart: unless-stopped
container_name: gitlab-runner
hostname: gitlab-runner
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
- ./config:/etc/gitlab-runner
EOF
설정 설명
- gitlab/gitlab-runner:latest → GitLab Runner 공식 이미지
- /var/run/docker.sock → Docker executor 사용을 위한 필수 설정
- ./config:/etc/gitlab-runner → Runner 설정(config.toml) 영구 보존
GitLab Runner 컨테이너 실행
Docker Compose를 이용해 GitLab Runner 컨테이너를 실행합니다.
docker-compose up -d
[+] Running 4/4
⠿ gitlab-runner Pulled 64.9s
⠿ 4d32b49e2995 Pull complete 12.3s
⠿ 617ef4a56299 Pull complete 58.4s
⠿ 797d26c5d28d Pull complete 58.8s
[+] Running 2/2
⠿ Network docker-gitlab-runner_default Created 0.4s
⠿ Container gitlab-runner Started 13.6s
컨테이너 상태 확인
docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
gitlab-runner "/usr/bin/dumb-init …" gitlab-runner running
GitLab Runner 등록(Register)
GitLab에서 Runner 토큰 확인
- 프로젝트 > 설정 > CI/CD > Runners 섹션

Runner 컨테이너 접속
docker-compose exec gitlab-runner bash
gitlab-runner register 실행
- 컨테이너 내부에서 Runner 등록을 진행합니다.
gitlab-runner register
Runtime platform arch=amd64 os=linux pid=25 revision=bd40e3da version=14.9.1
Running in system-mode.
Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.scbyun.com/
Enter the registration token:
GxxxxxxxxxxxxxxxxxxxxxxxxxxxN
Enter a description for the runner:
[acd54bbc5de3]: runner01
Enter tags for the runner (comma-separated):
runner
Registering runner... succeeded runner=GR134894
Enter an executor: custom, docker, docker-ssh, parallels, kubernetes, shell, ssh, virtualbox, docker+machine, docker-ssh+machine:
docker
Enter the default Docker image (for example, ruby:2.7):
alpine:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Runner 설정 파일 확인
Runner 등록 후 config.toml 파일이 자동 생성됩니다.
cat config/config.toml
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "runner01"
url = "https://gitlab.scbyun.com/"
token = "bRCWvXqMVcR6KWUFp-Sr"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "alpine:latest"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
설정 설명
- executor = "docker" → Docker 기반 CI 실행
- image = "alpine:latest" → CI Job 기본 이미지
- volumes = ["/cache"] → CI 캐시 디렉터리
GitLab UI에서 Runner 상태 확인
GitLab 프로젝트의 CI/CD > Runners 메뉴에서 등록한 Runner가 Active 상태로 표시되면 정상적으로 연결된 것입니다.

마무리
이제 GitLab Runner가 정상적으로 구성되었으며 .gitlab-ci.yml 파일을 통해 CI/CD 파이프라인을 실행할 수 있습니다.
- Docker-in-Docker(privileged = true) 설정
- 특정 프로젝트 전용 Runner 구성
- 태그 기반 Runner 분리 운영
등을 확장해 볼 수 있습니다.
'리눅스' 카테고리의 다른 글
| [draft] 리눅스에서 기본 게이트웨이를 사용하는 로컬 IP 주소 확인하기 (0) | 2026.01.26 |
|---|---|
| [draft] BASH 셸에서 기본 셸 변수의 값을 설정하는 방법 (0) | 2026.01.26 |
| [draft] 주요 SQL과 NoSQL 데이터베이스 유형 및 특징 (0) | 2026.01.26 |
| [draft] Squid를 Docker 컨테이너로 실행하는 방법 (0) | 2026.01.26 |
| [draft] MySQL 서버에서 UUID 확인하는 방법 (0) | 2026.01.26 |