개요
Harbor와 같은 사설 이미지 저장소에 컨테이너 이미지를 푸시하는 방법을 간단하게 소개하겠다.
Harbor가 설치되었다는 가정이며, 다른 이미지 저장소를 사용하여도 된다. ( 추 후에 설치방법도 다루겠다. )
이미지 빌드도구는 가장 많이 사용하는 도커로 예시를 작성할 것이다. 다른 이미지 도구들(containerd,nerdctl, podman 등)도 방법은 비슷하기 하다.
이미지 다운로드
먼저 푸시할 예시 이미지를 도커 허브에서 pull 한다. ( 준비한 이미지를 사용해도 무방하다 )
docker pull ${이미지명}
이미지 확인
dokcer images
이미지명 변경
컨테이너 이미지명을 통해 레지스트리로 푸시되기 때문에 Harbor의 엔드포인트가 추가된 정보로 이미지명을 변경한다.
docker tag ${기존 이미지 명/ID} ${변경할 이미지 명}
Insecure Registry 설정
기본적으로 도커는 이미지를 푸시할때 https로 요청하기 때문에 사설 인증서를 따로 등록하지 않는 경우 인증서를 무시하는 옵션을 사용하기 위해서는 insecure 설정을 해주어야 한다. ( 운영환경에서는 인증서를 꼭 사용하자 )
만약 컨테이너 TLS인증서를 등록하여 사용한다면 https://docs.docker.com/engine/security/certificates/ 를 참고하자.
/etc/docker/daemon.json에 아래 내용 추가하고 파일이 없을 경우 생성해주자
{"insecure-registries" : ["harbor.okestro.cld"]}
Docker 재기동
systemctl restart docker
이미지 푸시
먼저, 이미지 저장소에 로그인
docker login ${저장소 도메인 및 주소 } -u id -p pw
이미지 푸시
docker push ${저장소 도메인 및 주소 }:${이미지:버전 }
# 푸시가 잘되었는지 웹 대시보드에 접속하여 확인해보자.
사용하였던 이미지는 삭제
docker rmi ${image명}
ex) docker rmi nginx:latest
'CICD' 카테고리의 다른 글
docker build 시, 빌드 명령어 결과 출력하기(--progress=plain) (0) | 2024.03.18 |
---|---|
ArgoCD Image Updater를 활용한 Harbor RegistryOps 구축 가이드 (0) | 2023.12.12 |
ArgoCD 외부 EKS 클러스터 연동(Add Cluster) (0) | 2023.12.02 |