요새 개발용으로 도커 올리는 건 프론트엔드도 기본이 되어서 나도 이번 기회에 좀 써보려고 한다.
이번에 진행할 프로젝트를 아래와 같은 구조로 만들어 주었다.
우선 dockerhub에 올려져있는 이미지와 설명글을 참고하여 docker-compose.yml을 작성해보겠습니다.
version: '3.1'
services:
db:
image: mysql
restart: always
command: --lower_case_table_names=1 # 대소문자 구분
container_name: mysql-db
environment:
- MYSQL_DATABASE=생성할DB이름
- MYSQL_ROOT_PASSWORD=님비번입력
- TZ=Asia/Seoul
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- ./db:/var/lib/mysql # db 볼륨 처리
ports:
- 3306:3306
그 이후 아래와 같은 과정을 거쳐 mysql 컨테이너를 올려주면 됩니다.
docker-compose up -d // 컨테이너 생성
docker exec -it CONTAINER_ID /bin/bash // mysql 컨테이너 내부 접속
mysql -u root -p // 접속
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password by 'yourpassword';
FLUSH PRIVILEGES;
privilege를 flush하지 않으면 원격 접속 자체가 되지 않습니다. 위 과정은 mariaDB를 사용해도 똑같이 해줘야 하는 과정입니다.
이제 이렇게 생성한 mysql에 3306 포트로 접근하여서, 마음대로 가지고 놀다가 무슨 문제가 생기면 컨테이너를 통째로 날리고, db에도 문제가 있으면 볼륨 경로도 날려버리면 됩니다.
생각보다 쉽고 간편해서 기분 좋았음 ^^
'Ops, Infra, etc > 🐋 Docker (+Swarm)' 카테고리의 다른 글
docker 기반 nginx~react 개발 및 배포 (0) | 2021.03.26 |
---|---|
docker compose와 간단한 compose 문법 (2) | 2021.03.24 |
node.js 기반 앱을 docker 환경에서 실행해보자 (0) | 2021.03.23 |
Dockerfile을 이용한 Docker 이미지 생성하기 (0) | 2020.09.03 |
docker 기본 명령어 (ps, stop, start, rm, logs, exec, images, network) (1) | 2020.09.03 |