LearnRun
Synology DSM 7, Docker + Django + MariaDB(1) 본문
◈ Contents

본 글에서 기술하는 방식은 Docker + Django로 구성한 이전 글의 결과물을 바탕으로 합니다.
이전 글을 참조하시면 이해하기 수월하니 이 점 참고해주세요.
길어서 파트를 좀 나눴습니다.
본 글에서는 컨테이너 생성부터 DB의 생성, 유저 생성 및 권한 설정을 다룹니다.
Docker 앱 내 MariaDB 컨테이너 생성
이미지 설치

- 레지스트리 탭에서 mariadb를 검색하여 더블클릭합니다.
- 버전을 고를 수 있는데, 현재 stable 버전 중 docker 앱을 지원하는 가장 최신 버전인 10.9.4를 채택했습니다.

- 이미지 탭으로 가서, mariadb 10.9.4를 더블클릭, 컨테이너 생성을 준비합니다.
컨테이너 설정
일반 설정 및 고급 설정


- 이전의 django_test와 같은 네트워크, bridge로 시작합니다.
- 이름은 mariadb_test로 지정하였으며, 높은권한, 자동 재시작에 체크합니다.
- 고급 설정으로 들어가 일부 설정을 추가합니다.
- TZ
Asia/Seoul을 입력합니다. - MARIADB_ROOT_PASSWORD
DB 접속용 패스워드를 입력합니다.
- 이상의 명령어를 입력한 뒤 고급 설정을 저장하고, 일반 설정으로 돌아와 다음의 포트 설정으로 이동합니다.
포트 설정

- 컨테이너 포트는 굳이 건드릴 필요 없습니다.
(시도 안해봤지만, 다른 케이스에서는 포트를 바꿀 때 여러 설정을 건드려야 했기 때문에 그냥 뒀습니다.)
- 로컬 포트는 임의로, 20000으로 지정하였습니다.
- 로컬 포트 설정의 경우, heidiSQL 등을 활용해 PC로 DB를 확인하려는 용도이므로, 필요 없으면 패스하셔도 좋습니다.
볼륨 설정

- 볼륨 설정에서 폴더 추가를 누르면, 원하는 폴더 내에 폴더를 생성할 수 있습니다.

- docker 내의 django_test 폴더 아래에 "mariadb_test" 폴더를 만들어 줍니다.
- 이후, 해당 폴더 아래 "data" 폴더와 "conf" 폴더를 만들어 이미지처럼 폴더를 구성합니다.

- 두 폴더를 선택하여 마운트 경로를 다음과 같이 할당합니다.
생성

- 완료를 눌러, 컨테이너를 생성합니다.
MariaDB User, Database 생성

- mariadb_test 컨테이너를 더블클릭하여 컨테이너 설정으로 들어갑니다.

- 터미널 탭으로 진입한 후, 그 밑줄의 "생성" 버튼을 눌러 신규 터미널을 생성합니다.
- 사진과 같이 bash 터미널 탭이 생깁니다. 다음과 같이 명령어를 입력합니다.
- mysql -u root -p
root 유저 권한으로 로그인합니다.
이후 패스워드 입력을 할 수 있는데, 이전 고급설정의 변수 입력에 사용한 비밀번호를 입력합니다.

- 로그인이 성공하면, 위와 같이 DB를 제어할 수 있는 콘솔이 열립니다.
- create user 'django_id'@'%' identified by 'django_pw';
>> name : django_id >> pw : django_pw
의 정보로 유저를 생성합니다. - create database django_db character set utf8mb4 collate utf8mb4_unicode_ci;
django_db라는 이름의 database를 생성하고, 기본 언어와 정렬방식을 지정합니다. - grant all privileges on django_db.* to 'django_id'@'%';
django_id에게, django_db의 전체 권한을 부여합니다. - flush privileges;
mariadb의 캐시를 지우고, 재시작 없이 신규 설정을 적용합니다. (유저 추가, pw 변경 등)
- 상기 명령어를 입력하여, django와 연동할 database의 정보를 생성합니다.
마치며
성공적으로 컨테이너 생성과 더불어 DB의 세부 설정까지 완료했습니다.
django_test 컨테이너와 maria_db 컨테이너를 서로 연결하는 과정을 다음 글에서 다루겠습니다.