如何在 minikube 注册表中创建 docker 个图像
How to create docker images inside minikube registry
我正在尝试在本地使用 kubernetes。因此我安装了 minikube。当我创建部署对象时,pods 无法在 minikube docker 注册表中找到图像并且 pods' 显示状态为 ErrImageNeverPull
。为了解决这个问题,我遵循了以下步骤:
minikube start
eval $(minikube docker-env)
- 我在 deployment.yaml 文件中将
ImagePullPolicy
更改为 Never
docker-compose build && docker-compose up -d
尽管我遵循了所有这些步骤,但项目的图像并未在 minikube 注册表中创建。为了切换回本地 docker 注册表,我已经通过 运行 这个命令 eval $(minikube docker-env -u)
仔细检查了它。图像和容器已在本地 docker 注册表中创建。
我的问题是如何在 minikube docker 注册表中创建 docker 图像?
Docker Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
- 这可能就是
eval
不起作用的原因,因为评估是针对 docker
二进制而不是 docker-compose
。使用 Docker 文件到 运行 docker build
,它应该直接注册到 Minikube Image Registry。
来自 Minikube 文档:Comparing 5 ways to push your image into a minikiube cluster,最好的方法如下所述:
My question is how can I create docker images within minikube docker registry?
- 您可以 运行
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 中烘焙
如有任何疑问,请在评论中告诉我。
我已经按照以下步骤解决了问题:
- 通过执行
minikube start
重新启动了 minikube
I 运行 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)
之间的区别。
如果你知道原因请告诉我。
我正在尝试在本地使用 kubernetes。因此我安装了 minikube。当我创建部署对象时,pods 无法在 minikube docker 注册表中找到图像并且 pods' 显示状态为 ErrImageNeverPull
。为了解决这个问题,我遵循了以下步骤:
minikube start
eval $(minikube docker-env)
- 我在 deployment.yaml 文件中将
ImagePullPolicy
更改为Never
docker-compose build && docker-compose up -d
尽管我遵循了所有这些步骤,但项目的图像并未在 minikube 注册表中创建。为了切换回本地 docker 注册表,我已经通过 运行 这个命令 eval $(minikube docker-env -u)
仔细检查了它。图像和容器已在本地 docker 注册表中创建。
我的问题是如何在 minikube docker 注册表中创建 docker 图像?
Docker Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
- 这可能就是
eval
不起作用的原因,因为评估是针对docker
二进制而不是docker-compose
。使用 Docker 文件到 运行docker build
,它应该直接注册到 Minikube Image Registry。
来自 Minikube 文档:Comparing 5 ways to push your image into a minikiube cluster,最好的方法如下所述:
My question is how can I create docker images within minikube docker registry?
- 您可以 运行
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 中烘焙
如有任何疑问,请在评论中告诉我。
我已经按照以下步骤解决了问题:
- 通过执行
minikube start
重新启动了 minikube
I 运行
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)
之间的区别。
如果你知道原因请告诉我。