如何使用 helm 图表将 docker 个容器端口绑定到主机
How to bind docker container ports to the host using helm charts
我正在为 golang 编写一个简单的 docker 文件,我仍在熟悉 docker 所以我知道我想做什么,只是不知道如何去做:
我现在(下)所拥有的是暴露端口 8080,但我想暴露端口 80 但将其转发到端口 8080。
我知道我可以通过 docker run -p
来完成,但我想知道是否可以通过 Dockerfile
或其他方式进行设置。我正在尝试找到如何通过 Helm 做到这一点。
Dockerfile:
FROM scratch
COPY auth-service /auth-service
EXPOSE 8080
CMD ["/auth-service","-logtostderr=true", "-v=-1"]
EXPOSE
通知 Docker 容器在运行时侦听指定的网络端口,但实际上并不使端口可访问。正如您已经提到的,只有 -p
会这样做:
docker run -p :$HOSTPORT:$CONTAINERPORT
或者您可以选择 docker-compose 文件,额外的文件也可以为您做这件事:
version: "2"
services:
my_service:
build: .
name: my_container_name
ports:
- 80:8080
.....
编辑:
如果您使用的是 helm,您只需使用公开的 docker 端口作为您的 targetPort
:
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" . }}
我正在为 golang 编写一个简单的 docker 文件,我仍在熟悉 docker 所以我知道我想做什么,只是不知道如何去做:
我现在(下)所拥有的是暴露端口 8080,但我想暴露端口 80 但将其转发到端口 8080。
我知道我可以通过 docker run -p
来完成,但我想知道是否可以通过 Dockerfile
或其他方式进行设置。我正在尝试找到如何通过 Helm 做到这一点。
Dockerfile:
FROM scratch
COPY auth-service /auth-service
EXPOSE 8080
CMD ["/auth-service","-logtostderr=true", "-v=-1"]
EXPOSE
通知 Docker 容器在运行时侦听指定的网络端口,但实际上并不使端口可访问。正如您已经提到的,只有 -p
会这样做:
docker run -p :$HOSTPORT:$CONTAINERPORT
或者您可以选择 docker-compose 文件,额外的文件也可以为您做这件事:
version: "2"
services:
my_service:
build: .
name: my_container_name
ports:
- 80:8080
.....
编辑:
如果您使用的是 helm,您只需使用公开的 docker 端口作为您的 targetPort
:
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" . }}