docker 和beego的问题

JimmyJin · 2016-03-13 19:44:05 · 4594 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2016-03-13 19:44:05 的主题,其中的信息可能已经有所发展或是发生改变。

我在docker上运行了beego web服务器并映射端口8080到主机8006 为什么主机浏览器无法正常显示 Screenshot 2016-03-13 21.29.57.png

Screenshot 2016-03-13 21.31.48.png

Screenshot 2016-03-13 21.33.42.png


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4594 次点击  
加入收藏 微博
6 回复  |  直到 2016-03-14 02:38:12
mkideal
mkideal · #1 · 9年之前

启动docker容器的命令呢,是怎样的?

JimmyJin
JimmyJin · #2 · 9年之前
mkidealmkideal #1 回复

启动docker容器的命令呢,是怎样的?

docker run -it -p 8006:8080 -v /Users/Go:/go -w /go/src/projectname golang:latest bee run

mkideal
mkideal · #3 · 9年之前

我试了一下,可以访问到 bee.PNG

你可以在主机上检查端口映射

$ sudo iptables -t nat -nL

我的就有这样一条输出

Chain DOCKER (2 references)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8006 to:172.17.0.2:8080

如果你的也有,再在主机上看看8006端口是否成功监听

netstat -ln | grep 8006

我的有这样的输出

tcp6       0      0 :::8006                 :::*                    LISTEN
JimmyJin
JimmyJin · #4 · 9年之前
mkidealmkideal #3 回复

我试了一下,可以访问到 ![bee.PNG](http://studygolang.qiniudn.com/160314/8dffec0133d9cf09a5e1d98645dac5a4.PNG) 你可以在主机上检查端口映射 ```shell $ sudo iptables -t nat -nL ``` 我的就有这样一条输出 ```shell Chain DOCKER (2 references) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8006 to:172.17.0.2:8080 ``` 如果你的也有,再在主机上看看8006端口是否成功监听 ```shell netstat -ln | grep 8006 ``` 我的有这样的输出 ```shell tcp6 0 0 :::8006 :::* LISTEN ```

我的是mac,貌似有网络问题需要解决,需要pfctl命令和修改配置文件

docker port compassionate_poitras 显示 8080/tcp -> 0.0.0.0:8006

主机 ifconfig

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 10:40:f3:f0:01:cc inet6 fe80::1240:f3ff:fef0:1cc%en1 prefixlen 64 scopeid 0x5 inet 192.168.1.101 netmask 0xffffff00 broadcast 192.168.1.255 nd6 options=1<PERFORMNUD> media: autoselect status: active vboxnet1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 ether 0a:00:27:00:00:01 inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

inet 192.168.1.101 netmask 0xffffff00 broadcast 192.168.1.255 inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

我怀疑是需要做这两个ip的forwording?

JimmyJin
JimmyJin · #5 · 9年之前

好吧,正解是eval (docker-machine env default) 里面的default 一定要打,否则不会做port forwording

JimmyJin
JimmyJin · #6 · 9年之前
JimmyJinJimmyJin #5 回复

好吧,正解是eval (docker-machine env default) 里面的default 一定要打,否则不会做port forwording

忽略这条

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传