无法连接到正在运行的 docker 容器(minikube docker 守护进程)

ero*_*las 4 docker minikube

当我使用 Docker Desktop for Windows 运行我的 docker 容器时,我可以使用以下命令连接到它:

docker run -p 5051:5000 my_app

http://0.0.0.0:5051
Run Code Online (Sandbox Code Playgroud)

但是,当我打开另一个终端并执行此操作时

minikube docker-env | Invoke-Expression
Run Code Online (Sandbox Code Playgroud)

并使用与上面相同的运行命令构建并运行相同的容器

我无法连接到正在运行的实例。

我是否应该使用 Docker Desktop 运行和测试容器,然后使用 minikube 仅存储图像(对于 Kubernetes)?或者您可以通过 minikube 运行它们并测试它们吗?

Mar*_*CRA 6

这是因为在您第二次尝试时,容器不是在主机上运行,​​而是在 minikube VM 上运行。您将能够使用 minikube VM IP 访问它。
要获取 minikube ip,你可以运行minikube ip

为什么 ?

调用会minikube docker-env设置主机上的所有 docker 环境变量以匹配 minikube 环境。这意味着当您之后运行容器时,它会与 minikube VM 上的 docker 守护进程一起运行。