PLOD

[Docker] Docker Container 실행 (local server) 본문

computer science/Cloud computing

[Docker] Docker Container 실행 (local server)

훌룽이 2026. 6. 4. 15:45

1, docker-compose.yml 파일 작성

services:
  mysql:
    image: mysql:8.0
    container_name: #{container_name}
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: #{MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: #{MYSQL_DATABASE}
      MYSQL_USER: #{MYSQL_USER}
      MYSQL_PASSWORD: #{MYSQL_PASSWORD}
    volumes:
      - mysql_data:/var/lib/mysql
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci

volumes:
  mysql_data:

2. Docker 컨테이너 실행

docker-compose.yml에 정의된 MySQL, Redis 등의 컨테이너를 백그라운드에서 실행합니다.

docker-compose up -d

실행 상태 확인

docker ps

3. MySQL 컨테이너 접속

실행 중인 DB 컨테이너 내부로 접속하여 데이터베이스 콘솔을 실행합니다. 

MySQL

docker exec -it 컨테이너 명 mysql -u 데이터베이스 명 -p

비밀번호 입력 후 powershell 관리자모드에서 MySQL CLI에 접속할 수 있습니다.

데이터베이스 목록 조회

SHOW DATABASES;
 

테이블 목록 조회

테이블은 Hibernate를 통한 entity 정보에 따른 테이블 생성

SHOW TABLES;
 

4. Redis 컨테이너 실행

Redis를 별도 컨테이너로 실행합니다.

Redis 최초 생성 및 실행

 
docker run -d --name 레디스 명 -p 6379:6379 redis
 

기존 Redis 컨테이너 재실행

 
docker start 레디스 명
 

Redis 실행 상태 확인

 
docker ps

5. Spring Boot 애플리케이션 실행

일반 실행

 
./gradlew bootRun
 

오류 로그까지 확인하며 실행

 
./gradlew bootRun --stacktrace
 

Gradle Daemon 없이 실행

 
./gradlew bootRun --no-daemon
 

개발 중 예상치 못한 Gradle 캐시 문제 발생 시 --no-daemon 옵션을 활용하면 도움이 됩니다.


설정 파일(application.yml) 변경 시

설정 파일 수정 후 기존 빌드 결과물이 남아 있는 경우 캐시를 제거합니다.

./gradlew clean
 

이후 다시 애플리케이션을 실행합니다.

./gradlew bootRun

 

DB 스키마 변경 시

테이블 구조(Entity, DDL 등)가 변경된 경우 기존 Docker Volume을 삭제하고 새로 생성합니다.

 
docker-compose down -v
 

컨테이너 재생성

 
docker-compose up -d

 

-v 옵션은 Docker Volume까지 삭제하므로 기존 데이터가 모두 제거됩니다.

로컬 MySQL 사용 중일 경우

Docker MySQL과 로컬 MySQL이 동시에 실행되면 포트 충돌(3306)이 발생할 수 있습니다.

Windows 환경에서 MySQL 서비스 종료

 
net stop MySQL
 

MySQL 서비스 시작

net start MySQL

'computer science > Cloud computing' 카테고리의 다른 글

[k8s]kubernetes(쿠버네티스)  (0) 2024.10.18
[Docker] docker와 docker - compose  (0) 2024.08.14
[Hadoop] YARN : Yet Another Resource Negotiator  (0) 2022.12.15
[Spark] Apache - Spark  (1) 2022.12.15
[MapReduce] HIVE and pig  (0) 2022.12.15
Comments