如何在 Minikube 中访问 `docker-compose` 容器

问题描述 投票:0回答:1

问题:

我希望我的 Web 服务器具有 Kubernetes 配置 Docker-Compose 配置。

我在 MacBook 上运行它们(没有本机容器支持),所以目前我

  • 在 Docker 桌面上运行
    docker-compose
  • 在 Minikube VM 上运行
    kubectl

    (我坚持使用 Minikube,因为我在脚本中依赖像
    minikube ip
    minikube service
    这样方便的命令)

这使得从一种设置切换到另一种设置变得缓慢且不方便(暂停 Minikube、启动 Docker Desktop、重建映像、重新运行服务;反之亦然)。
他们不会共享构建的图像或容器,并且它们在不同的环境中运行。


尝试

我尝试从 Minikube VM 在 Docker 上运行

docker-compose

工作正常,但是我无法连接到服务,因为没有从主机到 Minikube 机器的隧道或端口转发
(而
compose
负责从
$(minikube ip):8081
docker-container-webserver:8080
的内部转发。

问题

如何打开从主机(浏览器)到 Minikube 内运行的容器(Web 服务器)的连接?

我尝试了

minikube tunnel
,但似乎没有帮助(它旨在与 Kubernetes LoadBalancer 服务配合使用)。

docker kubernetes docker-compose virtualbox minikube
1个回答
0
投票

您可以将服务公开为“NodePort”。 例如

kubectl expose deployment DEPLOYMENT_NAME --type=NodePort --target-port=PORT --NAME=SERVICE_NAME

然后就可以使用minikube节点IP访问服务了。使用以下命令生成服务的可访问 URL。

minikube service SERVICE_NAME --url
© www.soinside.com 2019 - 2024. All rights reserved.