我有一个docker镜像(usermanagement:latest),当我在本地测试时,我通常以这种方式创建容器:
docker run --net "host" -p 8096:8096 -v $(pwd):/etc usermanagement:latest -port 8096 -configfile /etc/config
port
和configfile
都有默认值,端口默认值为8096.
然后我可以在localhost:8096/1/users/some_api
处找到它。这使我能够灵活地创建许多同一图像的容器,用于监听不同的端口。
现在,我已将此图像推送到私人注册表中,并希望使用也可以访问注册表的minikube(一切都很好)。
问题创建时,我无法弄清楚如何指定网络选项(--net
或-p
)甚至是卷选项(-v
) Kubernetes部署。
我试过了:
kubectl run usr --image=$REGISTRY_IP:80/usermanagement:latest --port=8096
kubectl expose deployment usr --target-port=8096 --type=NodePort
其中REGISTRY_IP是私有注册表的IP,图像已从该注册表中拉入minikube的docker。
我已经确认该服务已创建并公开,但我无法使用以下方式在minikube中访问(获取404)容器:
curl -v http://192.168.42.149:31900/1/users/some_api
上述服务的IP和端口来自:
kubectl get svc usr
minikube ip
感谢任何帮助。