Docker入门3 - Docker Compose无法连接 - 连接被拒绝

时间:2018-02-01 10:52:56

标签: docker docker-compose

我正在关注Docker入门教程,我被困在part 3(Docker Compose)。我正在运行新的Ubuntu 16.04安装。遵循part 1part 2的教程,除了登录到Docker帐户并将新创建的映像推送到远程存储库。

Docker镜像文件和python文件与part 2中的相同,.yml文件与part 3相同(我用vim复制粘贴它们)。

我可以使用docker compose部署堆栈显然很好。但是,当到达我应该通过curl发送请求的部分时,我得到以下响应

curl: (7) Failed to connect to localhost port 80: Connection refused

docker service ls返回后,这是docker stack deploy的输出:

ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
m3ux2u3i6cpv        getstartedlab_web   replicated          1/5                 username/repo:tag   *:80->80/tcp

这是docker container ls的输出(在docker service ls之后点击):

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                  PORTS               NAMES
bd870fcb64f4        username/repo:tag   "python app.py"     7 seconds ago       Up 1 second         80/tcp              getstartedlab_web.2.p9v9p34kztmu8rvht3ndg2xtb
db73404d495f        username/repo:tag   "python app.py"     7 seconds ago       Up 1 second         80/tcp              getstartedlab_web.1.z3o2t10oiidtzofsonv9cwcvd

虽然docker ps没有返回任何行。

这是docker network ls

的输出
NETWORK ID          NAME                   DRIVER              SCOPE
5776b070996c        bridge                 bridge              local
47549d9b2e88        docker_gwbridge        bridge              local
59xa0454g133        getstartedlab_webnet   overlay             swarm
e27f62ede27d        host                   host                local
ramvt1h8ueg7        ingress                overlay             swarm
f0fe862c5dcc        none                   null                local

我仍然可以将图片作为单个容器运行并获得预期结果,即能够通过浏览器或curl连接到它并获取与Redis相关的错误消息,但我不明白为什么在部署堆栈时它不起作用

就Ubuntu防火墙设置而言,自安装以来我一直没有修改,至于Docker和Docker Compose,我只遵循了第1章到第3章“入门”教程中的步骤,包括下载Docker Compose二进制文件和使用chmod更改权限,如上所述。我还将我的用户添加到Docker组,所以每次我需要运行命令时都不必sudo。我不在代理服务器后面(我在本地运行所有测试)并且我没有修改任何默认值。

我认为这可能与this question重复,但尚未得到回答或评论。它不是this question的副本,因为我正在使用不同的教程。

更新 实际上,我使用的是相同的docker-compose.yml文件。关键问题是名称与docker镜像名称不匹配,如docker service ls输出中所示。我感谢Janshair Khan的灵感。奇怪的是9个月前显然创建了一个用户名/ repo 图像:

REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
<my getting-started image>
python               2.7-slim            4fd30fc83117        7 weeks ago         138MB
hello-world          latest              f2a91732366c        2 months ago        1.85kB
username/repo        <none>              c7f5ee4d4030        9 months ago        182MB

0 个答案:

没有答案