개인 블로그 만들기(4) : [서버구축] Oracle Cloud Docker MariaDB 구축 (docker-compose.yml 사용)
개인 블로그 만들기(4) : [서버구축] Oracle Cloud Docker MariaDB 구축 (docker-compose.yml 사용)
* 기록용입니다.
* Ubuntu 버전은 20.04 입니다.
* 무료 프론티어를 사용하고 있습니다.
Docker Mariadb Image : https://hub.docker.com/_/mariadb
1. 오라클 VPS 방화벽 오픈
| 오라클 클라우드의 인스턴스에 들어가서 서브넷을 클릭합니다.
| 처음 보이는 Default_ 규칙을 클릭합니다. 해당 규칙은 인스턴스를 생성할때 자동으로 생기는 규칙입니다.
| 수신 규칙 추가 버튼을 누른 뒤 값을 세팅해줍니다.
소스 CIDR : 0.0.0.0/0
대상포트범위 : 3306
설명 : MariaDB
수신 규칙 추가를 누르면 아래 수신 규칙 List에 3306 포트에 대한 내용이 추가된것을 볼 수 있습니다.
2. Ubuntu iptables 사용 중지
# 방화벽 사용 중지
sudo iptables -F
# 방화벽 상태 확인
sudo iptables -L
3. MariaDB 설치
sudo docker pull mariadb
3.1 docker-compose 설치 및 작성
sudo apt-get install docker-compose
| docker에 이미지를 올리고 컨테이너를 실행, 정지, 재시작등 일일히 명령어를 작성하는 것 보다는 간단한 명령어로 손쉽게 컨테이너 동작을 실행시킬 수 있기 때문에 docker-compose를 사용한다.
굳이 필요 없으면 사용하지 않아도 된다.
$ vi docker-compose.yml
(docker-compose.yml 내용)
version: '3.1'
services:
mariadb:
image: mariadb:latest
container_name: mariadb # 컨테이너 이름 설정
restart: always
ports:
- 3306:3306 # 외부포트:Docker포트
volumes:
- /home/ubuntu/mariadb/data:/var/lib/mysql # Docker가 삭제되어도 데이터 유지를 위한 Docker 외부로 데이터 백업
- /home/ubuntu/mariadb/conf.d:/etc/mysql/conf.d
environment:
MYSQL_ROOT_PASSWORD: 1234
command:
- --character-set-server=utf8mb4 # 인코딩
- --collation-server=utf8mb4_unicode_ci
$ docker-compose up -d
| docker-compose 내용을 작성해줍니다.
ports에는 (외부포트):(docker 내부포트)이며 MYSQL_ROOT_PASSWORD에는 root에 대한 비밀번호를 적어주시면 됩니다.
| wq로 docker-compose.yml을 저장 한뒤, $docker-compose up -d 명령어를 통해 해당 컨테이너를 실행합니다.
PORTS에 0.0.0.0:3306->3306/tcp라고 되어 있으면 오라클 외부 3306포트와, Docker 내부포트 3306이 연결되었습니다.
이제 해당 DB를 관리하기 편하게 외부DB Toll에서 접속해 봅시다.
4. DBeaver (Database Toll) 접속
| 저같은 경우 DB Tool로 무료인 DBeaver을 사용하고 있습니다.
Server Host : 오라클 인스턴스 공용 Ip주소
Username : root
Password : 1234 (MYSQL_ROOT_PASSWORD: 1234)
이렇게만 적은 다음, Test Connection 버튼을 클릭해서 연결이 되었는지 확인합니다. 잘 따라오셨다면 문제없이 연결이 되었을 겁니다. 완료를 눌러서 Database를 정보를 저장합니다.
| 데이터베이스에 접속 후 기본 DB, Table에 Select문을 날려보면 조회가 가능한것을 확인할 수 있습니다.
이제 오라클 클라우드의 인스턴스, Docker에 접속하지 않아도 외부에서 접속할 수 있습니다.