현대적인 개발 환경에서 형상 관리 도구는 필수입니다. 그중 GitLab은 코드 관리뿐만 아니라 CI/CD, 이슈 트래킹까지 지원하는 강력한 올인원 플랫폼입니다. 하지만 복잡한 의존성 때문에 직접 설치(Native Install)는 매우 까다롭습니다.
Docker를 사용하면 환경 격리를 통해 충돌을 방지하고, 명령어 한 줄로 동일한 환경을 재현할 수 있습니다. 본 칼럼에서는 가장 효율적이고 유지보수가 용이한 Docker 기반의 GitLab 구축 프로세스를 다룹니다.
📑 목차
-
사전 준비 사항 (System Requirements)
-
Docker Compose를 이용한 설치 (권장 방식)
-
GitLab 컨테이너 실행 및 핵심 설정 설명
-
초기 비밀번호 확인 및 접속 방법
-
유지보수를 위한 백업 및 업데이트 팁
🛠️ 본문
1. 사전 준비 사항
GitLab은 리소스를 제법 많이 사용하는 애플리케이션입니다. 원활한 구동을 위해 최소 사양을 확인하세요.
-
CPU: 최소 4코어 권장
-
RAM: 최소 4GB (8GB 이상 권장)
-
OS: Docker 및 Docker Compose가 설치된 Linux/macOS/Windows
2. Docker Compose 설정 (Best Practice)
단일 docker run 명령어도 가능하지만, 설정값 관리가 용이한 Docker Compose 방식을 권장합니다.
먼저, 작업을 위한 디렉토리를 생성합니다.
mkdir -p ~/gitlab-docker && cd ~/gitlab-docker
그다음 docker-compose.yml 파일을 생성하고 아래 내용을 작성합니다.
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ee:latest' # Enterprise Edition (무료 사용 가능)
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://<서버-IP-또는-도메인>'
# SSH 포트 변경 시 아래 설정 활성화
# gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
shm_size: '256m'
3. 컨테이너 실행 및 설정 포인트
파일 작성이 완료되었다면 다음 명령어로 컨테이너를 실행합니다.
docker-compose up -d
-
Volumes (볼륨): 설정, 로그, 데이터를 호스트 디렉토리에 저장하여 컨테이너가 삭제되어도 데이터가 유지되도록 합니다.
-
External URL: 접속할 도메인이나 IP를 명시해야 내부 링크들이 정상적으로 생성됩니다.
-
Shm_size: 공유 메모리 크기를 지정하여 데이터베이스 관련 성능 저하를 방지합니다.
4. 초기 관리자(root) 비밀번호 확인
최신 버전의 GitLab은 보안을 위해 초기 비밀번호를 파일로 별도 저장합니다. 아래 명령어로 비밀번호를 확인하세요.
docker exec -it <컨테이너_ID> grep 'Password:' /etc/gitlab/initial_root_password
주의: 이 파일은 설치 후 24시간이 지나면 자동으로 삭제되므로 로그인 직후 반드시 비밀번호를 변경하십시오.
🏁 결론: 핵심 요약 및 제언

GitLab을 Docker로 구동하는 과정은 크게 환경 설정(YAML) -> 실행 -> 초기 비번 확인의 3단계로 요약됩니다.
-
Docker Compose를 사용하면 설정 관리가 직관적이며 추후 마이그레이션이 매우 쉽습니다.
-
데이터 유실 방지를 위해 반드시 볼륨 마운트(/etc, /var/log, /var/opt) 설정을 확인하십시오.
-
원활한 환경을 위해 최소 4GB 이상의 RAM 확보가 필수적입니다.
함께 읽어볼 만한 주제:
-
“Let’s Encrypt를 활용한 GitLab HTTPS 보안 설정법”
-
“GitLab Runner를 활용한 Docker 이미지 빌드 자동화(CI/CD)”