Статьи

Использовать локальный образ докера на миникубе

Вы используете Minikube и хотите запускать свои образы разработки, которые вы создаете локально. Это может показаться сложным, поскольку Minikube необходимо загружать ваши изображения из реестра, однако ваши изображения загружаются в локальный реестр.

В любом случае вы все равно можете использовать свои локальные изображения с Minikube, так что давайте начнем.

Перед запуском любого контейнера давайте выдадим.

1
> eval $(minikube docker-env)

Это фактически использует хост докера из Minikube для вашей текущей сессии bash.

Посмотреть на себя.

1
2
3
4
5
6
> minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.101:2376"
export DOCKER_CERT_PATH="/Users/gkatzioura/.minikube/certs"
# Run this command to configure your shell:
# eval $(minikube docker-env)

Затем раскрутите изображение nginx. Большинство команд взяты из этого урока.

1
2
3
4
>docker run -d -p 8080:80 --name my-nginx nginx
>docker ps --filter name=my-nginx
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
128ce006ecae        nginx               "nginx -g 'daemon of…"   13 seconds ago      Up 12 seconds       0.0.0.0:8080->80/tcp   my-nginx

Теперь давайте создадим изображение из запущенного контейнера.

1
docker commit 128ce006ecae dockerimage:version1

Тогда давайте запустим наш собственный образ на миникубе.

1
kubectl create deployment test-image --image=dockerimage:version1

Давайте также выставим сервис

1
kubectl expose deployment test-image --type=LoadBalancer --port=80

Давайте перейдем на следующий уровень и попробуем открыть наш сервис

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
> kubectl exec -it podwithbinbash /bin/bash
bash-4.4# wget test-image
Connecting to test-image (10.101.70.7:80)
index.html           100% |***********************************************************************************************************|   612  0:00:00 ETA
bash-4.4# cat index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
 
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
 
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Обратите особое внимание, что вышеперечисленное будет работать только на терминале, который вы выполнили команду

1
eval $(minikube docker-env)

Если вы хотите, вы можете просто настроить bash_profile, чтобы сделать это для каждого терминала, но это ваше дело.
В конце концов, это один из самых быстрых способов использовать ваши локальные изображения на Minikube, и, скорее всего, есть и другие доступные.

Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. Смотрите оригинальную статью здесь: Используйте локальное изображение докера на мини-кубе.

Мнения, высказанные участниками Java Code Geeks, являются их собственными.