Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 1차원 DP
- 2차원 dp
- 99클럽
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Callback
- case when
Archives
- Today
- Total
기록
Docker/spring boot에 MySQL 데이터베이스 연결하기 본문
시작하면서
spring boot를 사용하는 프로젝트에서, 로컬 데이터 데이스로 mysql을 사용하기로 했다.
도커를 사용하지 않고 직접 MySQL 서버를 설치하고 구성하는 것도 가능하지만, 이렇게 하면 개발자 간의 개발 환경 차이가 발생할 수 있으며, 버전 관리와 이식성 면에서 도커를 사용하는 것이 더 효율적일 수 있다. 따라서 아래에서는 docker을 이용해 spring boot에 MySQL 데이터베이스를 연결하고자 한다.
개요
- spring boot 프로젝트 설정
- application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/doctor?serverTimezone=Asia/Seoul&useUnicode=true
username: root
password: Password
- setting container
- docker container 생성
- container 실행
- Spring Boot 애플리케이션 실행
docker를 사용해서 spring boot에 MySQL 데이터베이스 연결하기
setting container
- install docker
이전 포스팅(2023.07.18 - [DevOps] - docker/install docker, docker-compose)에서 도커를 설치하는 방법을 다루었었다. 해당 글을 참조하여 Docker를 설치한다. - pull mysql
도커 허브에서 mysql 이미지를 내려받는다.
docker pull mysql
- create docker container
docker create --name mysqldb -e MYSQL_ROOT_PASSWORD=Password -e MYSQL_DATABASE=sample -p 3306:3306 mysql:latest
--name mysqldb
: 컨테이너의 이름은 "mysqldb"로 설정한다.-e MYSQL_ROOT_PASSWORD=Password
: MySQL 루트 사용자의 비밀번호를 "Password"는 설정한다.-e MYSQL_DATABASE=sample
: MySQL 데이터베이스 이름을 "sample"로 설정합니다.-d
: 컨테이너를 백그라운드 모드로 실행한다.-p 3306:3306
: 3306 포트를 사용한다.mysql:latest
: 사용할 Docker 이미지를 "mysql:latest"로 설정한다.
start container
mysqldb 컨테이너를 실행한다.
docker start mysqldb
end container
mysqldb 컨테이너를 중지한다.
docker stop mysqldb
monitor container
Docker에서 실행 중인 컨테이너의 목록을 표시한다. -a
옵션은 실행 중인 컨테이너 뿐만 아니라 중지된 컨테이너도 모두 표시 하라는 옵션으로, docker ps
를 사용하면 실행중인 컨테이너의 목록을 확인할 수 있다.
docker ps -a
delete container
생성된 컨테이너를 삭제할 때는 다음과 같은 명령어를 사용할 수 있다.
docker stop mysqldb
docker rm mysqldb
더 공부할 것
- docker compose
docker를 사용해 데이터베이스와 연결해야 하는 경우 프로젝트를 실행하기 전에 컨테이너를 실행해야 하고, 프로젝트 종료 후에 컨테이너를 중지하거나 삭제하는 등의 작업이 필요하다. 이러한 실행절차를 하나의 서비스로 정의하고 관리하고 싶었다.
docker-compose 파일을 아래처럼 작성하면 프로젝트에 필요한 서비스, 컨테이너, 환경 변수 및 네트워크 설정을 정의할 수 있다.
version: '3'
services:
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: Password
MYSQL_DATABASE: sample
spring-boot-app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
- mysql
- 서비스 실행 및 관리
프로젝트 디렉토리에서 다음 명령어를 실행하여 Docker Compose를 사용하여 서비스를 실행할 수 있다.
docker-compose up
'DevOps' 카테고리의 다른 글
[issue] AWS-EC2: 연결성 검사에 실패했습니다, CPU 100% 점유 (0) | 2024.02.13 |
---|---|
DevOps/AWS EC2 jar 배포하기 (0) | 2023.11.20 |
SpringBoot Azure window instance에 배포하기 (0) | 2023.07.31 |
docker/install docker, docker-compose (0) | 2023.07.18 |
DevOps/CICD (0) | 2023.07.17 |
Comments