我正在尝试在本地使用kubernetes。因此,我安装了minikube。创建部署对象时,pod在minikube docker注册表中找不到映像,并且pod的显示状态为ErrImageNeverPull
。为了解决该问题,我按照以下步骤操作:
minikube start
eval $(minikube docker-env)
ImagePullPolicy
更改为Never
docker-compose build && docker-compose up -d
尽管我遵循了所有这些步骤,但未在minikube注册表中创建项目的图像。我已通过运行此命令eval $(minikube docker-env -u)
进行了仔细检查,以切换回本地Docker注册表。在本地Docker注册表中创建了图像和容器。
我的问题是如何在minikube docker注册表中创建docker映像?
答案 0 :(得分:1)
Docker Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。
eval
不起作用的原因,因为评估是针对docker
二进制文件而不是docker-compose
进行的。使用Dockerfile运行docker build
,它应该直接注册到Minikube Image Registry。来自Minikube文档:Comparing 5 ways to push your image into a minikiube cluster,做到这一点的最佳方法如下:
我的问题是如何在minikube docker注册表中创建docker映像?
minikube ssh
,并且可以直接在Minikube VM上构建映像。 Docker环境已在此处设置:$ minikube ssh
_ _
_ _ ( ) ( )
___ ___ (_) ___ (_)| |/') _ _ | |_ __
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest e791337790a6 3 days ago 127MB
nginx <none> ed21b7a8aee9 2 weeks ago 127MB
ubuntu latest 4e5021d210f6 4 weeks ago 64.2MB
docker build
将图像注册到注册表中。 docker-compose
未在Minikube VM中烘焙如果有任何疑问,请在评论中告诉我。
答案 1 :(得分:1)
我已按照以下步骤解决了该问题:
minikube start
我运行了minikube -p minikube docker-env
,它返回了以下内容:
我执行了eval $(minikube -p minikube docker-env)
docker-compose
命令。图像和容器是在minikube docker注册表中创建的。
说实话,我不知道为什么eval $(minikube docker-env)
没做这份工作,也不知道eval $(minikube docker-env)
和eval $(minikube -p minikube docker-env)
之间的区别。
如果您知道原因,请告诉我。