체인의정석

docker-compose 로 db 쉽게 만들고 mysqlworkbench로 접속하기 본문

개발/docker & linux

docker-compose 로 db 쉽게 만들고 mysqlworkbench로 접속하기

체인의정석 2024. 7. 9. 10:26
728x90
반응형

docker-compose를 사용하면 docker-compose.yml 파일을 작성해서 DB를 쉽게 생성 할 수 있다.

docker-compose.yml

services:
  mariadb:
    image: mysql:latest
    container_name: mysql-server
    command: --max-connections=10000
    ports:
      - "33306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: myuser
      MYSQL_PASSWORD: password

다음과 같이 yml 파일을 작성하면 33306 번 포트로 도커를 띄울 수 있다.

만약 3306:3306 을 사용할 경우 기존 포트 사용과 꼬여서 추후 외부에서 접근할 때 access denined가 뜰 수도 있으니 다른 포트를 사용하는 것을 추천한다.

docker compose 설명글 : docker run 을 여러개 실행해서 관리해야 하는 프로세스를 yml 파일만 설정해주면 한번에 관리 해준다.


https://seosh817.tistory.com/387

 

[Docker] 도커 컴포즈(Docker compose) - 개념 정리 및 사용법

이번 포스트에서는 도커 컴포즈에 대해 정리하겠습니다. 도커 컴포즈란? 도커 컴포즈는 단일 서버에서 여러개의 컨테이너를 하나의 서비스로 정의해 컨테이너의 묶음으로 관리할 수 있는 작업

seosh817.tistory.com

 

먼저 docker-compose -v 를 써서 설치를 확인한다.

docker-compose -v
Docker Compose version v2.19.1

그 후 도커 컴포즈를 통해 yml 파일이 있는 위치에서 다음과 같이 도커 컴포즈를 실행 시키면, 이전에 지정해두었던 db가 생성된다.

만약 웹서버나 db등을 동시에 돌리고 싶을 때도 동일하게 하면 된다.

docker-compose up -d
[+] Running 2/2
 ✔ Network database_default  Created                                           0.0s 
 ✔ Container mysql-server    Started                                           0.3s

종료시킬 때는 다음과 같이 한다.

도커를 띄운 후에는 mysql에 들어가서 DB를 생성해 준다. exex -it 뒤에 yml에서 지정한 컨테이너 이름을 써서 들어가면 된다.

docker exec -it mysql-server bash
bash-4.4# mysql -h

그 후 db에 접근한다.

bash-4.4# mysql -u root -p
Enter password:

성공하면 mysql 콘솔이 나타나게 된다.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydatabase         |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

여기서 사용할 데이터 베이스에 들어가서 ddl을 써주거나 백엔드 코드를 시작 시킬 때 db를 생성해주는 스크립트를 넣어주면 된다.

mysql> use mydatabase
Database changed
mysql> show tables

이후 mysql workbench에는 아래와 같이 docker-compose 에서 지정한 접속 정보로 접근해서 사용이 가능하다.

728x90
반응형
Comments