BaeBox

local registry 본문

개발 관련

local registry

배모씨. 2019. 11. 2. 17:49
반응형

이번에 해 볼 것은, 로컬에 있는 도커 이미지를 kubernetes 에서 실행하는 것이다.

cpu 에서 가상화를 지원해준다면 정말 쉽게 가능하겠지만( minikube 의 docker-env), 그렇지 않은 경우에는 우회할 필요가 있다.

CPU 가 가상화 기능을 지원하여 minikube start 명령어를 이용하여 클러스터를 구성하였다면, minikube docker-env 기능을 이용하여 로컬에 있는 docker image 를 사용 가능하다.

eval $(minikube docker-env)

반면에, CPU가 가상화 기능을 지원하지 않아 --vm-driver=none 옵션을 주고 클러스터를 구성하였다면 minikube 의 docker-env 기능을 이용할 수 없다. 그 외에도 ssh 기타 다른 명령어들도

그럴 때는 local registry를 이용하여 에둘러 local에 있는 docker image를 사용 가능하다.

 

하단 첫번째 링크의 세번째 방법을 그대로 정리하겠다.(링크 내용에서 여러 방법을 소개한다.)

방법은 간단하다. 

localhost:5000 에 레지스트리(물론 컨테이너)를 만들어서 docker image 를 거기에 집어넣고(push) k8s 는 거기서 이미지를 가져온다(pull).

이런 방식(출처 : https://blog.hasura.io/sharing-a-local-registry-for-minikube-37c7240d0615/)

https://gist.github.com/coco98/b750b3debc6d517308596c248daf3bb1

위 링크의 yaml 파일을 적용하여 local registry를 띄운다.

 

자, 한 번 해보자.

  • Docker images 명령어를 이용하여 이미지에 tag를 달고 registry 컨테이너에 push 한다.
    • docker tag <image_name> localhost:5000/<image_name>
  • Tag를 단 이미지를 registry에 push
    • docker push localhost:5000/<image_name>
  • 실행
    • kubectl run --image=localhost:5000/<image_name>

 

해당 Registry에 어떤 이미지가 들어가 있는지는 아래 명령어를 통해 확인할 수 있다. 상단 링크에서 docker registry에 대해 조금 더 자세히 알아볼 수 있다.

curl -X GET localhost:5000/v2/_catalog?

 


https://blog.hasura.io/sharing-a-local-registry-for-minikube-37c7240d0615/

 

Sharing a local registry with minikube

How do I get a locally built docker image into minikube with the least amount of pain, and the greatest amount of speed?

blog.hasura.io

https://stackoverflow.com/questions/46065342/kubernetes-minikube-cant-get-docker-image-from-local-registry

 

(Kubernetes + Minikube) can't get docker image from local registry

I have setup docker on my machine and also minikube which have docker inside it, so probably i have two docker instances running on different VM I build an image and tag it then push it to local

stackoverflow.com

https://stackoverflow.com/questions/52310599/what-does-minikube-docker-env-mean

 

What does minikube docker-env mean?

In the Kubernetes minikube tutorial there is this command to use Minikube Docker daemon : $ eval $(minikube docker-env) What exactly does this command do, that is, what exactly does minikube dock...

stackoverflow.com

https://stackoverflow.com/questions/42564058/how-to-use-local-docker-images-with-minikube

 

How to use local docker images with Minikube?

I have several docker images that I want to use with minikube. I don't want to first have to upload and then download the same image instead of just using the local image directly. How do I do this?

stackoverflow.com

https://docs.docker.com/registry/

 

Docker Registry

Looking for Docker Trusted Registry? Docker Trusted Registry (DTR) is a commercial product that enables complete image management workflow, featuring LDAP integration, image signing, security scanning, and integration with Universal...

docs.docker.com

 

반응형

'개발 관련' 카테고리의 다른 글

Deployment (배포)  (0) 2019.11.02
Pod (포드)  (0) 2019.11.02
PersistentVolume / PersistentVolumeClaim  (0) 2019.11.02
Ingress  (0) 2019.11.02
Web UI(dashboard) 설치  (0) 2019.11.02
Comments