소소한 개발

개인 블로그 만들기(4) : [서버구축] Oracle Cloud Docker MariaDB 구축 (docker-compose.yml 사용)

JinCode 2021. 9. 2. 16:09

개인 블로그 만들기(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에 접속하지 않아도 외부에서 접속할 수 있습니다.