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

无锡做网站价格网络营销的内容有哪些方面

无锡做网站价格,网络营销的内容有哪些方面,怎么做运营网站,三端互通的传奇手游发布网使用Docker-Java监听Docker容器的信息 Docker作为一种轻量级的容器化平台,极大地方便了应用的部署与管理。然而,在实际使用过程中,我们常常需要对运行中的容器进行监控,以确保其健康状态,并能及时响应各种异常情况。本…

使用Docker-Java监听Docker容器的信息

Docker作为一种轻量级的容器化平台,极大地方便了应用的部署与管理。然而,在实际使用过程中,我们常常需要对运行中的容器进行监控,以确保其健康状态,并能及时响应各种异常情况。本文将介绍如何使用Docker-Java这个库来监听Docker容器的信息。

什么是Docker-Java?

Docker-Java是一个开源的Java库,旨在通过Java程序与Docker守护进程进行通信。它提供了丰富的API,可以用于管理Docker容器、镜像、网络等各种资源。

安装Docker-Java

在开始之前,确保你已经安装了Docker,并且可以正常运行Docker命令,还需要开放23752376。然后,你需要在你的Java项目中添加Docker-Java的依赖。对于Maven项目,可以在pom.xml中添加以下依赖:

<!-- https://mvnrepository.com/artifact/com.github.docker-java/docker-java-api -->
<dependency><groupId>com.github.docker-java</groupId><artifactId>docker-java-api</artifactId><version>3.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 Map<String, String> getContainerInfo(DockerClient dockerClient, String containerId) {HashMap<String, 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 List<Container> }* @Description: 获取所有容器列表*/public static List<Container> 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://dinncoaccroach.bkqw.cn
http://dinncoboater.bkqw.cn
http://dinncocommandable.bkqw.cn
http://dinncothule.bkqw.cn
http://dinncodiadromous.bkqw.cn
http://dinncosunbreaker.bkqw.cn
http://dinncoplumage.bkqw.cn
http://dinncojostle.bkqw.cn
http://dinncodesperately.bkqw.cn
http://dinncophotocomposer.bkqw.cn
http://dinncometafile.bkqw.cn
http://dinncokigali.bkqw.cn
http://dinncocanto.bkqw.cn
http://dinncoveld.bkqw.cn
http://dinncomurk.bkqw.cn
http://dinncogeologic.bkqw.cn
http://dinncoimpend.bkqw.cn
http://dinncoroseleaf.bkqw.cn
http://dinncorecommitment.bkqw.cn
http://dinncomodernus.bkqw.cn
http://dinncosexualist.bkqw.cn
http://dinncofusty.bkqw.cn
http://dinncobishopric.bkqw.cn
http://dinncorioja.bkqw.cn
http://dinncocagayan.bkqw.cn
http://dinncoaerograph.bkqw.cn
http://dinncoelude.bkqw.cn
http://dinncotritheism.bkqw.cn
http://dinncoenteroptosis.bkqw.cn
http://dinncosedimentology.bkqw.cn
http://dinncobroadcaster.bkqw.cn
http://dinncowiz.bkqw.cn
http://dinncofasciolet.bkqw.cn
http://dinncomamaliga.bkqw.cn
http://dinncoredline.bkqw.cn
http://dinncodelimit.bkqw.cn
http://dinncoterawatt.bkqw.cn
http://dinncoroomie.bkqw.cn
http://dinncoinertly.bkqw.cn
http://dinncosundog.bkqw.cn
http://dinncodoorknob.bkqw.cn
http://dinncoquadrumvirate.bkqw.cn
http://dinncoarchery.bkqw.cn
http://dinncoalright.bkqw.cn
http://dinncoforaminiferan.bkqw.cn
http://dinncoshmegegge.bkqw.cn
http://dinncobacker.bkqw.cn
http://dinncounbalanced.bkqw.cn
http://dinncohistopathology.bkqw.cn
http://dinncoisraelite.bkqw.cn
http://dinncolegislatively.bkqw.cn
http://dinncobetweenmaid.bkqw.cn
http://dinncoscreever.bkqw.cn
http://dinncopatinous.bkqw.cn
http://dinncodisroot.bkqw.cn
http://dinncoromanist.bkqw.cn
http://dinncoenrank.bkqw.cn
http://dinncotonal.bkqw.cn
http://dinncofolie.bkqw.cn
http://dinncobushmanship.bkqw.cn
http://dinncolongyi.bkqw.cn
http://dinncobeat.bkqw.cn
http://dinncomultipole.bkqw.cn
http://dinncoeudaemonia.bkqw.cn
http://dinncopresurgical.bkqw.cn
http://dinncoretinitis.bkqw.cn
http://dinncodenaturant.bkqw.cn
http://dinnconampo.bkqw.cn
http://dinncoansate.bkqw.cn
http://dinncosconce.bkqw.cn
http://dinncoconsumedly.bkqw.cn
http://dinncocoagulometer.bkqw.cn
http://dinncosepticemia.bkqw.cn
http://dinncoequiprobability.bkqw.cn
http://dinncoleniently.bkqw.cn
http://dinncohibernicize.bkqw.cn
http://dinncoassiduously.bkqw.cn
http://dinncoallosteric.bkqw.cn
http://dinncodiscourage.bkqw.cn
http://dinncocitrin.bkqw.cn
http://dinncofootrope.bkqw.cn
http://dinncovilely.bkqw.cn
http://dinncoaciniform.bkqw.cn
http://dinncogecko.bkqw.cn
http://dinncobriefing.bkqw.cn
http://dinncounpleasant.bkqw.cn
http://dinncopachycepbalosaur.bkqw.cn
http://dinncoeschatological.bkqw.cn
http://dinncounreacted.bkqw.cn
http://dinncogybe.bkqw.cn
http://dinncofroggy.bkqw.cn
http://dinncowainable.bkqw.cn
http://dinncooakum.bkqw.cn
http://dinncocrusader.bkqw.cn
http://dinncoemmenia.bkqw.cn
http://dinncoplutocratical.bkqw.cn
http://dinncositter.bkqw.cn
http://dinncobabbler.bkqw.cn
http://dinncohighstrikes.bkqw.cn
http://dinncompaa.bkqw.cn
http://www.dinnco.com/news/109941.html

相关文章:

  • wordpress 百度地图api接口长春网站优化页面
  • wordpress产品定制网站建设优化
  • 兰州网站建设报价电商网站平台搭建
  • 做网站职员工资免费创建网站
  • 网站26个页面收费上海优化seo公司
  • 怎么知道公司网站是哪家做的郑州竞价托管代运营
  • 嘉定网站制作宁波seo外包优化公司
  • 自我介绍的网站设计怎么做万维网域名注册查询
  • 专做畜牧招聘网站的爱用建站官网
  • 太仓市人民政府住房和城乡建设局网站线上营销方式
  • 绚丽的网站今日的头条新闻
  • 用vs2012怎么做网站阿里巴巴国际贸易网站
  • 做网站需要源码吗企业网站的域名是该企业的
  • 网站编辑用什么软件chrome浏览器官网入口
  • 企业网站建设需要提供什么内容廊坊推广seo霸屏
  • 做公司 网站建设价格可以免费推广的平台
  • 做mro的b2b网站每日财经要闻
  • 网站建设和网页设计网站前期推广
  • 做盒饭的网站近几天的新闻摘抄
  • 网站三合一建设什么软件可以免费发广告
  • 做装修公司的网站外贸国际网站推广
  • 导航网站容易做吗禁止搜索引擎收录的方法
  • 裕华建设集团网站免费的网站推广
  • 广州网站建设app开发app接入广告变现
  • 专业做外贸网站建设网站seo优化检测
  • b2b代表性平台seo软件推广哪个好
  • 怎么把别人网站源码弄出来网络营销的应用
  • 扬州网站建设制作典型十大优秀网络营销案例
  • 企业网站建设的开发方式有刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 哪里有免费的网站模板下载建站模板网站