Skip to Content
제품 설치설치 전 준비사항Podman 으로 Rootless Mode 구성하기

Podman 으로 Rootless Mode 구성하기

Podman 은 Docker 를 대체할 수 있는 컨테이너 엔진입니다. QueryPie 는 Docker 와 Podman, 두 컨테이너 엔진 환경을 모두 지원합니다. Podman 은 기본적인 설치 구성에서 Rootless Mode 로 작동합니다. 이에 따라, 고객사의 보안정책에 따라 Rootless Mode 환경을 구성해야 하는 경우, Podman 으로 구현하는 것을 권장합니다.

Podman 을 간편하게 설치하기

setup.v2.sh 를 이용하면, Podman 을 간편하게 설치할 수 있습니다. setup.v2.sh 가 자동으로 설치하는 Podman 은 Rootless Mode 를 기본으로 적용합니다.

setup.v2.sh 를 이용하여 Podman 을 설치하는 방법은 다음과 같습니다.

$ bash <(curl -s https://dl.querypie.com/setup.v2.sh) --install-container-engine

이 명령은 해당 서버의 리눅스 배포본을 자동으로 탐지하고, Podman이 원활하게 지원되는 경우 Podman을 설치합니다. Podman을 설치하는 리눅스 배포본은 다음과 같습니다.

  • Red Hat Enterprise Linux 8, 9, 10
  • Rocky 8, 9
  • Ubuntu 24.04 LTS

Podman을 설치하지 않고 Docker를 설치하는 리눅스 배포본은 다음과 같습니다. 아래의 리눅스 배포본에서 Docker를 사용해야 하는 이유는 이 문서를 참조하세요: 리눅스 배포본과 Docker, Podman 지원 현황

  • Amazon Linux 2, Amazon Linux 2023
  • Ubuntu 22.04 LTS

Rootless Mode Podman 을 수작업으로 설치하기

Red Hat Enterprise Linux, Rocky 에서는 다음 명령으로 Podman 을 수작업으로 직접 설치할 수 있습니다.

$ sudo dnf -y -q --best install podman podman-plugins podman-manpages podman-docker $ systemctl --user enable --now podman.socket

systemctl 명령으로 podman.socket 서비스를 활성화해야 한다는 것에 주의해 주세요. podman.socket 서비스를 활성화해야 Docker Compose와 Podman을 함께 사용할 수 있습니다.

systemctl 명령에서, --user 옵션을 사용하는 경우, Rootless Mode 로 설치됩니다. --user 옵션을 사용하지 않는 경우, Rootful Mode 로 설치됩니다.

Ubuntu 24.04 LTS 에서는 다음 명령으로 Podman 을 수작업으로 직접 설치할 수 있습니다.

$ sudo apt -qq update $ sudo apt-get -y -qq install podman podman-docker $ systemctl --user enable --now podman.socket

Rootless Mode Podman 에서 QueryPie 설치하기

setup.v2.sh 를 이용하면, Rootless Mode Podman 환경에서 QueryPie 를 간편하게 설치할 수 있습니다.

QueryPie 를 처음 설치하는 경우, Compose package 를 설치할 리눅스 계정의 홈디렉토리에서, 다음의 명령을 수행합니다. setup.v2.sh 가 권장하는 버전의 QueryPie 가 자동으로 설치됩니다.

$ bash <(curl -s https://dl.querypie.com/setup.v2.sh)

QueryPie 버전을 지정하여 설치하려는 경우, 다음과 같이 버전을 명시할 수 있습니다.

$ bash <(curl -s https://dl.querypie.com/setup.v2.sh) --install 11.0.1

위의 명령을 실행하면, Compose 를 위한 package.tar.gz 설정, .env 환경변수 설정, Container 이미지 내려받기, Migration 실행하기, Container 실행하기, Rootless Mode Podman 을 위한 systemd service 등록 등 전체 설치 과정이 자동으로 수행됩니다.

리눅스 서버 재시작과 systemd service 등록

Rootless Mode Podman 의 경우, 리눅스 서버가 재시작하는 경우, 추가적인 설정을 하지 않으면, Container 가 자동으로 실행되지 않습니다. 이는 Rootless Mode Podman 의 특성입니다.

리눅스 서버 재시작 때 Container가 자동으로 실행되려면 podman compose up -d 명령을 수행하는 systemd service를 등록하고 활성화해야 합니다. QueryPie 를 위한 systemd service 파일은 Compose 를 위한 package.tar.gz 에서 기본으로 제공됩니다.

setup.v2.sh 를 이용하여 QueryPie 를 설치한 경우, 이러한 systemd service 등록, 활성화 과정을 자동으로 수행합니다. 따라서, 이용자가 이 부분을 직접 실행하지 않아도 됩니다.

그러나, QueryPie 설치, 운영을 원활히 수행하려면 systemd service 등록, 활성화 과정에 대한 이해가 필요하고, 직접 systemd service를 제어하여 문제를 해결할 수 있어야 합니다.

먼저, systemd user mode 의 service 가 자동으로 활성화되는 시스템 설정이 필요합니다. loginctl 명령으로 이 이용자에 대해 linger mode 를 켜야 합니다. 이 설정을 적용하지 않으면, 이용자가 리눅스 시스템에 로그인한 이후에야, systemd service 가 작동합니다. 이용자가 리눅스 서버에 로그인하지 않은 상태에서 자동으로 systemd service를 활성화하기 위해 linger mode를 켜 주세요.

$ sudo loginctl enable-linger $USER

systemd service 파일을 가리키는 심볼릭 링크를 $HOME/.config/systemd/user/ 아래에 생성합니다.

$ systemctl --user link querypie/current/systemd/podman-querypie-database.service Created symlink /home/ec2-user/.config/systemd/user/podman-querypie-database.service /home/ec2-user/querypie/current/systemd/podman-querypie-database.service. $ systemctl --user link querypie/current/systemd/podman-querypie-app.service Created symlink /home/ec2-user/.config/systemd/user/podman-querypie-app.service /home/ec2-user/querypie/current/systemd/podman-querypie-app.service.

systemd enable 명령으로 서비스를 작동시킵니다.

$ systemctl --user enable --now podman-querypie-database.service Created symlink /home/ec2-user/.config/systemd/user/default.target.wants/podman-querypie-database.service /home/ec2-user/querypie/11.1.1/systemd/podman-querypie-database.service. $ systemctl --user enable --now podman-querypie-app.service Created symlink /home/ec2-user/.config/systemd/user/default.target.wants/podman-querypie-app.service /home/ec2-user/querypie/11.1.1/systemd/podman-querypie-app.service.

별도 구성된 MySQL 을 사용하는 경우

기본 제공되는 ./querypie/<version>/compose.yml 을 이용해, 하나의 리눅스 서버에서 MySQL 를 실행하지 않고, 별도로 구성된 MySQL 을 사용하는 경우, systemd service 작동 범위를 변경하면 됩니다.

podman-querypie-database.service 를 작동시키지 않으면 됩니다. 작동 중인 systemd service 를 다음의 명령으로 끌 수 있습니다.

$ systemctl --user disable podman-querypie-database.service

QueryPie를 원활히 운영하려면, systemctl 명령을 이용하여 systemd service를 관리하는 방법에 익숙해야 합니다. 그러나, 이 문서에서는 systemctl 명령을 이용하여 systemd service 를 관리하는 방법을 상세히 다루지 않습니다.

참고자료

Last updated on