所以我创建了一个新的 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/

10-16 15:55
查看更多