Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用helm图表将docker容器端口绑定到主机_Docker_Dockerfile_Kubernetes Helm - Fatal编程技术网

如何使用helm图表将docker容器端口绑定到主机

如何使用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

我正在为golang编写一个简单的docker文件,我仍然对docker很熟悉,所以我知道我想做什么,只是不知道如何做:

我现在(下面)正在公开端口8080,但我想公开端口80,但将其转发到端口8080

我知道我可以通过
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啊好的。我不知道你们有什么结构来定义你们的头盔模板,但你们应该在你们的服务模板中有上面的服务定义。我用头盔解决方案更新了我的答案。