금일은 Docker의 runtime, registry를 대체할 수 있는 기술에 대해 알아보겠습니다.
Container Runtime은 컨테이너의 생명주기를 관리하고 실행하는 소프트웨어를 의미합니다
간단히 말해, Container Runtime은 컨테이너를 실제로 실행시키고 관리하는 핵심 소프트웨어라고 이해할 수 있습니다.
Docker 의 한계점으로는 다음과 같습니다.
CROI - O 특징
Podman
Docker cli와 같은 Tool 입니다. 서버의 구동 없이(daemon 구동없이) 컨테이너를 실행할 수 있습니다.

windows 10 환경에서 실습을 진행해 보겠습니다.
아래의 github docs 를 통해 설치 가이드를 따라 가면 됩니다.
글을 쓰는 기준 최신 버전인 5.3.1 버전을 설치해 보겠습니다.
(https://github.com/containers/podman/blob/main/docs/tutorials/podman-for-windows.md)
powershell 을 이용하였고 podman info 명령어를 통해 설치 확인을 가능합니다.

그런다음 가이드에 나와있는 순서대로 커맨드를 입력해주면 됩니다. 자세한 설명은 위의 docs 를 참고해 주세요
PS C:\Users\User> podman machine init
PS C:\Users\User> podman machine start
PS C:\Users\whdls> podman run --rm -d -p 8080:80 --name httpd docker.io/library/httpd
PS C:\Users\whdls>Invoke-WebRequest -Uri http://localhost:8080
PS C:\Users\whdls> podman ps -a
PS C:\Users\whdls> podman stop httpd
PS C:\Users\whdls> podman run --rm -it centos
PS C:\Users\whdls> podman machine list
PS C:\Users\whdls> podman machine stop
PS C:\Users\whdls> podman machine rm
podman 에서도 docker 의 image 를 그대로 사용가능합니다.
이밖에도 다양한 명령어는 podman --help 명령어를 통해 가능하며 docker 명령어와 거의 유사하다는 것을 알 수 있습니다.
podman machine list 명령어는 해당 hostpc 의 podman machine 이 차지하고 있는 리소스를 알려줍니다.
harbor 는 Docker registry 를 대신하는 기술입니다. 해당 실습은 다음 포스팅에 별도로 작성하겠습니다.
Harbor Installation and Configuration
harbor 가 요구하는 docker engine 은 20.10.10 버전 이상이며 docker compose 는 필수입니다.
harbor 는 인증 시스템을 사용해야 합니다. 즉 https 를 사용해야 하며 harbor 가 상요하는 인증서 설치 과정을 설명하겠습니다.
linux 환경에서 진행해보겠습니다.
CA Certificates 생성
openssl genrsa -out ca.key 4096
oepnssl req -x509 -new -nodes -ssha512 -dats 365 -key ca.key -out ca.crt
Server Certificates 생성
openssl genrsa -out server.key 4096
oepnssl req -new -sha512 -key server.key -out server.csr
SAN(Subject Alternative Name) 등록
vi v3ext.cnf
openssl x509 -req -sha512 -days 365 \
-extfile v3ext.cnf \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in server.csr \
-out server.crt
Docker Engine Certificate 업데이트
openssl x509 -inform PEM -in server.crt -out server.cert
docker 에서는 crt 자체를 인증기관서라고 간주하기 때문에 cert 로 변경해주어야합니다.
$ mkdir -p /etc/docker/certs.d/server
$ cp server.cert /etc/docker/certs.d/server/
$ cp server.key /etc/docker/certs.d/server/
$ cp ca.crt /etc/docker/certs.d/server/
./prepare
./install.sh (docker compose up 명령어가 포함 되어 있음)다음시간에 진행하 harbor 실습에 대해 간단히 설명해보겠습니다.
1) Project 생성
2) Container#1] docker login –u admin
3) Container#1] docker push <_Image>
4) Container#2] docker login –u user1
5) Container#2] docker pull <_IMAGE>
admin 은 user 가 이미지를 가져오기 위해서 harbor 에서 members 설정에서 user 를 선택해주어야 합니다.