최상단 directory 하위에 docker directory를 생성
하위에 docker-compose.yml 파일 생성
version: "3.9"
services:
db:
image: mysql:8.0.28
platform: linux/x86_64
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: practice
MYSQL_USER: user
MYSQL_PASSWORD: password
TZ: Asia/Seoul
volumes:
- ./db/mysql/data:/var/lib/mysql
- ./db/mysql/config:/etc/mysql/conf.d
- ./db/mysql/init:/docker-entrypoint-initdb.d
.gitignore에 도커 관련 파일 추가
### Docker ###
docker/db/mysql/data/
docker/db/mysql/init/*
!docker/db/mysql/init/init.sql
docker directory에서 cmd로 아래 명령어 실행
NOTE@DESKTOP-N9VOSQK MINGW64 /c/woowacourse/level1/jdbc-practice/docker
$ docker-compose -p practice up -d
- docker-compose : yml 파일의 이름
- -p : 프로젝트
- practice : 지정한 프로젝트 이름
- up : 애플리케이션을 실행하겠다는 의미
- -d : 터미널이 아니라 백그라운드에서 프로그램을 실행하겠다는 의미
docker directory 하위에 yml 파일 외에도 뭔가 파일들이 생겼다. mysql 구동을 위해 필요한 파일들이다. (테이블 등등)
컨테이너 확인(실행 중인 image)
$ docker ps
practice-db-1이라는 녀석이 올라와 있는걸 확인할 수 있다.
실행 중인 컨테이너에 CMD 전달하기
$ docker exec -it practice-db-1 bash
위 명령어를 입력하면 무언가를 입력해야 한다. # 뒤로 mysql을 유저는 root로, 비밀번호는 root로 접속한다는 뜻이다. (yml 파일 설정대로, -p와 비밀번호 사이에 띄어쓰기는 하지 않는다.)
root@f1c284c0f339:/# mysql -u root -proot
그럼 mysql 서버에 접속할 수 있다.
데이터베이스 확인 및 사용
show databases;
practice를 확인할 수 있다. 이제 use priactice; 명령어를 통해 해당 데이터베이스를 사용하면 된다.
자바 프로그램에서 mysql을 쓰려면 JDBC API가 필요하고, 이를 구현한 mysql만의 JDBC 구현체가 필요하다.
build.gradle에 의존성 추가
runtimeOnly 'mysql:mysql-connector-java:8.0.28'
'우아한테크코스' 카테고리의 다른 글
Level2 Spring 체스 피드백 정리 (0) | 2022.05.06 |
---|---|
Level1 체스 미션 피드백 정리 (0) | 2022.04.10 |
Level1 블랙잭 미션 피드백 정리 (0) | 2022.03.21 |
Level1 로또 미션 피드백 정리 (0) | 2022.03.04 |
Level1 자동차 경주 미션 피드백 정리 (0) | 2022.02.26 |