삽질 주도 개발
article thumbnail
Published 2022. 11. 15. 21:39
Spring boot + mariaDB in docker container Infra

1. docker pull <image>

docker hub conatainer에서 등록된 mariaDB image를 가져온다.

$ docker pu ll mariadb

or

$ docker pull mariadb:<version> 

내려받은 이미지는 다음의 명령어로 확인할 수 있다.

$ docker images

 

2. docker run

docker에서 내려받은 이미지를 실행하기 위해 (컨테이너) 실행을 한다.

 

기본 포맷은 다음과 같다.

$ docker run [<옵션>] <이미지 식별자> [<명령어>] [<인자>]

나는 다음과 같이 컨테이너를 띄웠다.

$ docker run -p 3306:3306 --name [DATABASE_NAME] -e MARIADB_ROOT_PASSWORD=1234 -d mariadb

이때 사용된 옵션 몇 가지를 소개한다.

-d
컨테이너를 백그라운드에서 실행해야 할 때 -d 옵션을 사용한다.

 

—-name
Docker 컨테이너를 제어할 때 컨테이너 ID를 사용하면 읽거나 기억하기가 어렵다.
--name 옵션을 사용해서 컨테이너에 이름을 부여해서 컨테이너를 식별할 수 있다.

 

-e
Docker 컨테이너의 환경변수를 설정한다.

 

그렇다면 다음과 같이 명령어를 사용할 수 있다.

> -e MARIADB_DATABASE={생성할DB명} 

> -e MARIADB_USER={생성할 유저 명}

> -e MARIADB_PASSWORD={유저패스워드} 

> -e MARIADB_ROOT_PASSWORD={루트패스워드} 

-e 옵션을 사용하면 Dockerfile의 ENV 설정이 덮어씌워진다.

 

-p
-p 옵션은 호스트와 컨테이너 간의 포트 port bind에 사용된다.
(호스트 컴퓨터 포트) --bind-> (컨테이너에서 리스닝하고 있는 포트)

호스트 포트는 변경될 수 있지만, 컨테너의 포트는 이미지가 지정한 포트이므로 바꿀 수 없다.

 

3. docker ps

현재 실행 중인 컨테이너를 확인할 수 있다.

 

4-1. maria db 접속 - shell

root 계정으로 mariaDB에 접속한다.

$ sudo apt update

$ sudo apt install mariadb-client

$ mariadb -u root -p

 

4-2. maria db 접속 - docker GUI

올라간 컨테이너를 클릭하고 CLI로 접속

mariadb -u root -p

 

5. user 생성

> create user 'silly'@'localhost' identified by '1234';

> grant all privileges on *.* to 'silly'@'localhost';

> flush privlieges;

> 사용자인 silly를 만들어주고, 1234를 암호로 설정했다.

> 모든 db.모든 table의 모든 권한을 부여한다.

> 변경 사항 적용

 

6. DB tool 연결 (datagrip)

datagrip diver setting

 

6. spring config

application.yml에 jpa 설정을 추가해준다.

spring:
  datasource:
    driver-class-name: "org.mariadb.jdbc.Driver"
    url: jdbc:mariadb://localhost:3306/testDB
    username: silly
    password: 1234
  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: create
    show-sql: true
    properties:
      hibernate.format_sql: true

 

 
 

 

 

'Infra' 카테고리의 다른 글

AMI 만들기  (0) 2023.01.17
AWS RDB 연결하기  (0) 2023.01.14
AWS IAM 지정하기  (0) 2022.12.05
AWS 인스턴스 생성하기  (0) 2022.12.05