问题描述
在现有的群集中,我使用“ docker stack”命令通过docker-compose yaml文件创建了服务。
-
当我通过'docker service ls'命令检查服务时,新服务将显示在列表中。它在REPLICAS列中显示为“ 0/1”
-
当我使用以下命令检查服务时,它会显示“正在运行”为所需状态
docker service ps --no-trunc(服务ID)
-
当我检查服务是否已经有相应的容器时,我看不到任何
-
当我尝试通过浏览器访问该服务时,它似乎没有启动。
-
困难的是,我看不到任何日志来查找发生这种情况的原因
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"
}
]
解决方法
如果将图像存储在私有注册表中,则必须通过命令docker login
登录并通过docker stack deploy -c docker-compose.yml your_service --with-registry-auth
部署服务。
在docker service ps ...
输出中,您将看到带有任务ID的列。您可以通过检查任务ID获取该任务状态的更多详细信息:
docker inspect $taskid
,
我的猜测是您的应用程序没有将其输出重定向到stdout,这就是为什么在执行“ docker service logs ...”时没有任何输出的原因。
如何将应用程序输出重定向到stdout取决于应用程序开发时所使用的语言。