반응형
docker hub에서 mysql 설치
docker pull mysql
mysql 컨테이너 생성
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=비밀번호 -d mysql
mysql 컨테이너에서 접속
docker exec -it mysql-container mysql -u root -p
mysql 컨테이너와 api-server 컨테이너 연결
docker network생성
docker network create my-network
mysql 컨테이너 실행
docker run --name mysql-container --network my-network -e MYSQL_ROOT_PASSWORD=비밀번호 -d mysql
api-server 컨테이너 실행
docker run --name api-container --network my-network -p 8000:8000 -d api-image
api-server에서 커넥트할땐 host를 mysql컨테이너의 이름으로 설정하면 된다.
이런식으로 mysql 설정파일을 마운트해준다.
-v /path/to/my.cnf:/etc/mysql/my.cnf
api-server와 mysql을 연결하거나
api-server와 nginx를 연결할 때 모두 host로 container 명을 사용하면 된다.
Docker Mysql 한글 안 깨지는 방법
데이터베이스 생성 시
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
테이블 생성 시
CREATE TABLE table_name (content VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci);
mysql 설정파일 생성 (/home/my.cnf)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
도커 컨테이너 실행 시
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=비밀번호 -v /home/my.cnf:/etc/mysql/my.cnf -d --network my-network mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
호스트의 /home/my.cnf 를 container의 /etc/mysql/my.cnf 로 마운트
반응형
'[서버] > [SpringBoot Kotlin]' 카테고리의 다른 글
SpringBoot Mysql 프로젝트 EC2에서 Docker로 실행하기 (1) | 2023.04.21 |
---|---|
SpringBoot Mysql프로젝트 Docker로 실행하기 (0) | 2023.04.19 |
Docker Nginx (0) | 2023.04.11 |
Docker 사용하기 (0) | 2023.04.11 |
순환참조가 문제 삼아지는 시기 (0) | 2023.04.10 |