我曾经在本地机器上设置并运行一些容器,并docker-compose
通过 Docker Desktop 运行 Docker 守护程序。
我卸载了 Docker Desktop(由于许可问题)并手动安装了 Docker 守护程序以及 Minikube 和 qemu 驱动程序。
我可以在 Minikube VM 上成功运行 docker,并且可以通过 docker-compose 成功启动容器。
minikube ip
返回本地 Kubernetes 集群的 IP。minikube ssh
然后 ping 正在运行的容器(Postgres 映像)就可以了。
容器定义docker-compose.yml
如下:
my.container:
container_name: my.container
build:
dockerfile: Dockerfile
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: "postgres"
volumes:
- my.container:/var/lib/postgresql/data
我启动docker容器的步骤如下:
$ minikube start
$ eval $(minikube docker-env)
$ docker-compose up -d my.app
我没有使用 minikube 在 Kubernetes 上部署我的应用程序。我没有运行任何 Pod。(据我所知)集群只是启动了一个运行 docker 守护进程的 VM。
输出kubectl get services
:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 130.14.93.8 <none> 443/TCP 7d23h
问题:我无法从本地主机连接到这些容器,也无法从 Minikube VM 以外的任何地方连接到这些容器。
我该如何设置它才能localhost:5432
与我的 Postgres 客户端匹配?