我有一个项目使用正式的nginx码头容器从码头集线器,启动通过码头组成。我在Docker中为我的每个容器配置了健康检查,最近对这个nginx容器的健康检查表现得很奇怪;在使用docker-compose up -d启动时,我的所有容器都启动并开始运行健康检查,但是nginx容器看起来从未运行过健康检查。如果我将docker exec放入容器中,我可以手动运行脚本,如果重新启动容器,则健康检查将正常运行。
来自docker ps的示例输出
CONTAINER ID IMAGE COMMAND CREATED
我在docker-compse.yml中运行许多服务。我想显示一条消息,让用户知道docker-compose up何时完成?我尝试使用命令回送消息,但容器退出,代码为0
command: bash -c "echo Congratulation! You can use your containers now"
当docker-compose up完成时,有没有办法让用户知道?非常感谢!
在继续之前,我使用下面的bash代码来确保docker容器是正常运行的。然而,我当前的健康检查间隔设置为30秒,因此,这个循环几乎总是等待30秒,即使容器实际上在1秒后就准备好了。我不想降低间隔,因为运行状况检查使用curl,并且我不想给我的access_log发送垃圾邮件。理想情况下,我希望在5秒后执行第一次健康检查,而不是30秒后,然后在两次检查之间间隔30秒。 maxcounter=60
counter=1
# Wait until the container is launched and healthy before continuing
until [ "$(docker
我已经创建了一个AWS EC2实例,并在其中运行了一个jenkins容器,下面是详细信息:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
xxxxxxxxx docker.io/jenkins/jenkins 47 hours ago Up 47 hours ago 0.0.0.0:8080->8080/tcp, 0.0.0.0:5000
我在我的集群上使用kubernetes和几个rails / node docker镜像。它们中的大多数都有:3000/ health health check,它可以简单地在身体中返回状态为200的OK。
现在,我正在尝试发现如何在运行sidekiq的docker镜像上执行此健康检查的最佳方法。如何验证工作进程是否正在运行?
我试着用docker群运行一个应用程序。该应用程序是设计成完全本地运行在一台计算机上使用的码头群。
如果我将SSH放入服务器并运行一个坞堆栈,那么部署一切都可以,如这里所示,运行docker service ls
当此部署正常运行时,服务通常按以下顺序运行:
登记处(私人登记处)
Main ( Nginx服务)和Postgres
所有其他服务按随机顺序排列(所有节点应用程序)
我遇到的问题是重新启动。当我重新启动服务器时,我一直存在服务失败的问题,结果如下:
我发现了一些可能有帮助的错误。
在Postgres:docker service logs AP