본문 바로가기
DevOps/Docker

Docker - MySql 8 개발환경, docker-compose로 간단하게 구성하기

by 맑은안개 2022. 1. 5.

docker-compose를 사용하여 MySql8 개발환경을 간단하게 구성하고 워크벤치를 통해 설치된 인스턴스에 접속해본다.

개발환경

docker-compose.yml

version: '3'
services:
  mysql:
    platform: linux/x86_64
    image: mysql:8.0
    container_name: local-db
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 1234
      TZ: Asia/Seoul
    volumes:
      - ./db:/var/lib/mysql
      - ./config:/etc/mysql
      - ./mysql-files:/var/lib/mysql-files
  • platform - MacOS 실리콘칩인 경우 linux/x86_64 지정
  • restart - docker재기동시 항상 기동된다.
  • volumes를 지정하여 재기동시에도 데이터가 손실되지 않는다.
  • MYSQL_ROOT_PASSWORD - root유저의 패스워드를 지정한다.
  • TZ - 시간대를 설정한다.
  • 기타 MySql Image 주요 옵션
    • MYSQL_DATABASE - 기동시 생성되는 database, 아래 user / password가 기술된 경우 해당 user는 database의 최고권한을 얻는다.
    • MYSQL_USER, MYSQL_PASSWORD

docker 실행

docker-compose up -d

프로세스 정상 기동 확인

 docker logs local-db
...
2022-01-04T07:45:14.350060Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2022-01-04T07:45:14.350917Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2022-01-04T07:45:14.600381Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2022-01-04T07:45:14.604310Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.27'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.

콘솔 접속

PS D:\docker> docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                               NAMES
7b669343aaff   mysql:8.0   "docker-entrypoint.s…"   44 seconds ago   Up 41 seconds   0.0.0.0:3306->3306/tcp, 33060/tcp   local-db

> docker exec -it mysql-db /bin/bash
root@7b669343aaff:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28 MySQL Community Server - GPL

docker-compose.yml에 환경변수로 설정한 Root 패스워드 입력

workbench 접속

Connection 정보를 설정한다. 로컬의 3306포트에 인스턴스가 기동되어 있으므로 해당 정보를 입력.


docker-compose에서 database, user를 별도로 지정하지 않았다면 root유저로 접속하여 database를 생성한다.

database 생성

create database testdb;

use testdb;

 

 

반응형