Docker Compose编排、重要参数详解及Portainer监控

   日期:2024-12-26    作者:kxo2v 移动:http://oml01z.riyuangf.com/mobile/quote/48407.html

简介:Compose是用于定义和运行多容器Docker应用程序的工具,通过Compose,使用yml文件来配置应用程序所需要的所有服务,对多服务应用进行统一部署。

Docker Compose编排、重要参数详解及Portainer监控

0. 容器内问题排查命令

  先进入容器:docker exec -it container-id sh/bash;

  A. 测试网络是否互通:ping ip;

  B. 测试容器端口是否开通:nc -zv ip port;

1、安装与卸载

  A.  下载docker-compose工具;

  B.  设置docker-compose可执行文件权限:chmod +x /usr/local/bin/docker-compose;

  C.  测试是否安装成功:docker-compose --version;

  D.  卸载:rm /usr/local/bin/docker-compose。

 

2、三个步骤

  A.  使用Dockerfile定义应用程序的环境,为每个服务构建需要的镜像;

  B.  使用docker-compose.yml定义构成应用程序的服务,他们在隔离环境中一起运行;

  C.  执行docker-compose up命令来启动并运行整个应用程序,如:docker-compose -f file.yml up -d;

  D.  停止或重启服务:docker-compose -f file.yml stop/restart。

 

3、docker-compose.yml配置文件

  4. 重用配置

    &  <<:*的用法后续补充

    B. 服务编排要想按照指定启动顺序的话,docker提供的depends_on或links,只能保证服务依赖也相应启动,但是无法保证启动成功后,再启动其他服务,目前比较好的就是wait-for-it.sh脚本实现;

  5. 服务远程调试参数

  6. 重启策略(restart_policy):restart_policy判断依据是进程退出(Container process exited)或内存溢出(killed by out of memory);

    A. 参数condition的三种状态

      none:要容器退出就重启容器;

      on-failure:在容器非正常退出时(退出状态非0),才会重启容器;

      any:默认策略,在容器退出时不重启容器;

     B. docker容器的退出状态码

      0:表示容器正常退出,例如 stop 容器;

      非0:表示容器退出异常(退出状态码采用 chroot 标准),例如执行 docker run 失败后的容器退出;

      125:Docker 守护进程本身有错误;

      126:容器启动后,要执行的默认命令无法调用;

      127:容器启动后,要执行的默认命令不存在;

      其他状态码:容器启动后在容器内部执行命令,该命令退出时的返回状态码,就作为容器的退出状态码;

      查看容器状态码:

  8. Portainer

    A. 生成密码工具:htpasswd -nb -B admin "your-password" | cut -d ":" -f 2,另 htpasswd是basic认证基于文件实现时,用到的账号密码生成工具,yum install -y httpd;

    B. 部署命令,注意$符号要转义,在每一个$前面再加一个$即可:

   9. 将docker容器里应用日志输出到控制台

    A. Docker将容器日志存储在默认位置/var/lib/docker中,每个容器都有一个特定其ID的JSON日志,如:

    B. 一般应用程序都有自己的日志,比如nginx的access_log,如果想在portainer里查看其日志,需要将日志转到标准输出(STDOUT)或错误输出(STDERR)中,docker打镜像操作如下:

      制作镜像时建立软连接,容器运行时,可将任何的自定义应用日志,转到标准输出和标准错误输出上,然后通过docker logs命令查看日志。

 

10. 容器健康检查health

  A. 健康检查是用来弥补之前进程级的检查策略restart的问题,如容器依赖服务未启动成功或容器内存溢出等仍无法工作,所以要引入细粒度的健康检查,比如端口级探测;

  B. 监控检查状态

    starting:容器仍在启动时的初始状态;

    healthy:如果命令成功,则容器是健康的;

              unhealthy:如果运行状态检查失败且超过重试次数就宣布容器是不健康的,但一旦后续有一次检查成功,容器就回到healthy状态。   

  C. 配置参数

    interval:两次健康检查的间隔,默认30s;

              timeout:健康检查命令运行超时时间,如果超过这个时间,本次健康检查就视为失败,默认30s; 

              retries:当连续失败指定次数后,则将容器状态视为unhealthy,默认3次;

              start_period(3.4版本才支持):应用启动的初始化时间,在启动过程中的监控检查失效不会计入,默认0s,注意如果在启动期间健康检查成功,则认为容器已启动,所有连续失败的情况都将计入最大重试次数,而且如果上面三个参数设置不合理会导致服务一直重启。

  D. 使用方式

 

可参考:docker-compose.yml配置参数详解

    docker volume目录挂载方式

    docker logs原理

    docker容器的health健康状态检查


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号