SaevOps
[OpenShift] 컨테이너 이미지 관리 본문
공개 레지스트리 (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
'클라우드 > OpenShift' 카테고리의 다른 글
[OpenShift] 실습 환경 구축 (0) | 2023.06.07 |
---|---|
[OpenShift] 사용자 지정 Apache 컨테이너 이미지 생성 (0) | 2023.06.01 |
[OpenShift] 네트워크 포트 매핑 (0) | 2023.05.30 |
[OpenShift] 컨테이너에 영구저장장치 연결 (0) | 2023.05.26 |
[OpenShift] 컨테이너화된 서비스 생성 및 관리 (0) | 2023.05.25 |