docker service create永远不会返回

问题描述 投票:1回答:1

什么会阻止docker service create ...命令完成?它永远不会返回命令提示符或报告任何类型的错误。相反,它反复切换,“新”,“已分配”,“准备好”和“开始”。

这是命令:

docker service create --name proxy -p 80:80 -p 443:443 -p 8080:8080 --network proxy -e MODE=swarm vfarcic/docker-flow-proxy

这是来自Viktor Farcic的“DevOps 2.1 Toolkit - Docker Swarm”一书,我遇到了一个我无法解决的问题......

我正在尝试在三个节点上运行反向代理服务,所有节点都在LinuxMint系统上本地运行,而docker service create永远不会返回到命令提示符。它坐在那里,在状态之间循环,总是说overall progress: 0 out of 1 tasks ......

  • 这是在一个由三个节点组成的集群上,所有节点都在本地运行,使用docker-machine创建,一个管理员和两个工作人员。
  • 在测试时,我已经使用相同的节点集群成功创建了其他覆盖网络和其他服务。

据我所知,这个与我为这些节点创建的其他服务之间的唯一显着差异是:

  1. 有三个已发布的端口。我仔细检查了主机,没有其他任何东西监听这些端口。
  2. 我不清楚vfarcic / docker-flow-proxy的作用。

我在Docker 18.06的(真实的,不是VirtualBox / VMWare / Hyper-V)Linux Mint 19系统(基于Ubuntu 18.04)上运行它。我的主机有16Gb RAM和足够的备用磁盘空间。它的设置目的仅仅是为了在Windows主机上遇到太多问题后学习Docker。

Update:

如果我在我尝试创建服务的终端中使用Ctrl-C,我会收到以下消息:

操作继续在后台进行。使用docker service ps p7jfgfz8tqemrgbg1bn0d06yp检查进度。

如果我使用docker service ps --no-trunc p473obsbo9tgjom1fd61or5ap我得到:

ID                          NAME                IMAGE                                                                                                         NODE                DESIRED STATE       CURRENT STATE               ERROR                                                          PORTS
dbzvr67uzg5fq9w64uh324dtn   proxy.1             dockerflow/docker-flow-proxy:latest@sha256:e4e4a684d703bec18385caed3b3bd0482cefdff73739ae21bd324f5422e17d93   node-1              Running             Starting 11 seconds ago
vzlttk2xdd4ynmr4lir4t38d5    \_ proxy.1         dockerflow/docker-flow-proxy:latest@sha256:e4e4a684d703bec18385caed3b3bd0482cefdff73739ae21bd324f5422e17d93   node-1              Shutdown            Failed 16 seconds ago       "task: non-zero exit (137): dockerexec: unhealthy container"
q5dlvb7xz04cwxv9hpr9w5f7l    \_ proxy.1         dockerflow/docker-flow-proxy:latest@sha256:e4e4a684d703bec18385caed3b3bd0482cefdff73739ae21bd324f5422e17d93   node-1              Shutdown            Failed 49 seconds ago       "task: non-zero exit (137): dockerexec: unhealthy container"
z86h0pcj21joryb3sj59mx2pq    \_ proxy.1         dockerflow/docker-flow-proxy:latest@sha256:e4e4a684d703bec18385caed3b3bd0482cefdff73739ae21bd324f5422e17d93   node-1              Shutdown            Failed about a minute ago   "task: non-zero exit (137): dockerexec: unhealthy container"
uj2axgfm1xxpdxrkp308m28ys    \_ proxy.1         dockerflow/docker-flow-proxy:latest@sha256:e4e4a684d703bec18385caed3b3bd0482cefdff73739ae21bd324f5422e17d93   node-1              Shutdown            Failed about a minute ago   "task: non-zero exit (137): dockerexec: unhealthy container"

所以,没有提到node-2或node-3,我不知道错误信息的含义。

如果我然后使用docker service logs -f proxy我每分钟都会重复以下消息:

proxy.1.l86x3a6md766@node-1 | 2018/09/11 12:48:46启动HAProxy proxy.1.l86x3a6md766@node-1 | 2018/09/11 12:48:46从http://202.71.99.195:8080/v1/docker-flow-proxy/certs获得证书

我只能猜测它无法获得它正在寻找的任何证书。该地址似乎没有任何内容,但IP地址查找显示它通向我的ISP。来自哪里?

docker docker-swarm docker-machine
1个回答
0
投票

Docker无法创建服务的动机可能不止一个。最简单的问题是为什么要通过运行来查看服务的最后状态:

docker service ps --no-trunc proxy

你有一个描述最后一个错误的ERROR列。

或者你可以跑

docker service logs -f proxy

看看proxy服务内部发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.