도커(Docker)로 MySQL 서버 구축하기

Docker 기본 명령어

옵션

옵션 내용
-d detached mode
-p 포트 포워딩 HOST:CONTAINER
-v 디렉토리 마운팅 HOST:CONTAINER
-e 컨테이너에서 사용할 환경변수 설정
-name 컨테이너 이름
-rm 컨테이너 제거
-rmi 이미지 제거
-it 터미널 입력


  • 이미지 Pull
    docker pull [이미지 이름]
    
  • 이미지 확인
    docker images
    
  • 컨테이너 bash 접속
    docker exec -it [컨테이너 이름] bash
    

    -it: interactive terminal 모드

  • 컨테이너 무중단으로 빠져나오기

CTRL + P, Q

  • 실행중인 컨테이너 확인
    docker ps
    
  • 종료된 컨테이너까지 확인
    docker ps -a
    
  • 컨테이너 삭제
    docker rm [컨테이너 ID]
    
  • 이미지 삭제
    docker rmi [이미지 ID]
    


MySQL 서버 구축하기

컨테이너 생성 방법1: Shell 명령어 이용

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name jason-mysql -v D:/docker/mysql/data:/var/lib/mysql db2b37ec6181 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

-d: 백그라운드 모드
-p: 포트 포워딩 호스트:컨테이너
-e: 컨테이너 내에서 사용할 환경변수 설정
–name: 컨테이너 이름
-v: 마운트 호스트DIR:컨테이너DIR
도커 이미지 ID


컨테이너 생성 방법2: yml 파일 이용

  • ‘docker-compose.yml’ 파일 생성
# 파일 규격 버전
version: "3"
# 이 항목 밑에 실행하려는 컨테이너 들을 정의
services: 
  # 서비스 명
  db:
    # 사용할 이미지
    image: db2b37ec6181
    # 컨테이너 이름 설정
    container_name: jason-mysql
    # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
    ports:
      - "3306:3306"
    # -e 옵션 
    environment: 
      # MYSQL 패스워드 설정 옵션
      MYSQL_ROOT_PASSWORD: "1230"
    # 명령어 실행 (한글 인코딩 관련)
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      # -v 옵션 (다렉토리 마운트 설정)
      - D:/docker/mysql/data:/var/lib/mysql
  • yml 파일을 생성한 디렉토리에서 docker-compose 명령어 실행
docker-compose up -d


컨테이너 bash 접속

docker exec -it jason-mysql bash

-it: interactive terminal 모드


MySQL 서버 접속

mysql -u root -p

Password는 yml 파일에서 설정한 MYSQL_ROOT_PASSWORD 값


DB 및 사용자 생성

CREATE USER 'jason'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'jason'@'%';
flush privileges;
quit

DB Server 외부 접속 테스트

  • MySQL Workbench GUI 환경에서 접속 테스트
IP: public IP 혹은 localhost
PORT: 3306
USER: jason
PASSWORD: password

태그:

카테고리:

업데이트:

댓글남기기