도커(Docker)

도커(Docker) / MariaDB 10 설치 / 공식문서 기준 / 아과노트

아과노트 2023. 8. 25. 18:58
728x90
반응형

안녕하세요, 

 

아과노트 입니다.

 

이번에는 지난번 설치한 도커에 MariaDB를 올려볼까 합니다.

 

MariaDB 로고

 

도커를 왜 사용하는지와 설치 방법은 다음 문서들을 확인해 주세요

 

2023.06.26 - [도커(Docker)] - 도커(Docker)란 무엇이고, 컨테이너란 무엇인가? (Docker의 정의, 공식문서 기준) / 아과노트

 

도커(Docker)란 무엇이고, 컨테이너란 무엇인가? (Docker의 정의, 공식문서 기준) / 아과노트

다들 도커에 대해서 많이 들어보셨을 것입니다. 도커 하면 컨테이너가 어떻다, 가상화보다 좋다 라고 하는데... 도대체 도커 하면 왜 자꾸 컨테이너가 나오고, 도커를 왜 쓰는지와 어떤 이점이

alphalok.tistory.com

 

2023.05.08 - [도커(Docker)] - CentOS / 도커(Docker) 설치 / 공식문서 기준 끝판왕(Install Docker Engine on CentOS) / 아과노트

 

CentOS / 도커(Docker) 설치 / 공식문서 기준 끝판왕(Install Docker Engine on CentOS) / 아과노트

안녕하세요, 아과노트입니다. 오늘은 우분투(Ubuntu 22.04 LTS Server)에 도커(Docker)를 설치의 다른 판으로 CentOS 7에서 도커를 설치하는 방법에 대해 알아보겠습니다. 저는 정석적인 것을 좋아하기에

alphalok.tistory.com

 

기존에는 보통 서버에 바로 DB를 설치했는데요...

도커는 놀랍게도 DB도 컨테이너로 제공해 줍니다.

기존 서버는 DB에 하나의 버전만 설치가 가능했지만

도커를 사용하면 여러 버전의 DB도 컨테이너만 다르게 해서 설치가 가능합니다.

기존 서버는 서버에 DB를 보통 한개만 설치하지만
도커를 사용하면 다른 버전의 DB를 여러개 설치도 가능합니다!
이것은 엄청난 장점입니다.
-아과노트-

그러면 어떻게 설치하는지 알아보도록 하겠습니다.

 

오늘의 공식문서는 다음과 같습니다.

 

https://hub.docker.com/_/mariadb

 

mariadb - Official Image | Docker Hub

Note: the description for this image is longer than the Hub length limit of 25000, so has been trimmed. The full description can be found at https://github.com/docker-library/docs/tree/master/mariadb/README.md. See also docker/hub-feedback#238 and docker/r

hub.docker.com

MySQL과 MariaDB중 항상 무엇을 설치할지 고민이 되는데요..

그래도 좀 더 라이센스 문제에 자유로운 MariaDB가 좋을것 같아서 MariaDB를 먼저 설치해볼까 합니다.

 

1. 기본 사용법: docker run 이용

공식문서에서 사용하는 가장 기본적인 사용법은 다음과 같습니다.

$ docker run --detach --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw  mariadb:latest

 

여기서 필수적인 것만 남긴다면 다음과 같이 MARIADB_ROOT_PASSWORD만 넣어서 생성할 수 있습니다.

$ docker run --detach --name some-mariadb --env MARIADB_ROOT_PASSWORD=my-secret-pw  mariadb:latest

 

2. 기본 사용법: docker compose 이용

공식문서에서 사용하는 docker compose는 다음과 같습니다.

아래의 글을 docker-compose.yml 파일로 만들어 주세요.

vi docker-compose.yml

그리고 아래의 내용을 복사하여 붙여너어 주시면 됩니다.

# Use root/example as user/password credentials
version: '3.1'

services:

  db:
    image: mariadb
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

다 작성했으면

:wq 를 눌러서 저장하고 나옵니다.

 

위의 yml 파일을 설명을 드리자면 docker compose로 두개의 서비스를 띄웁니다.

db와 adminer 를 띄웁니다.

db의 image는 mariadb를 사용하고(image: mariadb)

restart 옵션을 통해서 오류가 발생시 항상 다시 실행이 되도록 셋팅합니다(restart: always)

그리고 환경 변수로(environment) MARIADB_ROOT_PASSWORD 를 셋팅합니다.

 

adminer는 8080포트로 admin 관리자 페이지를 띄웁니다

자세한 내용은 다음 공식문서를 읽어주세요.

여기서는 adminer는 생략하도록 하겠습니다.

 

https://hub.docker.com/_/adminer

 

adminer - Official Image | Docker Hub

Quick reference Supported tags and respective Dockerfile links Quick reference (cont.) Adminer What is Adminer? Adminer (formerly phpMinAdmin) is a full-featured database management tool written in PHP. Conversely to phpMyAdmin, it consist of a single file

hub.docker.com

3. docker compose  실행

docker compose를 실행하는 방법은 다음과 같습니다.

아까 만들었던 docker-compose.yml 파일의 위치에 가서 아래의 명령어를 넣어 주세요

docker compose up -d

 

-d의 의미는 데몬으로 실행한다는 의미입니다. 즉, 백그라운드에서 실행하겠다는 뜻입니다.

 

4. Mariadb의 저장 위치(volume) 설정하기

볼륨을 설정하기 위해 바인딩 볼륨 방식을 이용하도록 하겠습니다.

docker-compose.yml에 다음을 추가해 주세요.

      volumes:
        - ./data/mysql/:/var/lib/mysql

전체 docker-compose.yml은 다음과 같습니다.

 

# Use root/example as user/password credentials
version: '3.1'

services:

  db:
    image: mariadb
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: example
    volumes:
      - ./data/mysql/:/var/lib/mysql

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

이렇게 하면 ./data/mysql에 mariadb의 데이터가 차곡차곡 쌓이는 것을 볼 수 있습니다.

볼륨 설정은 꼭 필요합니다. 왜냐하면 container는 언제든 삭제되고, 재생성 될 수 있습니다.

그때 data를 보존하기 위해서는 반드시 볼륨을 설정해서 특정 위치에 지속적으로 데이터를 쌓을수 있도록 셋팅이 필요합니다. 이런 부분이 바로 volume 설정입니다.

 

DB를 컨테이너로 올릴때는 반드시 데이터 영역을 Volume으로 셋팅해 주세요
-아과노트-

 

오늘은 여기까지 입니다.

이제 DB도 도커를 이용해서 컨테이너로 띄울 수 있습니다.

데이터 삭제 걱정도 없이 안전하게 ㅎㅎㅎ

여러분도 DB를 컨테이너로 올려보세요

그럼 다음에 뵙겠습니다.

 

728x90
반응형