[Podman] MariaDB Docker Compose 설치 방법
최근 리눅스 환경(특히 RHEL, Rocky, 최신 Ubuntu 등)에서 Docker 대신 Podman을 사용하여 컨테이너를 관리하는 경우가 많아졌습니다. Podman은 데몬 없이 작동하고 Rootless(관리자 권한 없이 실행) 모드를 지원하여 보안상 이점이 크지만, Docker와 미세하게 다른 설정 때문에 당황스러운 에러를 겪기도 합니다.
오늘은 docker-compose.yml을 이용해 MariaDB를 설치하는 과정에 대해 공유 합니다.
1. docker-compose.yml 작성
먼저 MariaDB 11.3 버전을 설치하기 위해 구성 파일을 작성합니다. Podman 환경이라도 파일명은 docker-compose.yml을 그대로 사용하면 podman-compose 명령어가 자동으로 인식합니다.
파일명: docker-compose.yml
version: "3.8"
services:
mariadb:
image: docker.io/library/mariadb:11.3
container_name: mariadb
restart: always
ports:
- "3306:3306"
environment:
MARIADB_ROOT_PASSWORD: rootpassword
MARIADB_DATABASE: mydb
MARIADB_USER: myuser
MARIADB_PASSWORD: mypassword
volumes:
- mariadb_data:/var/lib/mysql
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
mariadb_data:
Mariadb 실행
#설치 및 기동
podman compose up
#background 실행
podman compose up -d
#Mariadb 기동 상태 확인
podman compose ps
#종료
podman compose down
>>>> Executing external compose provider "/usr/local/bin/podman-compose". Please see podman-compose(1) for how to disable this message. <<<<
0432514b156c83332ceef9385ce6cfbe7c0192c9cbdb5e9f5dd22fe9cc1b252f
ffe11f79561b93175d00b04ecb5f3d762143a75a1a723b88d92de704fbe1a0e2
[mariadb] | 2026-01-23 02:22:56+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.3.2+maria~ubu2204 started.
[mariadb] | 2026-01-23 02:22:56+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB
[mariadb] | 2026-01-23 02:22:56+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
[mariadb] | 2026-01-23 02:22:56+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.3.2+maria~ubu2204 started.
[mariadb] | 2026-01-23 02:22:56+00:00 [Note] [Entrypoint]: MariaDB upgrade not required
[mariadb] | 2026-01-23 2:22:56 0 [Note] Starting MariaDB 11.3.2-MariaDB-1:11.3.2+maria~ubu2204 source revision 068a6819eb63bcb01fdfa037c9bf3bf63c33ee42 as process 1
[mariadb] | 2026-01-23 2:22:56 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
[mariadb] | 2026-01-23 2:22:56 0 [Note] InnoDB: Number of transaction pools: 1
[mariadb] | 2026-01-23 2:22:56 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
[mariadb] | 2026-01-23 2:22:56 0 [Note] mariadbd: O_TMPFILE is not supported on /tmp (disabling future attempts)
[mariadb] | 2026-01-23 2:22:56 0 [Note] InnoDB: Initializing buffer pool, total size = 128.000MiB, chunk size = 2.000MiB
[mariadb] | 2026-01-23 2:22:56 0 [Note] InnoDB: Completed initialization of buffer pool
[mariadb] | 2026-01-23 2:22:56 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)
[mariadb] | 2026-01-23 2:22:56 0 [Note] InnoDB: End of log at LSN=47661
[mariadb] | 2026-01-23 2:22:57 0 [Note] InnoDB: Opened 3 undo tablespaces
[mariadb] | 2026-01-23 2:22:57 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.
[mariadb] | 2026-01-23 2:22:57 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
[mariadb] | 2026-01-23 2:22:57 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
[mariadb] | 2026-01-23 2:22:57 0 [Note] InnoDB: log sequence number 47661; transaction id 14
[mariadb] | 2026-01-23 2:22:57 0 [Note] Plugin 'FEEDBACK' is disabled.
[mariadb] | 2026-01-23 2:22:57 0 [Note] Plugin 'wsrep-provider' is disabled.
[mariadb] | 2026-01-23 2:22:57 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
[mariadb] | 2026-01-23 2:22:57 0 [Note] Server socket created on IP: '0.0.0.0'.
[mariadb] | 2026-01-23 2:22:57 0 [Note] Server socket created on IP: '::'.
[mariadb] | 2026-01-23 2:22:57 0 [Note] mariadbd: Event Scheduler: Loaded 0 events
[mariadb] | 2026-01-23 2:22:57 0 [Note] InnoDB: Buffer pool(s) load completed at 260123 2:22:57
[mariadb] | 2026-01-23 2:22:57 0 [Note] mariadbd: ready for connections.
[mariadb] | Version: '11.3.2-MariaDB-1:11.3.2+maria~ubu2204' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution
^C[mig-db@rocky9:~/mariadb]$ [mariadb] | 2026-01-23 2:23:28 0 [Note] mariadbd (initiated by: unknown): Normal shutdown
[mariadb] | 2026-01-23 2:23:28 0 [Note] InnoDB: FTS optimize thread exiting.
[mariadb] | 2026-01-23 2:23:28 0 [Note] InnoDB: Starting shutdown...
[mariadb] | 2026-01-23 2:23:28 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
[mariadb] | 2026-01-23 2:23:28 0 [Note] InnoDB: Buffer pool(s) dump completed at 260123 2:23:28
[mariadb] | 2026-01-23 2:23:28 0 [Note] InnoDB: Removed temporary tablespace data file: "./ibtmp1"
[mariadb] | 2026-01-23 2:23:28 0 [Note] InnoDB: Shutdown completed; log sequence number 47661; transaction id 15
[mariadb] | 2026-01-23 2:23:28 0 [Note] mariadbd: Shutdown complete
[mariadb] |
mariadb
0432514b156c83332ceef9385ce6cfbe7c0192c9cbdb5e9f5dd22fe9cc1b252f
mariadb_default
Mariadb 접속
podman exec -it mariadb mariadb -u root -p
# Password 입력 프롬프트가 뜨면 설정한 비밀번호(rootpassword) 입력
# docker-compose.yml 에 작성된 비밀번호를 입력한다.

실습
# 1.'mariadb'는 접속 : docker-compose에서 정한 컨테이너 이름입니다.
podman exec -it mariadb mariadb -u root -p
# 2. docker-compose 설정 파일에서 만든 mydb 데이터베이스로 이동
USE mydb;
#3. 테이블 생성
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100)
);
#4. 데이터 입력 (한글 테스트)
INSERT INTO users (username, email) VALUES ('홍길동', 'hong@test.com');
INSERT INTO users (username, email) VALUES ('Alice', 'alice@test.com');
#5. 데이터 조회
SELECT * FROM users;

DBeaver 연결 설정 방법
![]() |
![]() |
문제발생 해결 방법
작성한 파일을 실행하기 위해 터미널에 podman-compose up -d를 입력했는데, 컨테이너가 뜨지 않고 아래와 같은 에러 로그가 출력이 됨.
[에러 메시지] Error: unable to start container ... : did not receive systemd slice as cgroup parent when using systemd to manage cgroups: invalid argument

원인 분석
이 에러는 Podman(Rootless 모드)이 시스템의 systemd와 상호작용할 때 Cgroup(리소스 관리) 설정이 충돌하여 발생하는 문제로 , 일반 사용자 권한으로 실행 중인데 시스템 관리 영역인 systemd cgroup에 접근하려다 거절당한 것입니다.
이때 sudo를 붙여서 실행하면 해결되긴 하지만, 그렇게 되면 생성되는 DB 파일들의 소유권이 root가 되어버립니다. 나중에 파일 이동이나 백업 시 Permission Denied로 고생할 수 있으므로 권장하지 않습니다.
해결 방법: containers.conf 설정 (권장)
- 가장 깔끔한 해결책은 Podman이 시스템의 systemd 대신 자체적인 cgroupfs를 사용하도록 설정을 변경하는 것입니다. 이 설정은 현재 로그인한 사용자 계정에만 적용된다.
mkdir -p ~/.config/containers
vi ~/.config/containers/containers.conf
- ~/.config/containers/containers.conf 파일에 아래 내용 작성
[engine]
cgroup_manager = "cgroupfs"
events_logger = "file"
잠깐! 상식
MariaDB는 MySQL의 소스 코드를 기반으로 만들어진(Fork된) 파생 버전입니다. 그래서 명령어, 포트, 파일 구조가 거의 똑같습니다.
사용자 입장에서 중요한 3가지 핵심 관계를 정리해 드릴게요.
왜 갈라졌나요? (탄생 비화)
- MySQL의 창시자: 몬티 와이드니어스(Monty Widenius)라는 개발자가 만들었습니다. (딸 이름이 'My'라서 MySQL입니다.)
- 오라클 인수: MySQL이 썬 마이크로시스템즈를 거쳐 거대 기업인 오라클(Oracle) 로 넘어가게 되었습니다.
- MariaDB 탄생: 몬티는 오라클이 MySQL을 상업적으로 폐쇄할까 봐 걱정하여, "영원히 무료인 오픈소스"를 지키기 위해 MySQL 소스 코드를 들고 나와서 MariaDB를 새로 만들었습니다. (둘째 딸 이름이 'Maria'라서 MariaDB입니다.)
'05.DB > Mysql' 카테고리의 다른 글
| Mysql 실행 SQL 확인 방법 (0) | 2023.03.07 |
|---|---|
| [Mysql] 유저 생성 /DB생성/권한부여 (0) | 2022.05.24 |
| [Mysql] DBeaver Mysql 접속 (0) | 2022.04.19 |


