성장일지 10차

이태형·2025년 1월 27일

Growth Log

목록 보기
10/18
post-thumbnail

토이 프로젝트를 CI/CD 구축하기 위해 jenkins 로 구축을 진행중이다가 중간 정리한 내용

docker compose

  • Docker 컨테이너를 정의하고 실행하는 데 사용되는 도구
  • 여러 개의 컨테이너를 하나의 애플리케이션 스택처럼 정의하고 관리할 수 있도록 도움
  • 마이크로서비스 아키텍처와 같이 여러 개의 컨테이너가 상호작용해야 하는 환경에서 유용

주요 특징

  • 멀티 컨테이너 관리
    • 여러 컨테이너를 하나의 설정 파일로 정의하여 동시에 실행, 중지, 관리 가능
  • 간단한 설정
    • docker-compose.yml 파일을 사용해 컨테이너 설정을 선언적으로 정의
  • 종속성 관리
    • 컨테이너 간의 종속성을 정의하고 관리
  • 환경 간의 일관성
    • 로컬 개발, 테스트, 프로덕션 환경에서 동일한 설정 사용 가능

docker run 과 docker compose up 차이점

docker run

  • 단일 컨테이너 실행, 모든 설정(포트, 볼륨, 환경 변수 등) 을 명령어에 명시적으로 작성
  • 직접 실행
    • 명령어로 즉시 컨테이너를 실행
  • 구성 관리 어려움
    • 설정을 재사용하려면 동일한 명령어를 반복적으로 입력하거나 스크립트로 관리
  • 단일 컨테이너 중심
    • 여러 컨테이너를 실행하거나 서로 연결하려면 추가 작업이 필요
  • 장점
    • 간단한 테스트나 빠른 실행에 유용
    • 설정 파일 없이 바로 컨테이너 실행 가능
  • 단점
    • 복잡한 설정 관리 어려움
    • 여러 컨테이너 간 네트워크와 종속성 관리가 번거로움
docker run -d -p 8080:8080 -p 50000:50000 \
-v /jenkins:/var/jenkins \
-v /home/ubuntu/.ssh:/root/.ssh \
-v /var/run/docker.sock:/var/run/docker.sock \
--name jenkins \
-u root \
jenkins/jenkins:lts

docker compose up

  • docker-compose.yml 파일 기반으로 여러 컨테이너를 실행하고 관리
  • 구성 파일 기반 실행
    • 설정을 YAML 파일로 작성하고, 이를 기반으로 컨테이너 실행
  • 복잡한 설정 관리 용이
    • 여러 컨테이너, 네트워크, 볼륨 등을 손쉽게 정의
  • 재사용성
    • 설정 파일이 있기 때문에 쉽게 수정, 공유, 재사용 가능
  • 장점
    • 여러 컨테이너를 효율적으로 실행하고 관리
    • 서비스 간 네트워크 및 종속성 자동으로 관리
    • 설정 변경이 쉽고 파일 형태 버전 관리 가능
  • 단점
    - 초기 설정 파일 작성이 필요
    - 단순 테스트에는 오히려 복잡해질 수 있음
    services:
     jenkins:
       image: jenkins/jenkins:lts
       container_name: jenkins
       ports:
         - "8080:8080"
         - "50000:50000"
       volumes:
         - /jenkins:/var/jenkins
         - /home/ubuntu/.ssh:/root/.ssh
         - /var/run/docker.sock:/var/run/docker.sock
       user: root

위 docker-compose.yml 파일로 jenkins 를 실행했지만 권한 문제인지 jenkins 접속이 안됨...

0개의 댓글