숨밈
들숨에 건강을 날숨에 재력을
숨밈
전체 방문자
오늘
어제
  • 분류 전체보기 (55)
    • 💻 프로젝트 (8)
      • 🍝 홍잇 (5)
      • 🏕 캠퍼 (3)
    • 👩‍💻 개발 (30)
      • ⚙️ BACKEND (16)
      • 🖥 FRONTEND (3)
      • 📡 DEVOPS (7)
      • 💡SOFTWARE (4)
    • 📑 개발 이론 (13)
      • 🚎 JAVA (1)
      • 🌱 SPRING (12)
    • 📚 CS (2)
      • 🔎 Infra (2)
    • 📔 회고 (2)

블로그 메뉴

  • 홈
  • 태그
  • 글쓰기

인기 글

태그

  • notion
  • django-rest-auth
  • 프리코스
  • 자바스크립트
  • django-rest-auth_custom
  • 타임리프
  • querydsl
  • django-auth
  • jsp
  • 스프링부트
  • static final
  • Django
  • 스프링
  • Tistory
  • springboot

티스토리

hELLO · Designed By 정상우.
숨밈

들숨에 건강을 날숨에 재력을

👩‍💻 개발/📡 DEVOPS

[Docker] 도커 컴포즈란?

2022. 12. 23. 01:45

1. 도커 컴포즈란?

compose 란 복수 개의 컨테이너를 실행시키는 도커 애플리케이션을 정의하기 위한 툴이다.

.yaml 파일을 상용하여 애플리케이션의 서비스를 구성할 수 있다.

 

예를 들어 서비스가 실행되기 위해서는 웹서버(Nginx, Apache)와  데이터베이스(mysql.. 등) 컨테이너를 생성해야 한다.

이때 도커로 실행하려면 매번 run 옵션을 적용하여 컨테이너를 생성해야 하는데, 

도커 컴포즈는 여러 컨테이너를 하나의 서비스로 묶어 다룰 수 있는 환경을 제공한다.

 

version: "3"
services:
  #container_name
  echo:
    # docker_image
    image: example/echo:latest
    ports:
      - 9000:8080

docker-compose.yaml은 위와 같이 작성할 수 있으며 services하단에 다른 컨테이너를 추가로 적어 줄 수 있다.

 

  주의점

  • yaml 작성법
  • 웹을 가장 마지막에 적어줘야 웹에서 db 및 다양한 서비스들을 인식하고 실행할 수 있다.

 

2. 도커 구성 step

  1. 앱의 환경을 정의하여 어디에서나 재사용할 수 있는 Dockerfile 정의
  2. docker-compose.yaml 에 앱 구성에 필요한 서비스를 정의 
  3. docker-compose up을 실행하여 전체 앱을 시작 

 

이를 통해 얻을 수 있는 최대 이점은 자동화된 테스트로

CI(Continuous Integration) &CD(Continuous Deployment)가 가능하다는 점이다.

또한 single command(docker-compose up)를 통해 각각의 의존성 있는 하나 또는 수많은 컨테이너를 만들고, 실행시켜

개발 환경 세팅이 훨씬 간편해진다.

 

3. 명령어

# 실행 명령어
	# 이미지가 없을때 빌드하고 컨테이너 시작
docker-compose up 
	# 이미지 유무에 상관 없이 이미지 빌드 후 컨테이너 시작
docker-compose up -build
	# 백그라운드 실행
docker-compose up -d

# 재시작 명령어
docker-compose up restart

# 중지 명령어
docker-compose down

# 로그 계속적으로 읽기
docker-compose logs-f

# 도커 컨테이너 상태확인
docker-compose ps

 

저작자표시 (새창열림)

'👩‍💻 개발 > 📡 DEVOPS' 카테고리의 다른 글

[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 2  (0) 2023.02.22
[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 1  (2) 2023.02.21
[DevOps] Github Actions란?  (0) 2023.02.20
[Nginx] Nginx란?  (0) 2022.12.26
[Docker] 도커란 무엇인가?  (0) 2022.12.23
    '👩‍💻 개발/📡 DEVOPS' 카테고리의 다른 글
    • [DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 1
    • [DevOps] Github Actions란?
    • [Nginx] Nginx란?
    • [Docker] 도커란 무엇인가?
    숨밈
    숨밈
    기술블로그

    티스토리툴바