所以我创建了一个新的 EC2 实例并在其上安装了 docker。
我从 ( https://github.com/commonsearch/cosr-front/blob/master/INSTALL.md ) 部署了代码并遵循了安装说明。
安装成功,我启动了服务器:
[ec2-user@ip-172-30-0-127 cosr-front]$ make docker_devserver
docker run -e DOCKER_HOST --rm -v "/home/ec2-user/cosr-front:/go/src/github.com/commonsearch/cosr-front:rw" -w /go/src/github.com/commonsearch/cosr-front -p 9700:9700 -i -t commonsearch/local-front make devserver
mkdir -p build
go build -o build/cosr-front.bin ./server
GODEBUG=gctrace=1 COSR_DEBUG=1 ./build/cosr-front.bin
2016/05/28 16:32:38 Using Docker host IP: 172.17.0.1
2016/05/28 16:32:38 Server listening on 127.0.0.1:9700 - You should open http://127.0.0.1:9700 in your browser!
好吧,现在当我想从外面访问它时,我不能!甚至不 curl 本地服务器。
当我运行
docker ps
时,它给了我正确的端口转发:[ec2-user@ip-172-30-0-127 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a9f77e1eeb1 commonsearch/local-front "make devserver" 4 minutes ago Up 4 minutes 0.0.0.0:9700->9700/tcp stoic_hopper
9ff00fe3e70d commonsearch/local-elasticsearch-devindex "/docker-entrypoint.s" 4 minutes ago Up 4 minutes 0.0.0.0:39200->9200/tcp, 0.0.0.0:39300->9300/tcp kickass_wilson
这些是我的 docker 图像:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 3e205118cd3f 17 minutes ago 853.3 MB
<none> <none> 1d233da1fa59 2 hours ago 955.7 MB
debian jessie ce58426c830c 4 days ago 125.1 MB
commonsearch/local-front latest 30de7ab48d43 7 weeks ago 1.024 GB
commonsearch/local-elasticsearch-devindex latest b1156ada5a24 11 weeks ago 383.2 MB
commonsearch/local-elasticsearch latest 808e72f49b4a 3 months ago 355.2 MB
我试过禁用 ipv6 和各种无意义的谷歌提供给我,但没有成功。
有任何想法吗 ?
编辑:
另外,如果我为前端输入 docker 容器(使用 docker exec ),那么我可以 PING 和 CULR 前端。
但我不能从外面(也不能 ssh,不能从我的家用电脑使用浏览器)。
还有我的 docker 版本:
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5/1.9.1
Built:
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5/1.9.1
Built:
OS/Arch: linux/amd64
最佳答案
我在 github 上提出了一个问题,一个人挽救了这一天。
这是他的回应:
服务器监听 127.0.0.1:9700
您的应用程序正在监听本地主机。 localhost 的范围仅限于容器本身。因此,为了能够连接到它,您必须在容器内。
要修复,您需要让您的应用程序改为监听 0.0.0.0。
关于amazon-web-services - Docker - 无法从外部访问 docker 端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37501466/