iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >为什么go无法访问docker中的8080端口
  • 643
分享到

为什么go无法访问docker中的8080端口

go语言 2024-02-11 19:02:13 643人浏览 独家记忆
摘要

PHP小编西瓜在这里为大家解答一个常见问题:为什么Go语言无法访问Docker容器中的8080端口?在使用Docker容器时,我们常常会遇到无法访问容器内部端口的问题。这往往是因为Do

PHP小编西瓜在这里为大家解答一个常见问题:为什么Go语言无法访问Docker容器中的8080端口?在使用Docker容器时,我们常常会遇到无法访问容器内部端口的问题。这往往是因为Docker容器的网络配置问题所致。通过对Docker网络的理解和相应的调整,我们可以解决这个问题,并使Go语言能够成功访问Docker容器中的8080端口。下面,我将详细解释如何解决这个问题。

问题内容

所以我想在 cloud run 中部署我的简单 go 后端。我使用 gin 来处理路由。我处理它的主要函数如下所示:

func main() {
    r := gin.default()
    r.get("/api/health", handlers.healthcheckhandler())
    r.post("/questions", handlers.createquestionhandler(client))
    r.get("/questions/:level", handlers.getallquestionhandler(client))
    r.run("0.0.0.0:8080")
}

我尝试使用 docker 构建它并且成功了。我的 dockerfile 如下所示:

from golang:1.20
env gin_mode=release

workdir /app

# download go modules
copy go.mod go.sum ./
run go mod download


copy . .

# build
run  go build -o /docker-api

expose 8080

# run
cmd ["/docker-api"]

所以我尝试在 google cloud cli 中使用 docker run 来运行它,它似乎运行得很好:

docker run -p 8080:8080  gcr.io/matharc/math-arc-api
[gin-debug] [warning] creating an engine instance with the logger and recovery middleware already attached.

[gin-debug] [warning] running in "debug" mode. switch to "release" mode in production.
 - using env:   export gin_mode=release
 - using code:  gin.setmode(gin.releasemode)

[gin-debug] get    /api/health               --> matharc.com/m/handlers.healthcheckhandler.func1 (3 handlers)
[gin-debug] post   /questions                --> matharc.com/m/handlers.createquestionhandler.func1 (3 handlers)
[gin-debug] get    /questions/:level         --> matharc.com/m/handlers.getallquestionhandler.func1 (3 handlers)
[gin-debug] [warning] you trusted all proxies, this is not safe. we recommend you to set a value.
please check https://pkg.go.dev/GitHub.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[gin-debug] listening and serving Http on localhost:8080

但是当我尝试在端口 8080 上预览它时,我无法访问它:

我尝试将其部署在 cloud run 中,但毫不奇怪,它不起作用。我得到:

STARTUP HTTP probe failed 1 time consecutively for container "math-arc-api-1" on path "/api/health". The instance was not started.

我做错了什么?

解决方法

所以评论中 @Hans Kilian 的答案是正确的。问题是因为我使用 localhost 而不是 0.0.0.0。我以为我已经在代码中将其更改为 0.0.0.0 但似乎我在构建它时犯了一些错误。

以上就是为什么go无法访问docker中的8080端口的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 为什么go无法访问docker中的8080端口

本文链接: https://www.lsjlt.com/news/563567.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 为什么go无法访问docker中的8080端口
    php小编西瓜在这里为大家解答一个常见问题:为什么Go语言无法访问Docker容器中的8080端口?在使用Docker容器时,我们常常会遇到无法访问容器内部端口的问题。这往往是因为Do...
    99+
    2024-02-11
    go语言
  • docker端口无法访问怎么解决
    当Docker容器的端口无法访问时,可以尝试以下解决方法:1. 检查容器是否正在运行:使用`docker ps`命令确保容器正在运行...
    99+
    2023-08-25
    docker
  • docker端口无法访问的原因有哪些
    有以下几个常见的原因可能导致Docker端口无法访问:1. 防火墙配置:可能是因为防火墙的规则限制了对Docker容器端口的访问。可以尝试禁用或配置防火墙规则来允许对特定端口的访问。2. 容器网络配置:Docker容器的网络配置可能有问...
    99+
    2023-08-11
    docker
  • docker端口映射无法外部访问怎么解决
    如果Docker容器的端口映射无法从外部访问,可以尝试以下解决方法:1. 检查Docker容器的端口映射配置是否正确。确保容器的端口映射配置正确地将容器内部的端口映射到主机的端口上。2. 检查主机的防火墙设置。确保主机的防火墙允许外部访...
    99+
    2023-08-11
    docker
  • docker部署golanghttp服务时端口无法访问的问题解决
    目录1.背景1.1 问题描述1.2 webserver代码3.Dockerfile文件2.问题分析3.解决方案需要使用docker将golang的httpserver容器化。在这个过...
    99+
    2022-11-13
    docker部署golang http docker golang http端口访问
  • 为什么无法访问phpmyadmin
    无法访问 phpmyadmin 的原因有多种,包括:phpmyadmin 未安装或已禁用数据库服务器不可用权限问题防火墙或安全措施浏览器问题php 配置问题配置文件错误其他问题 无法访...
    99+
    2024-04-08
    mysql phpmyadmin
  • 为什么无法访问https
    无法访问https站点的原因有以下几点SSL证书有误无法访问https网站,可能是SSL证书出现了问题,重新安装SSL证书即可。网站不可信网站不可信,导致被浏览器拦截,进入浏览器Internet选项,将网站设置为可信任网站即可。浏览器设置有...
    99+
    2024-04-02
  • mysql中3306端口无法访问的解决方法
    这篇文章给大家分享的是有关mysql中3306端口无法访问的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql 3306错误端口无法访问的解决办法:首先修改mysq...
    99+
    2024-04-02
  • 如何解决80端口无法访问的问题
    本篇内容主要讲解“如何解决80端口无法访问的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决80端口无法访问的问题”吧!近日传adsl的80端口被封,很多机房,服务器的80端口被封,确...
    99+
    2023-06-10
  • 弹性ip为什么无法访问
    弹性ip无法访问的原因:1、弹性ip没有绑定到云资源上使用;2、弹性ip已经到期欠费了,因此无法访问;3、弹性ip绑定的云资源配置了安全策略,禁止了弹性ip访问;4、弹性ip绑定的云资源中服务未正常运行,比如服务器设置了防火墙配置禁止该弹性...
    99+
    2024-04-02
  • linux暴露端口无法访问怎么解决
    如果Linux系统暴露的端口无法访问,可能有以下几种原因和解决方法: 防火墙配置问题:检查Linux系统的防火墙配置,确保所暴露...
    99+
    2023-10-25
    linux
  • tomcat网页为什么无法访问
    有很多可能的原因导致Tomcat网页无法访问。以下是一些常见的原因和解决方法:1. Tomcat未启动或已停止:确保Tomcat已经...
    99+
    2023-08-15
    tomcat
  • linux端口无法访问的原因有哪些
    防火墙设置:防火墙可能会阻止某些端口的访问。可以通过配置防火墙规则来允许特定端口的访问。 端口未打开:某些端口可能默认是关闭...
    99+
    2023-10-25
    linux
  • 云服务器80端口无法访问怎么办啊
    检查网络连接:首先,需要确认网络连接是否正常,可以通过检查网络设置、防火墙设置、DNS服务器等方式来判断。如果网络连接正常,则可以尝试通过更改DNS服务器地址或者重启路由器等方式来解决。 更改IP地址:如果无法访问是因为80端口被禁止访问...
    99+
    2023-10-28
    端口 无法访问 服务器
  • 腾讯云服务器443端口无法访问怎么办
    如果您的腾讯云服务器443端口无法访问,可以按照以下步骤进行操作: 1.确认您的操作系统和腾讯云服务器是否已经成功更新。如果还没更新,请联系您的腾讯云服务器提供商。 2.检查您的防火墙策略是否阻止了腾讯云服务器与外部网络连接。请确保您没有...
    99+
    2023-10-26
    腾讯 端口 无法访问
  • 为什么绑定了域名后无法访问
    绑定了域名后无法访问的原因:1.绑定成功后,需要等待生效时间;2.域名绑定信息填错,导致无法访问。绑定了域名后无法访问的原因:绑定成功后,需要等待生效时间,一般是1~2个工作日即可。域名绑定信息填错,导致无法访问,可以通过NSLOOKUP命...
    99+
    2024-04-02
  • 阿里云服务器80端口无法访问怎么办
    首先,需要检查是否连接了正确的阿里云服务器IP地址和80端口。可以通过查看阿里云服务器的IP地址来确认。 其次,检查是否已经配置了防火墙规则,以阻止80端口被允许访问。如果配置了防火墙规则,可以尝试关闭防火墙并重新连接80端口。 如果以上...
    99+
    2023-10-28
    阿里 端口 无法访问
  • 为什么网站备案好了无法访问
    网站备案后却无法访问的原因备案未接入网站备案成功后,需要将备案号接入到网站,没有接入是无法访问的。网站域名未解析网站备案成功后,需要将域名解析到对应的网站,在通过域名访问网站。备案信息未同步网站备案成功后,一般需要等6个小时左右,待信息同步...
    99+
    2024-04-02
  • 云服务器80端口无法访问网络怎么办
    检查IP地址和端口号:检查您的云服务器IP地址和端口号是否正确。确保它们都是正确的。 检查服务器配置:确保您的云服务器配置正确。例如,确保您使用的是正确的端口号,您的IP地址和主机名等。 检查防火墙设置:防火墙可能阻止您连接到网络。检查您...
    99+
    2023-10-27
    端口 无法访问 服务器
  • Redis修改端口后应用无法访问怎么解决
    如果你修改了Redis的端口号,但是应用无法访问,可以按照以下步骤来解决问题: 检查配置文件:确保你修改了正确的配置文件,并且重...
    99+
    2024-04-09
    Redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作