如何使用helm图表将docker容器端口绑定到主机
我正在为golang编写一个简单的docker文件,我仍然对docker很熟悉,所以我知道我想做什么,只是不知道如何做: 我现在(下面)正在公开端口8080,但我想公开端口80,但将其转发到端口8080 我知道我可以通过如何使用helm图表将docker容器端口绑定到主机,docker,dockerfile,kubernetes-helm,Docker,Dockerfile,Kubernetes Helm,我正在为golang编写一个简单的docker文件,我仍然对docker很熟悉,所以我知道我想做什么,只是不知道如何做: 我现在(下面)正在公开端口8080,但我想公开端口80,但将其转发到端口8080 我知道我可以通过docker run-p来完成,但我想知道是否有一种方法可以在Dockerfile或其他地方设置它。我想通过赫尔姆找到我能做到的 Dockerfile: FROM scratch COPY auth-service /auth-service EXPOSE 8080 CMD
docker run-p
来完成,但我想知道是否有一种方法可以在Dockerfile
或其他地方设置它。我想通过赫尔姆找到我能做到的
Dockerfile:
FROM scratch
COPY auth-service /auth-service
EXPOSE 8080
CMD ["/auth-service","-logtostderr=true", "-v=-1"]
EXPOSE
通知Docker容器在运行时侦听指定的网络端口,但实际上不使端口可访问。只有您前面提到的-p
才能执行此操作:
docker运行-p:$HOSTPORT:$CONTAINERPORT
或者,您可以选择docker compose文件、额外文件,但也可以为您执行以下操作:
version: "2"
services:
my_service:
build: .
name: my_container_name
ports:
- 80:8080
.....
编辑:
FROM scratch
COPY auth-service /auth-service
EXPOSE 8080
CMD ["/auth-service","-logtostderr=true", "-v=-1"]
如果您正在使用helm,则只需将暴露的docker端口用作您的目标端口
:
apiVersion: v1
kind: Service
metadata:
name: {{ template "fullname" . }}
labels:
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }} #8080
protocol: TCP
name: {{ .Values.service.name }}
selector:
app: {{ template "fullname" . }}
谢谢,迪亚,我在想我怎样才能做到这一点Helm@NaguibIhab啊好的。我不知道你们有什么结构来定义你们的头盔模板,但你们应该在你们的服务模板中有上面的服务定义。我用头盔解决方案更新了我的答案。