반응형
Notice
Recent Posts
Recent Comments

05-02 12:45
관리 메뉴

SaevOps

[OpenShift] 컨테이너 이미지 관리 본문

클라우드/OpenShift

[OpenShift] 컨테이너 이미지 관리

세브웁스 2023. 5. 31. 12:00
반응형

공개 레지스트리 (Red Hat Container Catalog)

- 정의: 레드헷이 관리하는 공개 이미지 레지스트리

- 오픈소스 프로젝트에서 제공하는 이미지 이외에도 많은 이미지 호스팅

- 레드헷 내부에서 검증 및 재구축

 

프라이빗 레지스트리

- 이미지 작성자 또는 관리자가 비공개로 유지하는 이미지

 

레지스트리 이미지 검색

$ podman search [OPTIONS] <term

 

이미지 가져오는 명령어

$ podman pull [OPTIONS] [REGISTRY[:PORT]/]NAME[:TAG]


 Podman 레지스트리 구성파일 수정 (/etc/containers/registries.conf )

[registries.search]
registries = ["registry.access.redhat.com", "quay.io"]

[registries.insecure]
registries = ['localhost:5000']

 

레지스트리 HTTP API

[user@host ~]$ curl -Ls https://myserver/v2/_catalog?n=3

 

태그 목록 조회

[user@host ~]$ curl -Ls \
  https://quay.io/v2/redhattraining/httpd-parent/tags/list | python -m json.tool

 

레드헷 레지스트리 로그인

[user@host ~]$ podman login -u username -p password registry.access.redhat.com

 

Red Hat SSO 서비스를 사용하여 액세스 토큰 얻기

[user@host ~]$ curl -u username:password -Ls \
  "https://sso.redhat.com/auth/realms/rhcc/protocol/redhat-docker-v2/auth?service=docker-registry"

토큰을 인증헤더에 포함시키기

[user@host ~]$ curl -H "Authorization: Bearer eyJh...mgL4" \
   -Ls https://registry.redhat.io/v2/rhel8/mysql-80/tags/list \
   | python -mjson.tool

 

Quay.io 레지스트리의 nginx 컨테이너 가져오기              

[user@host ~]$ podman pull quay.io/bitnami/nginx

 

로컬에 저장된 컨테이너 이미지 나열

[user@host ~]$ podman images

 

Mysql-80이 지정된 이미지 가져오기

[user@host ~]$ podman pull registry.redhat.io/rhel8/mysql-80:1

 

Mysql-80 이미지 기반의 새 컨테이너 시작

[user@host ~]$ podman run registry.redhat.io/rhel8/mysql-80:1

컨테이너 이미지 저장 및 로드

 

이미지 저장하는 명령어

$ podman save [-o FILE_NAME] IMAGE_NAME[:TAG]

 

이미지 저장 명령어 예시 ( o : 전송을 방지하는 옵션)

$ podman save  -o mysql.tar registry.redhat.io/rhel8/mysql-80

 

Save 파일을 이용하여 로드

$ podman load [-i FILE_NAME]

 

릴리즈 구분용 tag명령어

$ podman tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

 

레지스트리에 이미지 개시 명령어

$ podman push [OPTIONS] IMAGE [DESTINATION]

 

로컬 스토리지에서 이미지 삭제

$ podman rmi [OPTIONS] IMAGE [IMAGE...]


Mysql.tar 파일을 사용하여 로드

[user@host ~]$ podman load -i mysql.tar

  

로컬 스토리지에서 모든 이미지 삭제

[user@host ~]$ podman rmi –a

 

컨테이너 이미지 수정

[user@host ~]$ podman commit [OPTIONS] CONTAINER \
  [REPOSITORY[:PORT]/]IMAGE_NAME[:TAG]

 

Podman에서 실행 중인 컨테이너 ID 보기

[user@host ~]$ podman ps

 

수정 정보 보기

[user@host ~]$ podman diff mysql-basic

 

다른 이미지에 변경 사항 커밋

[user@host ~]$ podman commit mysql-basic  mysql-custom

 

이미지 태그 지정

[user@host ~]$ podman tag mysql-custom  devops/mysql

 

다른 태그 이름 사용

[user@host ~]$ podman tag mysql-custom  devops/mysql:snapshot

 

이미지의 태그 제거

[user@host ~]$ podman rmi devops/mysql:snapshot

 

레지스트리에 이미지 개시 명령어 예제

 [user@host ~]$ podman push quay.io/bitnami/nginx

 

반응형
Comments