简体   繁体   中英

Docker swarm service - running state but no logs

In an existing swarm, I created a service via a docker-compose yaml file using the 'docker stack' command.

  1. When I check the service via 'docker service ls' command, the new service shows up on the list. it shows "0/1" in the REPLICAS column

  2. When I check the service using the command below, it shows 'Running' as the Desired State

    docker service ps --no-trunc (service id)

  3. When I check if there is already a corresponding container for the service, I can see none

  4. When I try to access the service via the browser, it seems to be not started.

  5. What is difficult is I cannot see any logs to find the cause of why this is happening

    docker service logs (service id)

I figured it may just be slow to start but I waited for about half an hour and it was still in that state. Not sure how can I find out the cause of this without any logs. Can anyone help me on this?

EDIT: Below is the result when I did a docker inspect of the service task

[
    {
        "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"
    }
]

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

From the docker service ps ... output, you will see a column with the task id. You can get further details of the state of that task by inspecting the task id:

docker inspect $taskid

My guess is that your app is not redirecting it's output to stdout and that's why you don't get any output when doing "docker service logs...".

I would start by looking at this: https://docs.docker.com/config/containers/logging/

How you redirect the apps output to stdout will depend on what language your app is developed in.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM