이번에는 도커를 이용해 MySQL 서버를 구동하고, GUI 툴인 DBeaver를 연동하여 데이터를 쉽게 관리하는 방법을 알아본다.
1. Docker를 이용한 MySQL 컨테이너 구동
가장 먼저 우분투(Ubuntu) 환경에서 도커를 사용하여 MySQL 데이터베이스 서버를 컨테이너 형태로 실행한다.
docker run -p 3307:3306 --name my_db \
-e MYSQL_ROOT_PASSWORD=1234 \
-e MYSQL_DATABASE=my_db \
-e MYSQL_USER=snowman \
-e MYSQL_PASSWORD=snowman \
-d mysql:5.7
- -p 3307:3306: 호스트 머신의 3307 포트와 컨테이너 내부의 3306(MySQL 기본 포트) 포트를 연결(Port Forwarding)한다. 이를 통해 외부에서는 3307 포트를 통해 컨테이너 안의 MySQL에 접속할 수 있다.
- -e: 컨테이너 내부 환경 변수를 설정한다. 루트 비밀번호, 기본 생성 데이터베이스명, 추가 사용자 계정 정보를 초기 설정값으로 전달한다.
💡 호스트의 기본 포트인 3306 대신 3307을 사용함으로써 기존에 설치된 다른 데이터베이스와의 충돌을 방지한다. 도커를 사용하면 이처럼 포트 격리가 용이하다.
2. 서비스 상태 확인 및 관리 도구 설치
컨테이너가 정상적으로 구동 중인지 확인한다.
# 실행 중인 컨테이너 목록 확인
docker ps
# 3307 포트 점유 상태 확인
lsof -i:3307
- docker-proxy: lsof 결과에서 볼 수 있듯이 호스트의 포트를 컨테이너로 전달하는 역할은 docker-proxy 프로세스가 담당한다.
이를 관리할 GUI 도구인 DBeaver를 설치한다.
# Snap 패키지 매니저를 이용한 DBeaver 설치
snap install dbeaver-ce
# 설치 확인 및 경로 확인
snap list | grep dbeaver
which dbeaver-ce
- Snap: 리눅스 배포판에 관계없이 소프트웨어를 쉽게 설치하고 업데이트할 수 있도록 패키징된 배포 방식이다.
3. DBeaver와 MySQL 컨테이너 연동
설치한 DBeaver를 실행하여 도커 컨테이너 내부의 MySQL에 접속한다. 접속 시에는 앞서 설정한 호스트 포트 3307을 사용해야 한다.

- Connection 설정: MySQL 선택 후 서버 주소(localhost)와 포트(3307)를 입력한다.
- 인증 정보: 설정했던 root 비밀번호(1234)를 입력한다.
- 드라이버 설정: Test Connection 클릭 시 필요한 드라이버 파일을 다운로드한다.
- 보안 설정 변경: Driver properties 탭에서 allowPublicKeyRetrieval 옵션을 True로 변경한다. 이는 최신 인증 프로토콜을 사용하는 클라이언트가 서버로부터 공개키를 가져올 수 있게 허용하는 설정이다.
시스템 구성도

4. 데이터베이스 테이블 생성 및 조작
DBeaver의 GUI 기능과 SQL 스크립트를 자유롭게 사용하여 데이터를 정의하고 조작한다.
1️⃣GUI를 이용한 테이블 생성 예 (my_table):
- 엔진 선택: InnoDB 선택.
- 컬럼 정의: * id: INT형, Not Null, Auto Increment, Primary Key 설정.
- f_name: VARCHAR(12), Not Null.
- gender: CHAR, Not Null.
Table 생성 , 컬럼 속성 편집

Primary Key 설정

저장 및 실행

2️⃣SQL 스크립트를 이용한 테이블 생성 및 데이터 삽입 예 (my_table2):

-- 테이블 생성
CREATE TABLE my_table2 (
id int auto_increment not null primary key,
l_name varchar(20),
age int,
city varchar(50)
);
-- 데이터 삽입
INSERT INTO my_table2 VALUES(100, 'snowflake', 26, 'Seoul');
-- 데이터 조회
SELECT * FROM my_table2;
생성된 테이블 확인


5. 컨테이너 내부 CLI에서 생성한 테이블 확인하기
GUI에서 수행한 작업이 실제 컨테이너 내부 데이터베이스에 정상적으로 반영되었는지 CLI 환경에서 확인한다.
# 컨테이너 내부 bash 쉘 접속
docker exec -it my_db /bin/bash
# MySQL 접속
bash-4.2# mysql -u root -p
# 데이터 조회
mysql> use my_db;
mysql> show tables;
mysql> select * from my_table2;
이처럼 도커를 활용하면 복잡한 설치 과정 없이도 독립적인 데이터베이스 환경을 즉시 구축할 수 있다.
여기에 DBeaver와 같은 GUI 도구를 결합하면 데이터 모델링과 쿼리 작성을 보다 직관적으로 수행할 수 있다.
MySQL Workbench, phpMyAdmin, SQL Developer 등 다양한 툴이 있지만, DBeaver는 여러 종류의 DBMS를 하나의 툴에서 통합 관리할 수 있다는 점에서 범용성이 매우 높다.
'AI Journey > 리눅스' 카테고리의 다른 글
| 도커 컨테이너 리소스 제한하기: 메모리, CPU, Block I/O 제어 (0) | 2026.01.14 |
|---|---|
| [Linux] /etc/hosts 파일 이해하기 (0) | 2026.01.01 |
| [Linux] 데비안 계열 리눅스에서 패키지 설치 오류(Coud not get lock...)문제 해결 방법 (0) | 2025.12.21 |
| [Linux] Hadoop 마스터 노드 구축하기 part.3 - 하둡 설치 및 환경 설정, 데몬 확인 (0) | 2025.12.19 |
| [Linux] Hadoop 마스터 노드 구축하기 part.2 - APM 스택, SSH 서버 구축 및 SSH 키 생성 (0) | 2025.12.18 |