docker 사용하기4 (with dokcer-compose , mariadb , mysql)

jay·2022년 3월 13일
1

Docker

목록 보기
4/4
post-thumbnail

이전 글

처음 프로그래밍을 공부했을 때 프론트엔드를 공부하다보니 백엔드가 필요했고 백엔드를 공부하다보니 관계형 데이터 베이스가 필수적으로 필요했으며 sql도 공부를 했어야 됐는데 개발 환경 세팅하는게 너무 힘들었던 걸로 기억합니다.. 그래서 제일 처음 쓰기로 한 내용이 개발 환경을 세팅하는 글이었는데 이제 환경 세팅하는건 거의 다 왔다고 생각합니다.

MariaDB 폴더 구성

conf.d/my.conf , data

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake=FALSE
init-connect='SET NAMES utf8'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
bind-address=0.0.0.0

data directory는 mariadb container가 실행되고 있을 때 실제 데이터가 담기는 곳입니다. 폴더만 만들어주시면 됩니다.

docker-compose.yml

version: "3"
services:
  nginx:
  /*
  	중략
  */
  node:
  /*
  	중략
  */
  next:
  /*
  	중략
  */
  mariadb:
      container_name: "mariadb"
      image: mariadb:10
      restart: always
      ports:
        - 3306:3306
      volumes:
        - "./mariadb/conf.d:/etc/mysql/conf.d"
        - "./mariadb/data:/var/lib/mysql"
      environment:
        MARIADB_DATABASE: example
        MARIADB_USER: username
        MARIADB_PASSWORD: password
        MARIADB_ROOT_PASSWORD: password
      restart: always

MARIADB_DATABASE: 사용자 database
MARIADB_USER: 사용자 user
MARIADB_PASSWORD: 사용자 password
MARIADB_ROOT_PASSWORD: root password

위 부분만 원하시는대로 수정하시면 됩니다.
(MARIADB_ROOT_PASSWORD는 계정 접속시 필요합니다.)

설정이 끝나셨다면 docker-compose up --build를 terminal에 입력하시면 됩니다.

Terminal로 mariadb 접속하기

terminal에서 docker container ps 를 입력합니다.

위와 같이 CONTAINER ID 를 복사 후 아래와 같이 입력해주세요.
docker exec -it CONTAINER_ID bash (자세한 내용은 docker docs를 확인해주세요.)

container terminal에 접속했으면 이제 mariadb에 연결하겠습니다.

root@CONTAINER_ID:/# mysql -uroot -p

MARIADB_ROOT_PASSWORD를 입력하시면 접속할 수 있습니다.

example database가 생긴 걸 볼 수 있으며

username이라는 계정이 생긴걸 확인할 수 있습니다.

잘못된 부분이나 제대로 이해하지 못하고 있는 부분이 있다면 언제든 지적해주시면 감사하겠습니다.

혹은 궁금하신 부분이나 docker를 제외한 것들도 질문해주시면 최대한 답변드리도록 노력하겠습니다. 감사합니다.

다음 글에는 nodejs를 container에서 내리고 nestjs를 컨테이너화 시키는 글을 적도록 하겠습니다.

profile
Generalist

2개의 댓글

comment-user-thumbnail
2022년 6월 13일

다음화 없나요 ,,,

1개의 답글