Docker群服务-运行状态但无日志

时间:2020-08-24 11:32:27

标签: docker docker-compose docker-swarm docker-stack

在现有的群集中,我使用“ docker stack”命令通过docker-compose yaml文件创建了服务。

  1. 当我通过'docker service ls'命令检查服务时,新服务将显示在列表中。它在REPLICAS列中显示为“ 0/1”

  2. 当我使用以下命令检查服务时,它会显示“正在运行”为所需状态

    docker service ps --no-trunc(服务ID)

  3. 当我检查服务是否已经有相应的容器时,我看不到任何

  4. 当我尝试通过浏览器访问该服务时,它似乎没有启动。

  5. 困难的是,我看不到任何日志来查找发生这种情况的原因

    docker服务日志(服务ID)

我认为启动可能很慢,但我等待了大约半个小时,但仍处于该状态。不知道如何在没有任何日志的情况下找出原因。有人可以帮我吗?

编辑:以下是当我对服务任务进行docker检查时的结果

[
    {
        "ID": "wt2tdoz64j5wmci4gr3q3io2e",
        "Version": {
            "Index": 3407514
        },
        "CreatedAt": "2020-08-25T00:58:13.012900717Z",
        "UpdatedAt": "2020-08-25T00:58:13.012900717Z",
        "Labels": {},
        "Spec": {
            "ContainerSpec": {
                "Image": "my-ui-image:1.8.006",
                "Labels": {
                    "com.docker.stack.namespace": "myservice-stack"
                },
                "Env": [
                    "BACKEND_HOSTNAME=somewebsite.com",
                    "BACKEND_PORT=3421"
                ],
                "Privileges": {
                    "CredentialSpec": null,
                    "SELinuxContext": null
                },
                "Hosts": [
                    "10.152.30.18 somewebsite.com"
                ],
                "Isolation": "default"
            },
            "Resources": {},
            "Placement": {},
            "Networks": [
                {
                    "Target": "lt87emwtgbeztof5k2r1z2v27",
                    "Aliases": [
                        "myui_poc2"
                    ]
                }
            ],
            "ForceUpdate": 0
        },
        "ServiceID": "nbskoeofakkgxlgj3utgn45c5",
        "Slot": 1,
        "Status": {
            "Timestamp": "2020-08-25T00:58:13.012883476Z",
            "State": "new",
            "Message": "created",
            "PortStatus": {}
        },
        "DesiredState": "running"
    }
]

3 个答案:

答案 0 :(得分:0)

如果将图像存储在私有注册表中,则必须通过命令docker login登录并通过docker stack deploy -c docker-compose.yml your_service --with-registry-auth部署服务。

答案 1 :(得分:0)

docker service ps ...输出中,您将看到带有任务ID的列。您可以通过检查任务ID获取该任务状态的更多详细信息:

docker inspect $taskid

答案 2 :(得分:0)

我的猜测是您的应用程序没有将其输出重定向到stdout,这就是为什么在执行“ docker service logs ...”时没有任何输出的原因。

我将从以下内容开始:enter image description here

如何将应用程序输出重定向到stdout取决于应用程序开发时所使用的语言。