docker-compose 로 db 쉽게 만들고 mysqlworkbench로 접속하기
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 에서 지정한 접속 정보로 접근해서 사용이 가능하다.