【问题标题】:Using BlueMix Container Registry service without local docker running在没有本地 docker 运行的情况下使用 BlueMix Container Registry 服务
【发布时间】:2018-02-13 00:20:50
【问题描述】:

我正在使用 Minikube 测试我在 IBM Bluemix kubernetes 服务中部署的所有内容。我将我的 Macbook docker 环境配置为使用 Minikube,并且我没有在我的 MacBook 中启动标准的基本 Docker 守护程序/服务。我只是:

eval $(minikube docker-env)

它工作得很好,我在 Minikube 中使用的 yaml 文件与应用到 Bluemix 时相同,因为我使用的是 Docker 和 Minikube 映像注册表。问题:当我尝试登录 BX CR 从 Minikube 注册表推送图像时,我得到:

MacBook-Pro:Docker and Kubernetes icordoba$ bx cr login
Logging in to 'registry.ng.bluemix.net'...
FAILED
Failed to 'docker login' to 'registry.ng.bluemix.net' with error: Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?). Using system default: https://index.docker.io/v1/
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
.

bx cr 登录命令似乎需要本地 docker 主机守护进程运行,所以我需要将镜像构建到 Minkube 注册表中,在 Minikube 中进行测试,关闭它,启动 Docker,再次在 docker 注册表中构建镜像,登录到 bx cr 并推送图片...

我可以让 bx cr login 命令与 Minikube docker 环境一起工作,而不是配置的基本 docker 环境吗?

【问题讨论】:

  • 看起来 docker cli 是一个先决条件:console.bluemix.net/docs/services/Registry/index.html?pos=2
  • 不,我不是在谈论 CLI。当然 CLI 是强制性的,因为没有 Docker CLI 我什至没有 docker 命令。问题是“bx cr ...”命令需要 docker 守护进程。这就是我不想运行的,因为我想使用 Kubernetes (Minikube) 作为本地 docker 守护进程。

标签: docker kubernetes ibm-cloud minikube container-registry


【解决方案1】:

正如 cmets 中所述,docker CLI 是向注册表推送和拉取注册表的先决条件。

应该可以使用minikube ssh ssh 进入 minikube,允许您访问 minikube 中的 docker 守护进程。然后,您需要安装 Bluemix cli 和 cr 插件。然后应该可以从那里推送您的图像。

或者,您可以安装找到 here 的 IBM-Containers 插件。然后,您可以在 Bluemix 中构建您的容器,它会自动将映像推送到 Container Registry 中,供您与 Kubernetes 一起使用。这将允许您在不访问 docker 守护进程的情况下构建和推送图像。

bx ic build -t registry.ng.bluemix.net/<namespace>/<image>:<tag> DOCKERFILE_PATH

(根据您希望将图像推送到哪个区域调整注册表区域前缀)

【讨论】:

  • 好的。我知道了。您的第一个解决方案对我有用。我没有考虑 ssh 进入 minikube 虚拟机并在那里安装 BX CLI 插件而不使用 MacOS 插件。第二种解决方案对我不起作用,因为我确实希望图像在 Kubernetes 中以在推送和应用到 IBM Container 服务之前测试图像,所以我会选择建议 1(我需要弄清楚如何在 Minikube 中挂载 MacOS 目录虚拟机)。谢谢。
  • 我已经尝试了该解决方案并且它可以工作,但是超时我停止并启动 minikube,bx cr CLI 被删除,显然是因为创建了一个新的干净 VM。我在这里针对该特定问题创建了一个新问题:stackoverflow.com/questions/46100502/…
  • 您可以使用 Bluemix Container Registry 将镜像拉入本地 minikube,而无需将它们应用到容器服务中的集群 - 只要它们具有不同的名称。
  • 在 Minikube 虚拟机中不安装“bx cr”怎么办?
  • 您只需使用不同的命名空间/图像名称:registry.ng.bluemix.net/dev/image:1registry.ng.bluemix.net/prod/image:1。不过,您需要在本地计算机上安装 bx cr 和 docker。
猜你喜欢
  • 2011-03-24
  • 2016-06-27
  • 2020-08-23
  • 1970-01-01
  • 1970-01-01
  • 2022-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多