Codit Develop
Codit Develop
Codit Develop
전체 방문자
오늘
어제
  • 분류 전체보기 (146)
    • IT (1)
      • 스마트폰 (1)
    • Game (59)
      • DNF (0)
      • StarCraft2 (11)
      • LostArk (45)
      • Minecraft (3)
      • Elyon (0)
    • Develop (43)
      • Web (15)
      • PHP (2)
      • Laravel (0)
      • C# (11)
      • NodeJS (1)
      • Java (2)
      • Python (1)
      • Cordova (3)
      • Android (0)
      • WPF (1)
      • PowerShell (5)
      • Other (2)
      • Javascript (0)
    • OS (17)
      • Windows (6)
      • Linux (11)
    • Product (17)
      • Docker (10)
      • GitLab (3)
      • NuGet (2)
      • Git (1)
      • Nginx (1)
    • DB (7)
      • All-DB (2)
      • MariaDB (2)
      • MySQL (2)
      • Oracle (0)
      • MSSQL (1)
      • Cubrid (0)
    • PC (2)
      • 견적함 (2)
      • 정보 (0)

블로그 메뉴

    공지사항

    인기 글

    태그

    • 유디아
    • web
    • 모험의서
    • 구릉지
    • jQuery
    • 모험의 서
    • html
    • c#
    • 스타2
    • 숨겨진
    • 히든
    • 아르테미스
    • 로스트아크
    • 조합
    • db
    • css
    • docker
    • 모험의
    • 서
    • 모코코
    • 오즈혼
    • Linux
    • JavaScript
    • 디펜스
    • 뷰포인트
    • 개복디
    • 몬스터
    • MySQL
    • 씨앗
    • 개인복권디펜스

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Codit Develop
    Product/Docker

    [Docker] MariaDB 올리기

    [Docker] MariaDB 올리기
    Product/Docker

    [Docker] MariaDB 올리기

    2021. 5. 13. 17:02
    반응형

    MariaDB Docker Image 생성 및 실행

    1. 폴더 구조

    2. Source

    Dockerfile

    FROM mariadb
    
    ENV MYSQL_ROOT_PASSWORD qwer1234
    
    WORKDIR /etc/mysql
    RUN mkdir setDB
    WORKDIR /etc/mysql/setDB
    
    //초기 세팅 SQL 파일 Docker로 Copy
    COPY ./Config/setDB.sql /etc/mysql/setDB/setDB.sql
    
    //MariaDB Config Setting (table 소문자, 한국 시간, 한글 깨짐 수정 등)
    RUN echo lower_case_table_names=1 >> /etc/mysql/conf.d/docker.cnf
    RUN echo default-time-zone='+9:00' >> /etc/mysql/conf.d/docker.cnf
    RUN echo collation-server = utf8mb4_unicode_ci >> /etc/mysql/conf.d/docker.cnf
    RUN echo collation-server = utf8mb4_0900_ai_ci >> /etc/mysql/conf.d/docker.cnf
    RUN echo character-set-server = utf8mb4 >> /etc/mysql/conf.d/docker.cnf
    RUN echo skip-character-set-client-handshake >> /etc/mysql/conf.d/docker.cnf
    • ROOT 비밀번호 설정
      • ENV MYSQL_ROOT_PASSWORD [Password]

    Docker-compose

    version: '3'
    services:
      MariaDB:
        container_name: MariaDB
        restart: always
        build: 
          context: .
          dockerfile: ./DockerFile/MariaDB_Dockerfile
          args: 
            buildno: 1.0
        ports :
          - "35000:3306"
    
    • 외부 접속 시 Port 35000 으로 접속할 수 있게 포워딩.
    • 컨테이너/이미지 이름 : MariaDB

    Set DB SQL

    CREATE DATABASE DB_CREATEDB ;
    
    create user 'admin'@'%' identified by 'qwer1234';
    grant all privileges on DB_CREATEDB.* to 'admin'@'%' identified by 'qwer1234';
    flush privileges;
    • DB_CREATEDB 생성
    • admin/qwer1234 유저 생성 후 DB_CREATEDB의 모든 권한 부여

    Set DB Script (Windows)

    @echo off
    
    set CONTAINER_NAME=MariaDB
    set SET_SQL_PATH=/etc/mysql/setDB/setDB.sql
    set SET_SQL_DELAY=10
    set DB_ROOT_UID=root
    set DB_ROOT_PASSWORD=system32
    
    
    echo.
    echo.
    echo [RUN] 1. Remove Container '%CONTAINER_NAME%' 
    echo.
    docker stop %CONTAINER_NAME%
    docker rm %CONTAINER_NAME%
    docker rmi %CONTAINER_NAME%
    echo.
    echo [RUN] 2. Run Container
    echo.
    docker-compose up -d
    echo.
    echo [RUN] 3. Set DB
    echo Wait for %SET_SQL_DELAY% second
    timeout %SET_SQL_DELAY%
    echo.
    docker exec %CONTAINER_NAME% sh -c "mysql -u%DB_ROOT_UID% -p%DB_ROOT_PASSWORD% < %SET_SQL_PATH%"
    echo. 
    echo [RUN COMPLETE]
    echo.
    echo.
    • Dockerfile 에서 설정한 ROOT 계정 비밀번호를 DB_ROOT_PASSWORD에 입력
    • Docker-compose 에서 설정한 컨테이너 이름을 CONTAINER_NAME에 입력

    Set DB Script (Linux)

    CONTAINER_NAME=MariaDB
    SET_SQL_PATH=/etc/mysql/setDB/setDB.sql
    SET_SQL_DELAY=10
    DB_ROOT_UID=root
    DB_ROOT_PASSWORD=system32
    
    
    echo ""
    echo ""
    echo "[RUN] 1. Remove Container '$CONTAINER_NAME' "
    docker stop $CONTAINER_NAME
    docker rm $CONTAINER_NAME
    docker rmi $CONTAINER_NAME
    echo ""
    echo "[RUN] 2. Run Container"
    docker-compose up -d
    echo ""
    echo "[RUN] 3. Set DB"
    echo "Wait for 5 second"
    sleep $SET_SQL_DELAY s
    docker exec $CONTAINER_NAME sh -c "mysql -u$DB_ROOT_UID -p$DB_ROOT_PASSWORD < $SET_SQL_PATH"
    echo ""
    echo "[RUN COMPLETE]"
    echo ""
    echo ""
    
    • Dockerfile 에서 설정한 ROOT 계정 비밀번호를 DB_ROOT_PASSWORD에 입력
    • Docker-compose 에서 설정한 컨테이너 이름을 CONTAINER_NAME에 입력

    3. 실행

    # Window
    ./setDB.bat
    
    # Linux
    sh ./setDB.sh
    

    4. 예제 파일

    MariaDB.zip
    0.00MB

     

    반응형
    저작자표시 비영리 변경금지 (새창열림)

    'Product > Docker' 카테고리의 다른 글

    [Docker] Container Root 계정으로 접속  (0) 2022.01.12
    [Docker] Private Nuget : BaGet 서버 구축  (0) 2021.07.21
    [Docker] MariaDB 백업/복구 (mysqldump)  (0) 2021.01.12
    [Docker] Image / Container 관리 (Export, Import, Save, Load)  (0) 2021.01.07
    [Docker] 실행중인 Container restart 옵션 추가  (0) 2021.01.07
    • 1. 폴더 구조
    • 2. Source
    • Dockerfile
    • Docker-compose
    • Set DB SQL
    • Set DB Script (Windows)
    • Set DB Script (Linux)
    • 3. 실행
    • 4. 예제 파일
    'Product/Docker' 카테고리의 다른 글
    • [Docker] Container Root 계정으로 접속
    • [Docker] Private Nuget : BaGet 서버 구축
    • [Docker] MariaDB 백업/복구 (mysqldump)
    • [Docker] Image / Container 관리 (Export, Import, Save, Load)
    Codit Develop
    Codit Develop
    내가 보려고 만든 개발 블로그

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.