ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] 나만의 Docker Compose 파일 만들기
    Docker 2025. 1. 27. 00:08

    https://jngsngjn.tistory.com/62

     

    macOS에서 도커로 오라클 DB 구축하기 (Docker, Oracle DB, macOS)

    회사 데이터베이스 서버가 잠시 중단되었다.내가 만들고 있는 스프링부트 모듈을 테스트할 수가 없어서, 직접 오라클 DB를 사용해보기로 했다.맥북 정보: M3 Pro (macOS Sequoia 15.2)도커 정보: Docker 27.

    jngsngjn.tistory.com

    지난번에 만들었던 오라클 DB 도커 이미지를 다른 곳에서도 편하게 사용하기 위해 compose 파일을 만들어 보기로 했다.

     

    0. Docker Compose 파일이란?

    docker compose 파일이란 여러 개의 컨테이너를 쉽게 정의하고 관리하기 위한 설정 파일이다. 보통 yml 파일로 작성된다. 이 파일에 여러 컨테이너를 정의하여 재사용하기 쉽게 구성할 수 있다. 컨테이너 간 의존성을 정의하여 실행 순서도 조정할 수 있다. 또한 복잡한 Docker  명령어를 단순화 시켜준다. 보통 compose 파일 안에 여러 개의 컨테이너 서비스가 포함되지만, 이 글에서는 단일 서비스 compose 파일을 사용했다.


    1. Docker Hub에 이미지 올리기

    기존 도커 이미지를 도커 허브에 올리기 위해서 나의 도커 계정명이 붙은 태그를 이미지에 붙여줘야 했다. 태그는 도커 이미지에 붙이는 라벨 또는 버전 정보를 의미한다. 특정 이미지를 식별하고 버전 관리를 쉽게 하기 위해 사용된다.

    docker tag oracle/database:19.3.0-ee [도커 계정명]/oracle-database:19.3.0-ee

     

    그리고 나서 도커 허브에 push 해주면 된다. 도커 데스크탑을 사용하면 GUI를 사용하여 편리하게 작업할 수 있다.

    Push to Docker Hub

     

    2. Docker Compose 파일 생성

    services:
      oracle-db:
        image: [도커 계정명]/oracle-database:19.3.0-ee
        container_name: oracle-db-container
        ports:
          - "1521:1521"
        environment:
          - ORACLE_SID=doracle
          - ORACLE_PWD=doracle
        volumes:
          - ./oracle_data:/opt/oracle/oradata
        restart: unless-stopped
    • image에 도커 허브에 push한 이미지를 기입!
    • volumes에 컨테이너가 아닌 호스트 경로를 지정하여 데이터를 영속화 (컨테이너를 삭제해도 데이터가 유지됨)
    • restart를 통해 컨테이너의 재시작 정책을 정의. 여기서는 수동 중지된 경우를 제외하고 항상 재시작되도록 하는 unless-stopped 방식을 사용

     

    3. Docker Compose 실행 / 종료

    docker compose up -d
    • compose 파일 경로의 위치에서 위 명령어를 통해 컨테이너를 실행한다.
    • -d 옵션을 통해 터미널을 계속 열어두고 컨테이너는 백그라운드에서 실행되게 한다.

     

    docker compose down
    • compose 파일 경로의 위치에서 위 명령어를 통해 컨테이너를 종료한다.

    이제 도커가 설치된 환경에서 이 compose 파일만 있으면 간단한 명령어 한 번이면 오라클 DB를 빠르게 구축하여 테스트가 가능해졌다!!!