什么会阻止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
创建,一个管理员和两个工作人员。据我所知,这个与我为这些节点创建的其他服务之间的唯一显着差异是:
我在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。来自哪里?
Docker无法创建服务的动机可能不止一个。最简单的问题是为什么要通过运行来查看服务的最后状态:
docker service ps --no-trunc proxy
你有一个描述最后一个错误的ERROR
列。
或者你可以跑
docker service logs -f proxy
看看proxy
服务内部发生了什么。