我有一个linux AWS实例。我正在运行以下脚本:
#!/usr/bin/env bash
#This script installs java, sbt and the application
#Run this script on a new EC2 instance as the user-data script, which is run by `root` on machine start-up.
sudo yum update -y
sudo yum install -y docker
sudo service docker start
docker run repo/carrie
一切都安装完毕,我在日志中收到以下消息:
REST interface bound to /0.0.0.0:8080
然而,当我尝试实际访问端口时:
curl 0.0.0.0/8080
我收到以下消息:
Failed to connect to 0.0.0.0 port 8080: Connection refused
我已尝试编辑入站规则,以便8080已打开,但似乎无效。也许是因为我在实例启动后编辑了规则?
答案 0 :(得分:1)
您必须在docker run
命令
$ docker run --help
...
-p, --publish list Publish a container's port(s) to the host
...
如果容器中的进程侦听端口80:
,则脚本的最后一行应如下所示docker run -p 8080:80 repo/carrie
答案 1 :(得分:0)
容器有自己的接口,因此主机的0.0.0.0不适用。
告诉docker将容器端口8080绑定到主机:
docker run -p 8080:8080 repo/carrie