如何在microk8s中使用本地docker镜像?

时间:2019-03-22 10:10:03

标签: docker kubernetes minikube microk8s

我一直在使用minikube在本地测试Kubernetes。在minikube中,我们可以使用eval $(minikube docker-env)命令来使用本地docker映像。

我开始探索microk8。在我的在Ubuntu 18上运行的计算机上使用snap安装了microk8。

除了创建本地docker注册表外,是否还有其他方法可以将microk8与本地docker镜像一起使用,就像我们使用minikube进行测试和开发一样?

microk8s.docker命令也不起作用,显示为:

  

找不到命令'microk8s.docker',但是可以使用以下命令安装

     

快速安装microk8s

但已安装。

2 个答案:

答案 0 :(得分:7)

microk8s有一个专用注册表,可以用于此目的。

您必须先使用以下命令启用注册表

$ microk8s.enable注册表

注册表将流量映射到端口32000,因此您必须将docker映像推送到注册表。如果该图像已经在本地存在,则可以使用docker tag命令。

$docker tag <imageName:version> localhost:32000/<imageName:version>

$docker push localhost:32000/<imageName:version>.

使用https://microk8s.io/docs/registry-built-in获取更多信息。

答案 1 :(得分:1)

很遗憾,您没有提供microk8版本和步骤。

我认为您使用了sudo snap install microk8s --classic命令进行安装。当前它将下载v1.14.0。
您可以使用snap info microk8s

检查版本

1.14.0版在 microk8s.daemon-docker 中进行了更改,并将其更改为 microk8s.daemon-containerd 。由于此更改,microk8s无法执行docker命令。 Microk8s在版本1.11和1.13之间包含 daemon-docker

如果您习惯使用sudo snap install microk8s --classic --channel=1.13/stable的docker安装microk8s v1.13

以备将来使用:

1)安装microk8s-sudo snap install microk8s --classic --channel=1.13/stable(如果仍要使用docker)

2)确保已启动microk8s-microk8s.start(您可以通过microk8s.stop停止它)

3)通过-microk8s.inspect

检查正在运行的服务

4)microk8s中的命令前缀不同,即代替 -kubectl get all --all-namespaces,您需要使用microk8s.kubectl get all --all-namespaces(以后您可以使用allias进行修改)

5)您可以使用microk8s.docker build .通过Dockerfile创建映像(不要忘记在命令末尾添加Dockerfile和“。”)。

您随时可以检查Microk8s documentation

相关问题