Cloud Computing

30 ago, 2019

Local Docker images no Minikube

Publicidade

Minikube é muito conhecido por permitir criar um cluster kubernetes local o que facilidade muito o desenvolvimento. Mas como utilizar ele com imagens Docker locais?

Como sabemos o kubernetes roda containers dentro dos pods e para isso ele precisa baixa as imagens Docker de algum registro (registry). O padrão para o Docker é o DockerHub, mas em desenvolvimento não queremos ficar toda hora dando push e pull de imagens para testar nossa aplicação. Nesse tutorial vamos ver como utilizar imagens Docker locais (localhost) no Minikube.

Utilizando VM Host como Docker host

Ja que o Minikube roda dentro de uma VM, essa VM é o lugar perfeito para armazenar as imagens Docker para nós. A primeira coisa a fazer e passar a utilizar o Docker daemon do Minikube invés do local, para fazer isso execute:

1
eval $(minikube docker-env)

Note: Para voltar ao seu Docker daemon local basta executar o comando abaixo.

1
eval $(minikube docker-env -u)

Pronto! Agora seu docker env é o Minikube, se executardocker imagespor exemplo ira listar as imagens que estão dentro da VM e não as suas locais.

Agora qualquer imagem que voce fizer build local vai ficar dentro da VM invés do local da sua maquina possibilitando o kubernetes a fazer pull delas localmente.

Para utilizar a imagem depois de fazer build basta adicionar ao seu yml file, similar ao exemplo abaixo.

      containers:
      - name: node-app
        image: node-app:latest

Referências

https://medium.com/@brianbmathews/getting-started-with-minikube-docker-container-images-for-testing-kubernetes-locally-on-mac-e39adb60bd41