«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

코더

docker 재정리 본문

최종 프로젝트

docker 재정리

자바스티안 2026. 9. 3. 17:44

배경 : docker 배포하는 방법은 알지만 자세하게 어떻게 동작하는지에 대한 지식이 부족해 정리가 필요했다.

 

 

CASE : 1  mysql:3306 차이

 

만약에 인텔리제이에서 실행을 하고 내 pc에서 테스트 하려면?

jdbc:mysql://localhost:3306/dream_stadium_V2

으로 일단 localhost로 yml파일 설정을 한 후 

 

docker compose up -d

로 일단 docker-compose.yml 을 빌드를 해준다. 

 

그 후 생긴 컨테이너로 start 하면 된다.

 

docker start dream-stadium-V2

 

즉, 이렇게 하면 docker-compose.yml 통해 빌드 된것을 통해 docker start로 mysql 만 키는것이다. 

즉, 인텔리제이도 실행 + 맨 처음 yml 빌드된것 중에 mysql 을 start + docker-compose.yml은 이미 만들어진것을 통해 해당 설정을 킨것이지 이걸 다시 실행은 안한다.

mysql:3306 해야하는 이유가 docker-compose.yml에서 실행을 하는데 그 mysql에 접근을 하기 위해서는 도커의 컨테이너에 있는 mysql을 접속해야 한다는거지? 내 local pc의 mysql을 찾는게 아니라?

 

CASE : 2 명령어

 

docker compose up
 

→ 컨테이너 실행 + 로그를 현재 터미널에 계속 보여줌

 
docker compose up -d
 

→ 컨테이너 실행 + 백그라운드에서 실행하고 터미널을 바로 돌려줌

 

docker compose down
docker compose up --build -d

 

docker compose down

↓ 기존 컨테이너 종료 + 삭제


docker compose up --build -d

↓ Dockerfile 다시 빌드

↓ 새 app 이미지 생성

↓ mysql 컨테이너 생성/실행

↓ app 컨테이너 생성/실행

↓ 백그라운드 실행

 

docker compose logs -f app

 

 

CASE : 3  app의 존재 이유

 

app은 MySQL을 쓰기 위해 필요한 게 아니라,  Spring Boot 서버를 Docker 안에서 실행하기 위해 필요한 거다.

 

\Docker Compose에서는 이 둘을 각각 컨테이너로 실행한다.

Docker
├── mysql 컨테이너
│   └── DB
│
└── app 컨테이너
    └── Spring Boot

 

그런데 localhost:3306 으로 하면 app이 필요가 없어진다.

 

즉.

Docker로 백엔드까지 실행하고 싶다 -> mysql + app 둘 다 필요

IntelliJ에서 백엔드를 실행한다 -> app 컨테이너 필요 없음 -> mysql 컨테이너만 있어도 됨

'최종 프로젝트' 카테고리의 다른 글

깃허브 관리 / 발생한 문제점  (0) 2026.08.14
(최종 프로젝트) 구글 recaptcha  (0) 2026.08.13
(최종 프로젝트)Oauth2.0 정리  (0) 2026.08.13