外部无法访问docker内部服务 a year ago
问题
最近在重温docker,打算把自己写的博客系统放到docker上感受一下,结果代码放到容器里一跑,发现程序是能跑起来
但是外部也就是我的本机浏览器访问不到
运行的时候映射也做了,不应该啊
排错
难道是容器里的服务不可用?带着怀疑进入到容器中 curl http://127.0.0.1:8999/api/v1/tag/all
发现服务没问题
后来我在想是不是监听地址不对,如果把container理解为另一台电脑或vps,那么127.0.0.1
只能在本地访问
要想正常访问的话,必须是局域网或公网ip
带着疑虑,继续尝试,修改配置文件,将host修改为 0.0.0.0
重新构建image,然后启动:
浏览器测试:
OK!
总结
外部如果想访问容器里的服务需要把服务监听地址改成“0.0.0.0:port”,或者docker容器的ip地址加端口。