References
yml 파일 작성
- 파일명은 반드시
docker-compose.yml
, 해당 디렉토리 내에서 겹치지 않아야 함
# 파일 규격 버전
version: "3.9"
# 이 항목 밑에 실행하려는 컨테이너 정의
services:
# 서비스명
db:
# 사용할 이미지
image: mysql:8.0
# 컨테이너 이름 설정
container_name: mysql-local
# 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
ports:
- "3306:3306"
# -e 옵션
environment:
# MYSQL 기본 옵션(DB명, 루트 비밀번호)
MYSQL_DATABASE: mysqllocal
MYSQL_ROOT_PASSWORD: 1234
# MYSQL 계정 추가 옵션
MYSQL_USER: rito
MYSQL_PASSWORD: 1234
# 명령어 실행 (한글 인코딩 관련)
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
# -v 옵션 (디렉토리 마운트 설정)
- ~/docker-volumes/mysql-local:/var/lib/mysql
해당 yml 파일 위치에서 명령어 실행
docker compose up -d
컨테이너 bash 접속
docker exec -it mysql-local /bin/bash
Docker-compose 명령어들
docker compose up # 복합 컨테이너 생성, 실행 및 해당 CLI에서 로그 확인
docker compose up -d # 복합 컨테이너 생성, 실행(백그라운드)
docker compose start # 실행
docker compose stop # 종료
docker compose down # 제거
docker compose restart # 재시작
docker compose ps # 컨테이너 목록, 상태 확인
MySQL Bash 명령어
mysql -u root -p # root 데이터베이스로 접근(이후, 비밀번호 입력 필요)
# 사용자 생성
CREATE USER 'rito'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'rito'@'%';
flush privileges;
quit
# 유저 목록 조회
SELECT user FROM mysql.user;
# 현재 접속한 유저 조회
SELECT current_user();
# DB(스키마) 목록 조회 : DB와 스키마는 같다
SHOW DATABASES;
SHOW SCHEMAS;
# 특정 DB 사용
USE {DB명};
# 현재 접속 데이터베이스 조회
SELECT DATABASE();
# 테이블 목록 조회
SHOW TABLES;