본문 바로가기
컨테이너/도커

도커로 MySQL 설치 및 실행

by ^..^v 2020. 5. 28.
728x90
반응형

윈도우 도커 데스크탑에 파일 공유 폴더를 추가합니다. 

MySQL 도커 이미지를 다운로드합니다. 

PS C:\Users\myanj> docker pull mysql:8.0.20
             :
PS C:\Users\myanj> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               8.0.20              30f937e841c8        7 days ago          541MB

 

MySQL 컨테이너 생성 및 실행에 사용할 docker-compose.yml 파일을 작성합니다. 

version: "3"                                  # 파일 규격 버전
services:                                     # 컨테이너 정의
  db:                                         # 서비스 이름
    image: mysql:8.0.20                       # 이미지 이름
    container_name: mysql_db                  # 컨테이너 이름
    ports:
      - "3306:3306"                           # 컨테이너 외부 포트 : 컨테이너 내부 포트
    environment:                              # 환경 변수
      MYSQL_ROOT_PASSWORD: "root"             # MYSQL 루트 패스워드
    command:                                  # 명령어 실행 (한글 깨짐 방지)
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:                                  # 컨테이너 외부 볼륨 : 컨테이너 내부 볼륨
      - D:/docker/mysql/datadir:/var/lib/mysql 

 

작성한 docker-compose.yml 파일을 이용해서 MySQL 컨테이너를 백그라운드로 실행합니다.

PS D:\docker> docker-compose up -d
Creating network "docker_default" with the default driver
Creating mysql_db ... done

PS D:\docker> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
557b909aba81        mysql:8.0.20        "docker-entrypoint.s…"   41 seconds ago      Up 40 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql_db

 

MySQL 컨테이너에 접속해서 데이터베이스와 사용자를 생성합니다.

## MySQL 컨테이너로 접속
PS D:\docker> docker exec -it mysql_db bash

## root 계정으로 mysql 접속
root@557b909aba81:/# mysql -u root -p
Enter password: root <-- docker-compose.yml 파일에 넣은 값
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

## dev 사용자를 생성하고 모든 권한 부여
mysql> create user 'dev'@'%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'dev'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> quit
Bye

# dev 계정으로 mysql 접속
root@557b909aba81:/# mysql -u dev -p
Enter password: password <-- 계정 생성시 입력한 값
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# msa_db 데이터베이스 생성
mysql> create database msa_db default character set utf8;
Query OK, 1 row affected, 1 warning (0.01 sec)

# 데이터베이스 생성 확인
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| msa_db             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.02 sec)

mysql> exit
Bye
root@557b909aba81:/# exit
exit

 

MySQL Workbench로 접속 여부를 확인합니다.

728x90
반응형

'컨테이너 > 도커' 카테고리의 다른 글

02 스웜 모드의 서비스 장애 복구  (0) 2020.09.17
01 스웜 모드 서비스  (0) 2020.09.17
09 docker container network  (0) 2019.05.20
08 docker image 생성  (0) 2019.05.20
07 docker-composer  (0) 2019.05.20

댓글