반응형

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(20NOT NULL AUTO_INCREMENT,
  `currency` varchar(255DEFAULT NULL,
  `lang` varchar(255DEFAULT NULL,
  `nation` varchar(255DEFAULT NULL,
  `population` int(11NOT 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된 것을 확인할 수 있다.

반응형

+ Recent posts