colima, podman

맥북에선 docker desktop(docker client/command-tools과 별개로 docker desktop은 UI를 지원하는 데몬(dockerd)으로 동작)을 사용했는데 유료라 무료 대체제를 알아보자.

참고로
linux 라면 podman 이 좋을것 같고
mac 에선 vm 시작이 좀 더 빠르고 기존 docker client 를 계속 사용할 수 있고 k8s 환경 구성도 쉬워 colima 가 좋은것 같다.

#####

colima + docker client
colima(https://github.com/abiosoft/colima)는 docker desktop 을 대신하는 데몬이다.
VM + container runtime(docker/containerd/incus) + docker api 를 제공한다.

# 설치
brew install colima

# 4cpu, 4GiB 메모리 VM 생성
colima start --cpu 4 --memory 4

# docker 명령(client)을 그대로 사용하면 된다.
# nginx 이미지 다운로드
docker pull nginx:latest

# nginx container 실행
docker run -d -p 8080:80 --name colima_nginx nginx:latest

# nginx container 리소스 모니터링
docker stats colima_nginx

# nginx container log 모니터링
docker logs -f colima_nginx

# ab(ApacheBench)로 -t 60 초로 부하를 줬을때 리소스 현황

# k8s 환경으로 띄우기
colima start --cpu 4 --memory 4 --kubernetes

# kubernetes cluster 재설정(kubectl 연결 안될때등의 상황 발생시)
colima k8s reset

# 이제 kubectl 로 일반 k8s 처럼 사용할 수 있다.

# colima 삭제(k8s 설정등 지우고 새로 시작할때)
colima delete

#####

podman machine + podman
podman(https://github.com/containers/podman)는 docker 데몬,client 사용없이 별개의 환경이으로 구성할 수 있다.
docker 데몬 같은게 없는 daemonless 구조이고 로 호스트에서 root 권한없이 일반 사용자 계정으로 컨테이너를 실행하는 rootless container 방식 시스템 전체에 영향을 주지 않아 보안성이 좋다고 한다.

# 설치
brew install podman

# 실행중인 vm list 파악
podman machine list

# podman machine(vm) 시작
podman machine init --cpus=4 --memory=4096
podman machine start

# vm 삭제시
# mac 에서 이름이 podman-machine-default 하나로 고정되어 있다.
podman machine rm podman-machine-default

# nginx 이미지 다운로드(docker client 가 아니라 이미지 주소가 다르다.)
podman pull docker.io/library/nginx:latest

# nginx container 실행
podman run -d -p 8081:80 --name podman_nginx nginx:latest

# nginx container log 모니터링
podman logs -f podman_nginx

# ab(ApacheBench)로 -t 60 초로 부하를 줬을때 리소스 현황

# vm 접속해 k3s 등을 직접 설치하는 등 kubernetes 환경 구성이 복잡하다.

comments:

댓글 쓰기