什么会阻止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所著的“ The DevOps 2.1 Toolkit-Docker Swarm”一书,我遇到了一个我无法逾越的问题...
我试图在三个节点上运行逆向代理服务,三个节点都在LinuxMint系统上本地运行,并且docker service create
从不返回命令提示符。它坐在那里,在状态之间循环,并且总是说overall progress: 0 out of 1 tasks
...
docker-machine
创建,其中有一个管理者和两个工作者。据我所知,此服务与我为这些节点创建的其他服务之间的唯一重要区别是:
我在带有Docker 18.06的(真实的,不是VirtualBox / VMWare / Hyper-V的)Linux Mint 19系统(基于Ubuntu 18.04)上运行它。我的主机有16Gb RAM和足够的备用磁盘空间。它是为在Windows主机上遇到太多问题而学习Docker的唯一目的而设置的。
如果我在尝试创建服务的终端机上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。那是哪里来的?
答案 0 :(得分:0)
docker无法创建服务的原因可能有多种。最简单的原因是通过运行以下命令查看服务的最新状态:
docker service ps --no-trunc proxy
在ERROR
列中描述了最后一个错误。
或者,您可以运行
docker service logs -f proxy
了解proxy
服务内部的情况。
答案 1 :(得分:0)
这是一个古老的问题,但是我正在尝试使用docker并遇到同样的问题。 对我来说,此问题已通过在指定名称之前发布端口来解决。
我相信docker将名称规定为:--name“ name”“要使用的图像”“”在启动时传递给图像的命令“
因此它继续尝试将这些选项作为命令传递给容器,并且在运行服务时失败,而不是将其用作选项。