Docker가 설치되어있다고 가정하고, MySQL 이미지를 다운받아 실행하는 과정을 정리해본다.

 

1. MySQL 이미지 검색

허브에 있는 이미지를 검색해서 공식 이미지를 다운받자.

docker search mysql

 

 

2. MySQL 이미지 다운로드

버전을 명시하지 않으면 가장 최신 버전(latest)을 설치한다.

docker pull mysql:8.0.17

 

 

3. 설치된 Docker 이미지 확인

docker images

 

 

4. MySQL 이미지를 기반으로 MySQL 컨테이너 생성 및 실행

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name seungho-mysql mysql:8.0.17

 

 

위 명령어로 MySQL을 실행한 후, 한글 문제가 발생한다면 위 명령어 뒤에 아래 옵션을 추가한다.

--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

 

 

위와 같은 명령어로 도커 컨테이너를 실행하려고하면 쓰기도 불편하고, 읽기도 불편하다.

대안으로, docker-compose.yml 파일을 생성한 후, 이 파일의 내용을 기반으로 컨테이너를 바로 실행시킬 수 있다.

version: "3" 
services: 
  db: 
    image: mysql:8.0.17 
    container_name: seungho-mysql
    ports:
      - "3306:3306" # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
    environment: # -e 옵션
      MYSQL_ROOT_PASSWORD: "password"  
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci

 

 

docker-compose.yml 파일에 컨테이너를 어떻게 실행시킬건지 정의한 후 아래 명령어를 통해 실행한다.

docker-compose up

 

 

제대로 실행됬는지 실행 중인 컨테이너 목록을 확인해보자.

docker ps -a

 

 

5. MySQL 컨테이너에 bash 쉘로 접속

docker exec -it seungho-mysql bash

 

 

컨테이너 접속이 성공했다면, 그 다음부터는 일반적으로 터미널에서 mysql 작업하던대로 하면 된다.

MySQL root 계정 패스워드는 위의 docker-compose.yml 파일에서 정의한 MYSQL_ROOT_PASSWORD 값이다.

root@77d4559829a3:/# mysql -u root -p
mysql>

 

 

 

 

 

참고자료

[1] http://jmlim.github.io/docker/2019/07/30/docker-mysql-setup/

 

'DevOps' 카테고리의 다른 글

[DevOps] DevOps란?  (0) 2020.07.03
[DevOps/CI/CD] 깃랩(GitLab)의 CI/CD  (0) 2020.04.07
[DevOps/Infra] AWS CloudFormation  (0) 2020.03.18
[DevOps/CI/CD] Jenkins  (0) 2020.03.03