Docker와 docker-compose를 사용하려면 먼저 컴퓨터에 설치되어 있어야 해요. 아직 설치하지 않았다면 Docker 웹사이트의 안내에 따라 설치하세요.
MariaDB Docker 이미지 가져오기
먼저 Docker Hub에서 MariaDB 이미지를 가져와야 해요. 이 이미지에는 MariaDB 실행에 필요한 모든 것이 들어 있어요.
docker pull mariadb:latest
이 명령은 MariaDB 이미지의 최신 버전을 다운로드해요. 필요하다면 특정 버전을 지정할 수도 있어요:
docker pull mariadb:10.5
Docker 네트워크 만들기(선택 사항)
사용자 지정 네트워크를 만들면 컨테이너 간 통신이 더 원활해져요. 이 단계는 선택 사항이지만, 여러 컨테이너를 사용하는 복잡한 구성이라면 권장해요.
docker network create mariadb_network
MariaDB 컨테이너 실행하기
이제 방금 가져온 이미지로 MariaDB 컨테이너를 실행해 볼게요. 로컬 포트를 컨테이너 포트에 매핑하고, root 비밀번호와 데이터베이스 이름을 위한 환경 변수도 설정해요.
docker run --name mariadb-container -d \
--network mariadb_network \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=mydatabase \
-p 3306:3306 \
mariadb:latest
- –name mariadb-container: 쉽게 참조할 수 있도록 컨테이너 이름을 지정해요.
- -d: 컨테이너를 백그라운드(detached) 모드로 실행해요.
- –network mariadb_network: 컨테이너를 사용자 지정 네트워크에 연결해요.
- -e MYSQL_ROOT_PASSWORD=my-secret-pw: MariaDB의 root 비밀번호를 설정해요.
- -e MYSQL_DATABASE=mydatabase: mydatabase라는 데이터베이스를 생성해요.
- -p 3306:3306: 호스트의 3306 포트를 컨테이너의 3306 포트에 매핑해요.
MariaDB 컨테이너 실행 확인하기
다음 명령으로 MariaDB 컨테이너가 실행 중인지 확인하세요:
docker ps
예상 출력:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123def456 mariadb:latest "docker-entrypoint.s…" 5 seconds ago Up 5 seconds 0.0.0.0:3306->3306/tcp mariadb-container
MariaDB 컨테이너에 연결하기
MariaDB 컨테이너가 실행 중이니 이제 MySQL 클라이언트로 연결할 수 있어요. 로컬에 MySQL 클라이언트가 설치되어 있다면 다음과 같이 연결하세요:
mysql -h 127.0.0.1 -P 3306 -u root -p
root 비밀번호(my-secret-pw)를 입력하면 MariaDB 인스턴스에 연결돼요.
Docker Compose 사용하기
Docker Compose를 사용하면 간단한 설정 파일 하나로 여러 컨테이너 구성을 관리할 수 있어요. Docker Compose로 MariaDB를 설정하는 방법은 다음과 같아요:
docker-compose.yml 파일 만들기
프로젝트 루트 디렉터리에 docker-compose.yml 파일을 만드세요. 이 파일에는 개발 환경에서 실행할 컨테이너를 정의해요.
version: '3.1'
services:
mariadb:
image: mariadb:latest
container_name: mariadb-compose
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: mydatabase
ports:
- "3306:3306"
networks:
- mariadb_network
networks:
mariadb_network:
driver: bridge
이 예제에서는 mariadb:latest 이미지를 사용하고, 데이터베이스 설정을 위해 여러 환경 변수를 지정해요. 또한 애플리케이션에서 데이터베이스에 연결할 수 있도록 MariaDB 기본 포트(3306)를 노출해요.
Docker Compose로 컨테이너 시작하기:
docker-compose up -d
예상 출력:
Creating network "projectname_mariadb_network" with driver "bridge"
Creating mariadb-compose ... done
이 명령은 필요한 이미지를 가져와 컨테이너를 백그라운드에서 시작해요. 포그라운드에서 실행하려면 -d 없이 실행하세요. 컨테이너 상태는 다음 명령으로 확인할 수 있어요:
docker-compose ps
Beekeeper Studio로 MariaDB에 연결하기
Beekeeper Studio는 MariaDB를 지원하는 오픈 소스 SQL 에디터예요. Beekeeper Studio로 Docker 기반 MariaDB 인스턴스에 연결하는 방법은 다음과 같아요:
- Beekeeper Studio를 열고
New Connection을 클릭하세요. - 연결 유형으로 MariaDB를 선택하세요.
- 다음 연결 정보를 입력하세요:
- 호스트: 127.0.0.1
- 포트: 3306
- 사용자 이름: root
- 비밀번호: my-secret-pw
- 데이터베이스: mydatabase(선택 사항)
Connect를 클릭해 연결하세요.
MariaDB 데이터베이스를 편집하고 쿼리할 수 있는 깔끔하고 쾌적한 인터페이스가 나타나요:
개발 환경 관리하기
MariaDB 컨테이너를 중지하려면:
docker stop mariadb-container
컨테이너를 다시 시작하려면:
docker start mariadb-container
컨테이너를 삭제하려면:
docker rm -f mariadb-container
마무리
Docker로 MariaDB 개발 환경을 구성하면 관리와 복제가 쉬운 견고한 환경을 만들 수 있어요. Docker Compose를 함께 사용하면 확장성까지 더해져, 작은 프로젝트부터 큰 개발 팀까지 모두에게 훌륭한 선택이에요.
함께 읽어 보면 좋은 글:
Beekeeper Studio는 무료 & 오픈 소스 MariaDB GUI예요
Beekeeper Studio는 제가 찾은 MariaDB 관리 도구 중 최고예요. 다재다능하고 사용하기 쉬우며 유용한 옵션도 많아요. 정말 보석 같은 도구예요! 개발팀에 축하를 보내요! - Nick
Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬운 MariaDB 클라이언트예요. 다른 데이터베이스도 많이 지원하고, Windows, Mac, Linux에서 모두 잘 작동해요.
MariaDB 사용자들의 Beekeeper Studio 후기
MariaDB에 기본으로 포함되어 있고 무료라서 늘 HeidiSQL을 써왔지만, 느리거나 아예 없다시피 한 자동 완성과 마우스를 많이 써야 하는 점이 항상 불만이었어요. BeeKeeper가 이런 불만을 해결해 줘요. 테이블 데이터의 JSON 포맷팅도 정말 편리해요.
제 업무에서는 MSSQL/Mariadb/Oracle/Postgres와 sqlite를 사용해 레거시 코드부터 완전히 새로운 코드까지 모두 다루는데, 이제 하나의 도구로 제 모든 요구를 충족하는 도구를 찾은 것 같아요