当前位置: 首页 > news >正文

网络集资网站怎么做中国最新24小时军情新闻

网络集资网站怎么做,中国最新24小时军情新闻,无锡锡山区建设局网站,企业如何制定网络营销策略使用Docker-Java监听Docker容器的信息 Docker作为一种轻量级的容器化平台#xff0c;极大地方便了应用的部署与管理。然而#xff0c;在实际使用过程中#xff0c;我们常常需要对运行中的容器进行监控#xff0c;以确保其健康状态#xff0c;并能及时响应各种异常情况。本…使用Docker-Java监听Docker容器的信息 Docker作为一种轻量级的容器化平台极大地方便了应用的部署与管理。然而在实际使用过程中我们常常需要对运行中的容器进行监控以确保其健康状态并能及时响应各种异常情况。本文将介绍如何使用Docker-Java这个库来监听Docker容器的信息。 什么是Docker-Java Docker-Java是一个开源的Java库旨在通过Java程序与Docker守护进程进行通信。它提供了丰富的API可以用于管理Docker容器、镜像、网络等各种资源。 安装Docker-Java 在开始之前确保你已经安装了Docker并且可以正常运行Docker命令还需要开放2375和2376。然后你需要在你的Java项目中添加Docker-Java的依赖。对于Maven项目可以在pom.xml中添加以下依赖 !-- https://mvnrepository.com/artifact/com.github.docker-java/docker-java-api -- dependencygroupIdcom.github.docker-java/groupIdartifactIddocker-java-api/artifactIdversion3.3.4/version /dependency 初始化Docker客户端 首先我们需要创建一个Docker客户端实例用于与Docker守护进程进行通信。以下是初始化Docker客户端的示例代码 publi static DockerClient buildDockerClient(String dockerHost) {DefaultDockerClientConfig config DefaultDockerClientConfig.createDefaultConfigBuilder()// 这里填最上面填的ip端口号ip换成服务器ip.withDockerHost(tcp:// dockerHost : PORT)// 这里也可以用另一种配置的// .withDockerHost(unix://var/run/docker.sock).build();/*** 创建一个ApacheDockerHttpClient实例用于与Docker服务器进行通信。* 这里使用了Apache HTTP客户端作为HTTP通信的实现通过配置各种参数来优化通信效果。** param config 提供Docker主机信息、SSL配置等必要信息的配置对象。* return DockerHttpClient 一个配置好的HTTP客户端用于与Docker服务进行通信。*/DockerHttpClient httpClient new ApacheDockerHttpClient.Builder().dockerHost(config.getDockerHost()).sslConfig(config.getSSLConfig()).maxConnections(100).connectionTimeout(Duration.ofSeconds(30)).responseTimeout(Duration.ofSeconds(45)).build();return DockerClientImpl.getInstance(config, httpClient);}监听Docker事件 Docker支持通过事件流Event Stream来监听容器的各种状态变化例如启动、停止、删除等。我们可以使用Docker-Java提供的API来监听这些事件。 以下是监听Docker容器事件的示例代码 /*** param containerId 容器ID* Description: 获取容器的基本信息*/public static MapString, String getContainerInfo(DockerClient dockerClient, String containerId) {HashMapString, String map new HashMap();// 获取容器信息InspectContainerResponse containerInfo dockerClient.inspectContainerCmd(containerId).exec();// 获取容器的名称map.put(containerName, containerInfo.getName());// 获取容器的镜像名称String image containerInfo.getConfig().getImage();map.put(dockerImage, image);// 获取容器的端口信息Ports ports containerInfo.getNetworkSettings().getPorts();map.put(ports, StrUtil.join(,, ports.getBindings().keySet()));// 获取容器的运行状态String containerState containerInfo.getState().getStatus();map.put(dockerState, containerState);// 获取容器的创建时间戳以毫秒为单位String createdTimeMillis containerInfo.getCreated();map.put(created, formattedTimeZone(createdTimeMillis));// 获取容器的运行状态Boolean running containerInfo.getState().getRunning();map.put(state, Boolean.TRUE.equals(running) ? 1 : 2);return map;}/*** 获取容器内存占用** param containerId 容器ID* return 占用内存MB*/public static double getMemoryStats(DockerClient dockerClient, String containerId) {Statistics containerStats dockerClient.statsCmd(containerId).exec(new InvocationBuilder.AsyncResultCallback()).awaitResult();long memoryUsageInBytes 0;if (containerStats ! null containerStats.getMemoryStats() ! null) {memoryUsageInBytes containerStats.getMemoryStats().getUsage();}// 将字节数转换为 MBreturn NumberUtil.div(memoryUsageInBytes, 1024.0 * 1024.0, 1);}/*** param isoTimeMillis ISO8601格式的时间* return {code String } 时间* Description: 格式化时间*/private static String formattedTimeZone(String isoTimeMillis) {// 解析ISO 8601格式的字符串为Instant对象Instant instant Instant.parse(isoTimeMillis);// 将Instant对象转换为ZonedDateTime对象UTC时区ZonedDateTime zonedDateTime ZonedDateTime.ofInstant(instant, ZoneId.of(UTC));// 转换为本地时区如果需要ZonedDateTime localZonedDateTime zonedDateTime.withZoneSameInstant(ZoneId.systemDefault());// 定义时间格式DateTimeFormatter formatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss);// 格式化时间return localZonedDateTime.format(formatter);}处理具体事件 根据项目需求我们可以进一步对不同类型的事件进行分类处理。例如如果我们只关心容器的启动和停止事件可以这样处理 /*** return {code ListContainer }* Description: 获取所有容器列表*/public static ListContainer getAllContainers(DockerClient dockerClient) {return dockerClient.listContainersCmd().exec();}/*** param containerId 容器ID* Description: 启动容器*/public static void startContainer(DockerClient dockerClient, String containerId) {dockerClient.startContainerCmd(containerId).exec();}/*** param containerId 容器ID* Description: 停止容器*/public static void stopContainer(DockerClient dockerClient, String containerId) {dockerClient.stopContainerCmd(containerId).exec();}/*** param containerId 容器ID* Description: 重启容器*/public static void restartContainer(DockerClient dockerClient, String containerId) {dockerClient.restartContainerCmd(containerId).exec();}结论 通过Docker-Java库我们可以轻松地在Java应用中与Docker进行交互并实时监听Docker容器的状态变化。这对于需要动态监控和管理容器的项目来说非常实用。希望本文的介绍能帮助你更好地利用Docker-Java来实现容器的监控与管理。
http://www.w-s-a.com/news/158221/

相关文章:

  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版
  • 手机网站建设多少钱一个门网站源码
  • 重庆 网站开发天津住房和城乡建设厅官方网站
  • 泰安高级网站建设推广厦门高端网站建设定制
  • jsp网站开发引用文献手机seo排名
  • 创建一家网站如何创设计网页的快捷网站
  • 1688代加工官方网站h5开发教程
  • 静态网站源码下载网站怎么显示备案号
  • 网站代码设计网站开发维护任职要求
  • 长寿做网站的电话怎么快速刷排名
  • 上海市中学生典型事例网站邯郸全网推广
  • 厦门网站建设680元好男人的最好的影院
  • 石家庄网站建设设计产品设计专业就业前景
  • 网站移动排名做最好最全的命理网站
  • 网站怎么防黑客杭州市做外贸网站的公司
  • 网站推广公司认准乐云seo易语言做网站登录
  • 配色设计网站推荐网站下拉菜单重叠
  • 内容展示型网站特点在北京注册公司需要多少钱
  • h5网站源代码创意设计理念
  • 岳阳网站开发服务推广运营平台
  • 网站开发得多长时间湖南建设人力资源网证书查询
  • 论坛网站开发网络营销是什么时候产生的