본문 바로가기
Container/Docker

containerd와 nerdctl

by sa-na 2022. 6. 26.

containerd

containerd는 docker 프로젝트로부터 분리된 컨테이너 런타임입니다. 기존 Docker는 Open Container Initiative, 즉OCI 표준을 준수하는 containerd라는 Container Runtime을 만들었습니다. 덕분에 Kubernetes에서는 OCI 표준을 준수하는 이미지들을 실행할 수 있는 Container Runtime Interface, 이하 CRI 스펙을 버전 1.5부터 제공함으로써 Docker 버전과 무관하게 OCI 표준을 준수하기만 하면 컨테이너 이미지도 Kubernetes에서 실행가능해졌습니다.

 

참고로 Kubernetes v1.24과 함께 Container Runtime으로써의 Docker의 지원이 중단되고, containerd가 기본으로 채택이 됩니다. 2022.06.25 - [AWS/EKS] - EKS의 기본 런타임이 v1.24부터 containerd로 변경됩니다. (Dockershim 사용 중단)

nerdctl 

nerdctl은 'Docker-compatible CLI for containerd' 즉, docker client와 호환되는 명령어를 가지고 있는 도구입니다. 이름은 containerd의 뒤 4글자, 'nerd'와 'ctl' 을 합쳐 명명하였고 docker 와 거의 동일하게 사용하실 수 있습니다. 

 

docker cli와의 차이점은 dockerd와 통신을 하는 것이 아니라, containerd와 직접 통신을 한다는 것이 차이점입니다.

nerdctl 설치

Linux에서는 brew를 통해 설치하실 수 있으며 mac에서는 lima를 통해 설치가 가능합니다.

Linux

On Linux systems you can install nerdctl via brew:

brew install nerdctl

This is currently not supported for macOS. The section below shows how to install on macOS using brew.

macOS

Lima project provides Linux virtual machines for macOS, with built-in integration for nerdctl.

brew install lima
limactl start
lima nerdctl run -d --name nginx -p 127.0.0.1:8080:80 nginx:alpine

기본 사용법

alpine 컨테이너 실행

nerdctl run -it --rm alpine

nerdctl로 컨테이너 이미지 빌드

nerdctl build -t foo /some-dockerfile-directory
nerdctl run -it --rm foo

사용법을 보시면 아시겠지만 docker와 동일합니다.

nerdctl github

https://github.com/containerd/nerdctl

 

GitHub - containerd/nerdctl: contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz,

contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ... - GitHub - containerd/nerdctl: contaiNERD CTL - Docker-compatible CLI for con...

github.com

'Container > Docker' 카테고리의 다른 글

M1 맥에서 Docker 사용하기 (무료)  (0) 2022.06.25

댓글