# Quadlet: Podman 컨테이너를 systemd로 실행하기

> Clean Markdown view of GeekNews topic #19947. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19947](https://news.hada.io/topic?id=19947)
- GeekNews Markdown: [https://news.hada.io/topic/19947.md](https://news.hada.io/topic/19947.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-03-25T09:57:19+09:00
- Updated: 2025-03-25T09:57:19+09:00
- Original source: [mo8it.com](https://mo8it.com/blog/quadlet/)
- Points: 2
- Comments: 1

## Topic Body

- **Quadlet**은 Podman 컨테이너를 systemd 서비스로 실행할 수 있게 해주는 도구임. 이는 서버 재부팅 후 백그라운드에서 자동으로 컨테이너를 시작하는 데 유용함.  
- 기존에는 `podman generate systemd` 명령어를 사용했으나, 이제는 Quadlet로의 마이그레이션이 권장됨.  
  
#### 기존 방법  
  
- 컨테이너를 생성하고, systemd 서비스 파일을 생성한 후, 해당 파일을 적절한 디렉토리로 이동하여 서비스를 활성화해야 했음.  
- 이 과정은 명령어가 길고 반복적이며, 수동으로 파일을 수정해야 하는 불편함이 있었음.  
  
#### 문제점  
  
- 기존 방법은 복잡하고 유연성이 부족했음.  
- Docker Compose의 편리함과 비교했을 때, 수동으로 많은 작업을 해야 했음.  
  
#### Quadlet  
  
- Quadlet을 사용하면 `.container` 파일을 생성하여 컨테이너를 관리할 수 있음.  
- `[Container]` 섹션을 통해 이미지, 포트, 볼륨, 환경 변수를 설정할 수 있음.  
- `[Service]` 섹션에서 컨테이너 재시작 정책을 설정할 수 있음.  
- `[Install]` 섹션에서 부팅 시 자동 시작을 설정할 수 있음.  
  
#### 더 나은 점  
  
- 하나의 파일로 모든 설정을 관리할 수 있으며, systemd의 모든 옵션을 사용할 수 있음.  
- 설정 파일 작성이 스크립트 작성보다 쉬움.  
- 종속성을 쉽게 관리할 수 있음.  
  
#### 종속성  
  
- 앱 컨테이너가 데이터베이스 컨테이너에 의존하는 경우, `[Unit]` 섹션에서 `Requires`와 `After` 옵션을 사용하여 종속성을 설정할 수 있음.  
  
#### 파일이 너무 많을까?  
  
- 여러 파일로 나누는 것이 복잡성을 줄일 수 있음.  
- 관련된 파일들을 그룹화하여 관리할 수 있음.  
  
#### 이미지 업데이트  
  
- `AutoUpdate=registry` 옵션을 사용하면 `podman auto-update` 명령어로 이미지 업데이트 및 컨테이너 재시작이 가능함.  
- `latest` 태그 사용은 위험할 수 있으므로, 구체적인 버전 태그 사용을 권장함.  
  
#### podman-compose에 대해  
  
- `podman-compose`는 Compose 파일을 Podman과 systemd로 변환하는 스크립트지만, 장기적인 대안으로는 적합하지 않음.  
- Quadlet은 Podman의 무데몬 설계와 더 잘 맞음.  
  
#### 추가 자료  
  
- Quadlet에 대한 더 깊은 이해를 위해 `podman-systemd.unit` 매뉴얼 페이지를 읽어볼 것을 권장함.  
- Quadlet은 컨테이너뿐만 아니라, pod, 네트워크, 볼륨도 관리할 수 있음.  
- systemd 유닛 파일 작성에 익숙하지 않다면 `systemd.unit`과 `systemd.service` 매뉴얼 페이지도 참고할 것.  
- `podlet`은 Podman 명령어 또는 Compose 파일에서 Quadlet 파일을 생성하는 데 도움을 줄 수 있는 도구임.

## Comments



### Comment 36315

- Author: neo
- Created: 2025-03-25T09:57:19+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43456934) 
* Quadlet은 Docker Compose의 대안으로, "생산 환경과 유사한 환경에서 상호 의존적인 컨테이너를 실행"하는 데 유용함. 그러나 개발 환경에서는 덜 유용함
  - Docker Compose는 데이터베이스, Redis, OpenSearch 등의 종속성을 쉽게 관리할 수 있음
  - Quadlet은 파일을 `~/.config/containers/systemd`에 두어야 하므로 프로젝트와의 격리가 어려움
  - 많은 개발자들이 여전히 Docker를 사용하며, Podman을 사용하려면 수동으로 설정을 추가해야 함
  - 개발을 위한 Docker Compose의 대안이 필요하지만, Quadlet은 적합하지 않음

* Quadlet을 발견하고 Atomic OS와 루트리스 Quadlet을 기반으로 홈랩을 구축했으며, 이를 강력히 추천함
  - systemd 소켓 활성화를 사용할 수 있어 Traefik을 자동으로 활성화할 수 있음
  - 루트리스 설정에서 소스 IP를 보존하는 유일한 방법임

* Quadlet은 Podman에서 나온 최고의 도구 중 하나이며, 컨테이너 기반 작업에 관심 있는 사람들에게 추천함
  - 컨테이너를 시스템 서비스처럼 다룰 수 있어 편리함
  - Docker의 대안으로 Quadlet을 사용하면 더 깔끔한 설정이 가능함
  - 로컬 개발 환경에서는 Docker Compose의 대안이 아니며, Podman 팀도 이에 대해 큰 관심이 없음

* Docker Compose의 편리함 때문에 많은 사람들이 Docker에서 Podman으로 전환하는 것을 주저함
  - Quadlet은 Docker Compose의 대안으로 Podman을 사용할 수 있게 해줌
  - Docker를 그리워하지 않을 것이며, 루트리스 컨테이너 실행의 보안성을 누릴 수 있음

* Podman-Compose가 "유지 관리되지 않음"이라고 언급되었지만, Podlet도 비슷한 상태임
  - Podlet은 Docker Compose의 많은 기능을 지원하지 않으며, 여러 yaml 파일을 쌓는 것을 지원하지 않음

* Podman의 업스트림이 Debian/Ubuntu에 대한 저장소를 제공하지 않아 불편함
  - Docker Compose로 돌아가게 되었음

* openSUSE MicroOS를 사용하여 Podman 컨테이너를 systemd/quadlet 하에서 실행하게 되었으며, 현재 설정에 만족함
  - Podman Compose는 사용하기 불편했으며, Quadlet이 더 나은 선택임

* systemd와 Podman의 통합을 좋아함
  - Docker Compose는 여전히 경쟁력이 있으며, Quadlet은 프로젝트 디렉토리를 복잡하게 만들 수 있음

* Quadlet이 Hacker News의 첫 페이지에 올라온 것이 흥미로움
  - Kubernetes YAML을 사용하여 이동성이 높음

* Quadlet은 컨테이너를 일반 시스템 서비스처럼 사용할 수 있게 해줌
  - 루트리스 컨테이너의 UX는 이 개념과 잘 맞지 않음
  - 루트리스 Quadlet을 시스템 세션 내에서 실행할 수 있기를 바람
