Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker服务创建永不返回_Docker_Docker Swarm_Docker Machine - Fatal编程技术网

docker服务创建永不返回

docker服务创建永不返回,docker,docker-swarm,docker-machine,Docker,Docker Swarm,Docker Machine,什么会阻止docker服务创建…命令完成?它从不返回命令提示符或报告任何类型的错误。相反,它会在“新建”、“已分配”、“准备就绪”和“启动”之间反复切换 命令如下: 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工具包-Docker S

什么会阻止
docker服务创建…
命令完成?它从不返回命令提示符或报告任何类型的错误。相反,它会在“新建”、“已分配”、“准备就绪”和“启动”之间反复切换

命令如下:

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工具包-Docker Swarm》,我遇到了一个无法克服的问题

我试图在一个由三个节点组成的集群上运行反向代理服务,所有节点都在LinuxMint系统上本地运行,
docker service create
永远不会返回命令提示符。它坐在那里,在状态之间循环,总是说
总体进度:1个任务中的0个

  • 这是一个由三个节点组成的集群,所有节点都在本地运行,由一个管理者和两个工人通过
    docker machine
    创建
  • 在测试过程中,我使用相同的节点集群成功创建了其他覆盖网络和其他服务
据我所知,此服务与我为这些节点创建的其他服务之间的唯一显著区别是:

  • 有三个已发布的端口。我仔细检查了主机,没有其他任何端口在监听
  • 我不知道vfarcic/docker流代理做什么
  • 我在一个(真实的,不是VirtualBox/VMWare/Hyper-V)LinuxMint19系统(基于Ubuntu18.04)上运行这个,Docker18.06。我的主机有16Gb的RAM和大量的备用磁盘空间。它的唯一目的是在Windows主机上出现太多问题后学习Docker

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

    行动仍在后台进行。 使用docker service ps p7jfgfz8tqemrgbg1bn0d06yp检查进度

    如果我使用
    docker服务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"
    
    所以,没有提到节点2或节点3,我不知道错误消息的意思

    如果我随后使用
    docker服务日志-f proxy
    我会每隔一分钟左右收到以下消息:

    代理1。l86x3a6md766@node-1 | 2018/09/11 12:48:46开始HAProxy 代理1。l86x3a6md766@node-1 | 2018/09/11 12:48:46从


    我只能猜测它没有得到它想要的任何证书。该地址似乎没有任何内容,但IP地址查找显示它指向我的ISP。这是从哪里来的?

    docker无法创建服务的动机可能不止一个。查看原因的最简单方法是通过运行以下命令查看服务的最后状态:

    docker service ps --no-trunc proxy
    
    其中有一个描述最后一个错误的

    或者你也可以跑步

    docker service logs -f proxy
    

    查看
    代理
    服务内部发生了什么。

    这是一个老问题,但我在试验docker时遇到了同样的问题。 对我来说,这个问题是通过在规定名称之前发布端口来解决的

    我相信docker的功能是在将名称规定为--name“name”image以使用“在启动时传递给image的命令”之后实现的


    因此,它继续尝试将这些选项作为命令传递给容器,但在运行服务时失败,而不是将它们作为选项使用。

    有没有办法从另一个终端会话获取信息?我在其中运行
    服务创建
    命令的终端永远不会返回提示符。在另一个会话中运行这两个命令中的任何一个,我只是从守护进程得到一条错误消息
    错误响应:这个节点不是swarm manager。使用“docker swarm init”或“docker swarm join”将此节点连接到swarm,然后重试。
    @Vince它应该可以从任何
    管理器
    节点工作,甚至可以从您在另一个会话中运行命令的节点工作。@Vince奇怪的是,从同一个节点得到该错误;你确定你在同一个节点上吗?@Vince或者你可以检查docker守护程序日志;看看我怎么解释得不对。我没有登录到任何节点。我已登录到主机。当我提到一个新会话时,我的意思是我正在主机上打开一个新的终端窗口。所以,我没有在节点上做任何事情。