DB
docker container 기반의 mariaDB Galera Cluster(1)
MoonjuLee
2023. 7. 16. 21:56
들어가기 전
이런 경험을 하는 이유는 기반 지식이 없다면 내가 필요한 것을 얼마나 이해하며 실행할 수 있을까?라는 생각과 부딪히며 배우자라는 마음으로 수행했습니다!(docker, Cluster 지식 아무것도 없이 시작했습니다...)
실습환경
oracle VM, VM내의 cnetos7, mariaDB 10.3, docker(최신 버전 사용)
참고
mariaDB 공식 문서 : https://mariadb.com/ko/resources/blog/installing-mariadb-10-on-centos-7-rhel-7/
docker 공식 문서 : https://docs.docker.com/engine/install/centos/
docker 설치
패키지 매니저를 이용한 설치
- yum install docker-ce docker-ce-cli container.io
- systemctl start docker ( daemon 시작 )
- systemctl enable ( reboot 시 daemon 재시작 ) : 재부팅 시 자동으로 docker를 시작 설정.
docker container 만들기
centos7 컨테이너 만들기 (※ [입력] : 입력에 알맞은 것을 넣어서 명령어 실행! )
- docker run -it -h [호스트 네임] --name [컨테이너 이름] --previleged -d centos:7
(명령어 설명) → -i : 사용자 입출력 가능, -t : 가상 터미널 환경 조성, —privileged : 시스템 주요 자원에 접근할 수 있는 옵션, -d : detach 데몬모드라고도 불리고 컨테이너가 백그하운드로 실행됨, centos:7 : 이미지
docker container 접속
centos 컨테이너 안으로 접속
- docker exec -it [컨테이너 이름] /bin/bash
(명령어 설명) → exec : 이미 실행 중인 컨테이너의 디버깅 용도로 사용, /bin/bash : 컨테이너의 접속을 bash로.
centOS7 container 안 mariaDB 설치
접속한 centos 컨테이너에서. (주의 : container name이나 hostname를 잘 구별해서 현재 내가 어디서 작업하는지 잘 확인하자!)
※ 어떤 방법으로 mariaDB를 설치할 것인가? : 방법 1. tarball(tar.gz파일), 방법 2. 패키지매니저(docker를 설치한 거처럼)
※ 저는 해당 방법 1, 2번 방법 둘 다 시도해 보았습니다.
※ 방법 1.
- docker cp 보낼 파일 경로 [컨테이너 명]:/파일을 받을 경로
(명령어 설명) → local에서 컨테이너 안의 디렉토리로 파일 복사(반대는 컨테이너에서 로컬로~)
- 1번 방법이기 때문에 /usr/local 에 tar.gz 압축파일 압축 풀기(mariaDB는 여기서 해야 됨)
- tar -zxvf [파일명]
(명령어 설명) → z : gzip 압축 적용 옵션, x : tar 아카이브에서 파일 추출, v : 처리되는 과정(파일 정보) 자세히 나열, f : 대상 tar 아카이브 지정(기본옵션)
- ln -s [디렉토리] : mysql로 심볼릭 링크 설정
- yum -y libaio : mariaDB는 선행적으로 libaio를 설치해줘야 한다.
- ./scripts/mysql_install_db --user=mysql : 설치 스크립트 실행
- bin/mysqld_safe —user=mysql : DB가 비정상적인 종료되는 행위를 감시하며, 다시 띄워거나 이외의 조치를 해준다.
- 설치 후 실행(mysqld 가 mysql을 띄우는 형태)
- ./mysql_secure_installation : 보안처리를 해주는 스크립트실행
- 이후 DB 연결 test database 접근 -> 성공!
방법 2번은 다음에 cluster와 함께 돌아오겠습니다. 감사합니다.
