docker version 2.1.0.3


docker_maria_motolies.7z



위의 첨부파일을 풀어서 압축을 푼 다음 cmd 창의 폴더를 변경한다.


아래는 사용된 cmd를 정리한 것이다.

# dockerfile build(create image)
docker build -t motolies/mariadb:base .

# check images
docker images

# docker run container
docker run -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root --name mydb motolies/mariadb:base

# docker container auto start on boot (add option '--restart unless-stopped')
# https://docs.docker.com/config/containers/start-containers-automatically/
docker run -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root --restart unless-stopped --name mydb motolies/mariadb:base

# check container
docker ps

# into container
docker exec -it mydb bash

# host file to container
docker cp [host 파일경로] [container name]:[container 내부 경로]
docker cp "D:\save.sql" mydb:/

# container file to host
docker cp [container name]:[container 내부 경로] [host 파일경로]
docker cp mydb:/save.sql D:\



dockerClear.bat (실행중인 것을 포함한 모든 container & images 삭제)

@echo off
FOR /f "tokens=*" %%i IN ('docker ps -q') DO docker stop %%i
FOR /f "tokens=*" %%i IN ('docker ps -aq') DO docker rm %%i
FOR /f "tokens=*" %%i IN ('docker images --format "{{.ID}}"') DO docker rmi %%i


Dockerfile

FROM mariadb:10.0.38
MAINTAINER motolies <knw1234@gmail.com>

# 환경설정
# TZ default = UTC
ENV MYSQL_ROOT_PASSWORD=root \
    MYSQL_DATABASE=myDB \
    TZ=Asia/Seoul

# 설정파일 넣기
ADD my.cnf /etc/mysql/my.cnf

# 초기화 쿼리
# /docker-entrypoint-initdb.d 폴더에 파일을 넣어주면 알파벳 순으로 실행
ADD init.sql /docker-entrypoint-initdb.d/init.sql

# 볼륨을 사용하지 않아서 이미지에 데이터를 넣을 수 있음
RUN cp -r /var/lib/mysql /var/lib/mysql-no-volume
CMD ["--datadir""/var/lib/mysql-no-volume"]


my.cnf

[mysqld]
character-set-server = utf8
# 빼고 해보자. 
# 현재 개발환경상 utf8_unicode_ci랑 utf8_general_ci랑 충돌나는 거 같다
#collation-server = utf8_unicode_ci

# 테이블명 대소문자 구별없이
lower_case_table_names = 1
# 메모리 설정
innodb_buffer_pool_size = 1G
# 커넥션 설정
max_connections = 1024
thread_pool_max_threads = 1024
max_allowed_packet = 1073741824
net_buffer_length = 1048576



my.cnf 에서 캐릭터셋을 변경해보고 확인은 디비에 접속해서 아래 쿼리로 확인해보자

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';


init.sql

USE mysql;
GRANT ALL PRIVILEGES ON *.* TO 'motolies'@'localhost' IDENTIFIED BY 'motolies' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'motolies'@'%' IDENTIFIED BY 'motolies' WITH GRANT OPTION;
FLUSH PRIVILEGES;




















Posted by motolies
,