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;