반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 설정
- MSSQL
- 영어
- app
- AWS
- ssh
- Windows
- Python
- docker
- nodejs
- error
- build
- ChatGPT
- 유니티
- elasticsearch
- JS
- FLUTTER
- Kibana
- 구글
- dart
- 바보
- API
- JavaScript
- LLM
- Ai
- MySQL
- unity
- Linux
- gemini
Archives
- Today
- Total
가끔 보자, 하늘.
보안망에서 docker를 대신할 podman 본문
개발 시스템이 보안망에 있다면 root 권한을 요구하는 docker는 보통 사용하지 못합니다. 그래서 그 대안으로 podman을 사용합니다. 아직 production 환경에서는 docker를 그대로 사용하고 있기 때문에 podman을 docker 검증용으로 쓰기도 합니다. production 환경에서 얼마나 사용하는지는 모르겠네요. 어쨌든 production 환경에서도 쓸 수 있다고 해서 정리해 봤습니다.
Podman 설치 및 Docker 환경 시뮬레이션 매뉴얼
Podman은 OCI(Open Container Initiative) 컨테이너 및 Pod를 관리하는 도구로, 개발 및 프로덕션 환경 모두에서 활용 가능하며 Docker 환경과의 높은 호환성을 제공합니다.
1. Podman 설치 (Installation)
제공된 소스에는 Podman의 특정 설치 명령어가 포함되어 있지 않지만, 설치 환경 및 관련 정보는 다음과 같습니다:
- 지원 운영 체제:
- Linux 시스템: Podman은 Linux에서 컨테이너를 직접 실행합니다.
- Mac 및 Windows 시스템: Podman은 Podman 관리 가상 머신(podman machine)을 사용하여 Mac 및 Windows 시스템에서도 사용 가능합니다.
- Podman Desktop 활용:
- Podman Desktop은 Linux, Windows, Mac 시스템에서 Podman 및 Kubernetes를 위한 로컬 개발 환경을 제공하는 완벽한 기능의 데스크톱 UI 프런트엔드입니다.
- 비-Linux 운영 체제에서는 podman machine 백엔드를 사용하여 컨테이너를 실행합니다.
- Podman Desktop은 이미지 빌드, 풀, 푸시, 컨테이너 및 Pod 생성 및 관리, Kubernetes YAML 작업 등 전체 컨테이너 라이프사이클 관리를 지원합니다.
- 루트리스(Rootless) Podman:
- Podman은 루트 권한 없이도 일반 사용자로서 쉽게 실행될 수 있습니다.
- 루트리스 Podman은 컨테이너를 실행하는 사용자가 가진 권한보다 더 많은 권한을 가지지 않으므로 보안이 강화됩니다.
- 대부분의 최신 Podman 릴리스는 추가 구성 없이 루트리스로 실행될 수 있지만, 일부 운영 체제에서는 추가 구성이 필요할 수 있습니다. 관리자에 의한 약간의 설정이 필요할 수 있습니다.
- 관련 설치 안내 및 설정 방법은 별도의 문서에 자세히 설명되어 있습니다.
- 설치 안내:
- Podman 프로젝트 웹사이트(podman.io)에는 환경별 Podman 설치 방법에 대한 **"Installation notes"**가 제공됩니다.
2. Docker 환경 시뮬레이션 (Docker Environment Simulation)
Podman은 Docker 환경과의 높은 호환성을 통해 기존 Docker 기반 워크로드를 쉽게 전환하거나 테스트할 수 있도록 돕습니다.
- Docker 호환 CLI 인터페이스:
- Podman은 Docker와 호환되는 CLI(Command Line Interface) 인터페이스를 지원합니다.
- 이는 사용자가 Docker 명령어에 익숙한 방식으로 Podman을 사용할 수 있음을 의미합니다. 예를 들어, podman run 명령어는 docker run 명령어의 기능을 에뮬레이션합니다.
- 이를 통해 로컬 및 원격 시스템에서 컨테이너를 실행할 수 있습니다.
- Docker 명령어 상호 변환 표:
- "Podman Usage Transfer" 문서에는 Docker 명령어와 그에 상응하는 Podman 명령어들을 보여주는 표가 포함되어 있습니다.
- 이 표는 Docker를 사용하는 인프라에서 Podman으로 운영(ops) 및 개발(dev) 전환을 위한 유용한 정보를 제공합니다. 따라서 기존 Docker 스크립트나 워크플로우를 Podman으로 변경하는 데 직접적인 가이드라인을 제공합니다.
- Docker 호환 REST API:
- Podman은 Docker 호환 인터페이스와 고급 Podman 기능을 노출하는 개선된 인터페이스를 제공하는 REST API를 지원합니다.
- 이는 Docker API를 사용하는 자동화 도구나 스크립트가 Podman 환경에서도 큰 변경 없이 작동할 수 있음을 의미하며, 서비스 환경에서의 통합 및 테스트에 매우 유용합니다.
- 컨테이너 및 이미지 관리의 전문화:
- Podman은 프로덕션 환경에서 OCI 이미지와 컨테이너를 관리하고 유지하는 데 특화되어 있습니다.
- 이는 Docker와 유사하게 컨테이너화된 서비스의 배포, 실행, 모니터링 및 유지보수를 지원하므로, 기존 Docker 기반 서비스 환경을 Podman으로 테스트하고 검증하는 데 적합합니다.
- podman run 명령어가 "오랫동안 유지될(long lived)" 목적으로 "전통적인 컨테이너"를 생성하는 데 사용되는 반면, buildah run은 이미지 빌드 과정에서 컨테이너 내부에 콘텐츠를 추가하는 데 사용되는 등, Podman과 Buildah의 역할을 이해하는 것이 중요합니다.
지금은 개발 시스템에서만 사용 중인데 다음 서비스 구축시에는 podman도 써봐야 겠네요. -_-b
반응형
'개발 이야기 > 인프라 구축 및 운영' 카테고리의 다른 글
k8s 를 위한 기본 설정 + 사이드카 (1) | 2025.08.19 |
---|---|
docker 불필요한 이미지 정리 (0) | 2025.05.05 |
C 드라이브에 설치된 WSL2를 E 드라이브로 옮기기 (0) | 2025.02.06 |
Windows 11/Docker에서 Ubuntu 설치 및 Nvidia 그래픽 카드 연동 절차 (0) | 2025.02.04 |
Elasticsearch Docker Desktop으로 실행해보기 (0) | 2024.08.16 |