DevOps/Docker
Docker - MySql 8 개발환경, docker-compose로 간단하게 구성하기
맑은안개
2022. 1. 5. 05:28
docker-compose를 사용하여 MySql8 개발환경을 간단하게 구성하고 워크벤치를 통해 설치된 인스턴스에 접속해본다.
개발환경
- MacOS ( Windows 동일 )
- Docker
- Workbench For mysql8 - 여기서 OS에 맞게 다운로드
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;
반응형