[Docker] Docker Compose

2024. 11. 4. 16:29·OS/Docker

 

이전에는 컨테이너를 하나씩 하나씩 동작 시켜서 번거로움이 있었다. 예를 들면 웹 어플리케이션을 테스트 하려면 웹 서버 컨테이너, 데이터베이스 컨테이너 두개의 컨테이너를 각각 생성해야했었다. 

# Docker Compose

Docker Compose는 여러 컨테이너를 정의하고 함께 관리할 수 있도록 해주는 도구이다. 단일 서버에서 여러개의 컨테이너를 하나의 서비스로 정의하고 컨테이너 묶음으로 관리할 수 있느 작업 환경을 제공하는 관리 도구이다. 

 

 

# Docker Compose 주요 기능 (중요)

1. 서비스 정의

여러 서비스를 docker-compose.yml 파일에 정의할 수 있다. 각각의 서비스에 대한 이미지, 볼륨, 네트워크 등을 정의해서 동시에 관리할 수 있다. 

 

2. 다중 컨테이너 환경 관리

docker compose up 명령어 하나로 모든 컨테이너를 동시에 시작하고,  docker compost down으로 쉽게 종료 및 정리 할 수 있다.

 

3. 의존성 관리

depends_on 옵션을 통해 각 서비스의 실행 순서를 지정할 수 있다. 예를 들면 웹 애플리케이션이 실행되기 전에 데이터베이스가 먼저 실행되어야 하는 경우 의존성을 설정할 수 있다. 

 

4. 네트워크 구성 자동화(중요)

Compose는 각 서비스 간의 통신을 위해 기본 네트워크를 자동으로 생성하고 설정할 수 있다. 여러 서비스가 분리된 네트워크에서 실행되도록 구성할 수 있다. 

 

5. 환경 변수 사용

환경 변수 파일 (.env)을 통해 설정을 동적으로 관리할 수 있다. 이 방식을 사용하면 설정 변경 시 편리하고 보안 관리에도 도움이 된다. 

 

# Docker Compose 주요 기능을 활용한 예시

예를 들어 웹 서버와 데이터베이스를 포함한 환경에서 docker-compost.yml 을 작성해보겠다. 

ubuntu@docker:~/my-webdb$ vim docker-compose.yaml

version: "3.9"
service:
	db:
    	image: mysql:8.0
        enviroment:
        	MYSQL_ROOT_PASSWORD: example
            
    web:
    	image: wordpress:5.7
        ports:
        	- "80808:80"
            
        enviroment:
        	WORDPRESS_DB_HOST: db
            WORDPRESS_DB_PASSWORD: example
        deponds_on:
        	- db

 

이 설정 파일을 사용하여 docker compose up -d 명령어를 실행하면, 데이터베이스와 웹 서버가 자동으로 실행되며 상호작용할 수 있다. 

저작자표시 비영리 변경금지 (새창열림)

'OS > Docker' 카테고리의 다른 글

[Docker] 멀티 컨테이너 서비스 구성 (feat. Docker Compose)  (1) 2024.11.04
[Docker] Python Flask 웹 서비스 배포  (1) 2024.11.04
[Docker(go, shell-scr)] Multi-stage Build 이미지 경량화  (0) 2024.11.04
[Docker] 데이터 지속성을 위한 Volume 구성  (0) 2024.10.30
[Docker] scratch 이미지 경량화  (3) 2024.10.28
'OS/Docker' 카테고리의 다른 글
  • [Docker] 멀티 컨테이너 서비스 구성 (feat. Docker Compose)
  • [Docker] Python Flask 웹 서비스 배포
  • [Docker(go, shell-scr)] Multi-stage Build 이미지 경량화
  • [Docker] 데이터 지속성을 위한 Volume 구성
Kouji
Kouji
Journey to Becoming a Data & Server Engineer
  • Kouji
    Kouji's Data & Server Journey
    Kouji
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • SQL
      • Data & AI
        • Data Analysis
        • Ai
      • Cloud(AWS)
      • OS
        • Linux
        • Docker
        • Jenkins
        • Ubuntu
        • Window
        • Kubernates
        • Ansible
      • Network
        • NVIDIA
        • Network[이론]
        • Network[GNS3, Packet]
        • Network[On-Premise]
        • Network [L2, L3]
      • 트러블 슈팅
      • Life
        • My Career Stories
        • Personal
      • 개발 + OS 지식 함양
  • 블로그 메뉴

    • 홈
    • 관리 페이지
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    서버
    도커
    L3
    라우팅
    클라우드엔지니어
    docker
    네트워크엔지니어
    네트워크엔지니어링
    서버엔지니어
    화이팅
    ubuntu
    스위치
    시스템엔지니어
    티스토리챌린지
    AWS
    Linux
    인프라
    dns
    오블완
    VMware
    알고리즘
    보안
    리눅스
    IT
    CISCO
    웹
    네트워크관리사
    네트워크
    인프라엔지니어
    OS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kouji
[Docker] Docker Compose
상단으로

티스토리툴바