1. 시험환경
˙ docker
˙ docker-compose
˙ mariaDB
2. 목적
˙ docker 및 docker-compose를 이용하여 MariaDB를 기동한다.
˙ volumes를 이용하여 MariaDB 생성시 설정 및 데이터 Import 방법을 알아보자.
3. 적용
① MariaDB를 기동하기 위한 compose.yml을 작성하며 DB 설정 및 초기 데이터 구축을 테스트한다.
- /etc/mysql/conf.d : MariaDB 설정 사항이 저장되면 버전, OS 등에 따라 경로는 달라질 수 있다.
- /docker-entrypoint-initdb.d : 컨테이너 최초 실행 시 스크립트 파일(sql)에 저장된 내용이 반영된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
version: "3.8"
services:
test-mariadb:
container_name: test-mariadb
build:
dockerfile: Dockerfile
context: ./mariadb
image: mariadb
environment:
- MARIADB_DATABASE=world
- MARIADB_ROOT_PASSWORD=1q2w3e
volumes:
- ./mariadb/config:/etc/mysql/conf.d
- ./mariadb/init:/docker-entrypoint-initdb.d
ports:
- "3400:3306"
|
cs |
② character-set 등 MariaDB 설정 정보 파일을 Host 경로에 저장한다.
- 파일명 : ./mariadb/config/mariadb.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
[mysqldump]
default-character-set=utf8mb4
|
cs |
③ MariaDB 컨테이너가 최초 기동되면서 실행할 스크립트 파일을 Host 경로에 저장한다.
- 파일명 : ./mariadb/init/world.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
-- world 데이터베이스 구조 내보내기
CREATE DATABASE IF NOT EXISTS `world` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin */;
USE `world`;
-- 테이블 world.nation 구조 내보내기
CREATE TABLE IF NOT EXISTS `nation` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`currency` varchar(255) DEFAULT NULL,
`lang` varchar(255) DEFAULT NULL,
`nation` varchar(255) DEFAULT NULL,
`population` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- 테이블 데이터 world.nation:~4 rows (대략적) 내보내기
DELETE FROM `nation`;
/*!40000 ALTER TABLE `nation` DISABLE KEYS */;
INSERT INTO `nation` (`id`, `currency`, `lang`, `nation`, `population`) VALUES
(1, 'Dollar', 'English', 'America', 50000),
(2, 'Frank', 'Swiss', 'Swizerland', 2000),
(3, 'Found', 'English', 'England', 60000),
(4, 'Euro', 'Italian', 'Italiy', 4000);
/*!40000 ALTER TABLE `nation` ENABLE KEYS */;
|
cs |
④ docker-compose를 실행하여 MariaDB를 기동한다.
- > docker-compose -f compose.yml up -d
⑤ Container 실행 후 Client 도구를 이용하여 접속한다.
- 접속 정보는 compose.yml 파일에 설정한 환경변수 등을 참고한다.
4. 결과
˙ sql 스키마 및 데이터가 Import된 것을 확인할 수 있다.
'설정' 카테고리의 다른 글
네트워크 관련 리눅스 CLI 명령어 (man, lsof, nslookup, telnet, netstat) (0) | 2024.06.02 |
---|---|
SCP(Secure CoPy) 명령어 (1) | 2024.06.02 |
가비아에서 구매한 도메인을 AWS EC2에 직접 연결 (안됨) (0) | 2023.11.03 |
docker-compose 주요 명령어 (0) | 2023.08.19 |
PEM파일을 PPK로 변환하기 (PEM to PPK) (0) | 2023.07.23 |