ICSE docker related research

2024-05-12 19:44
文章标签 docker research related icse

本文主要是介绍ICSE docker related research,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ICSE 2024

Empirical Study of the Docker Smells Impact on the Image Size

Docker 气味对镜像大小影响的实证研究

Docker 是一种广泛采用的打包和部署应用程序的工具,它利用 Dockerfile 来构建镜像。然而,创建最佳的 Dockerfile 可能具有挑战性,通常会导致“Docker 异味”或偏离最佳实践。本文研究了 14 种 Docker 气味对 Docker 镜像大小的影响。为了评估 Docker 气味的大小影响,作者从 11 313 个开源 Docker 文件中识别并修复了 16 145 个 Docker 气味。作者观察到,气味导致每个有气味的镜像平均增加 48,06 MB (4,6 %)。根据气味类型,尺寸增加最多可达 10%,对于某些特定情况,气味可以代表镜像尺寸的 89%。有趣的是,最有影响力的气味与常见的包管理器有关,并且相对容易修复。为了收集开发人员对 Docker 异味大小影响的看法,作者提交了 34 个修复异味的拉取请求,并向开发人员报告了它们对 Docker 镜像的影响。 26/34 (76.5%) 的拉取请求已合并,有助于节省 3.46 GB (16.4%)。即使拉取请求被拒绝,开发人员的评论也表明了他们对解决这些 Docker 异味的积极​​兴趣。

ICSE 2021

Shipwright: A Human-in-the-Loop System for Dockerfile Repair

Shipwright:用于 Dockerfile 修复的人机交互系统

Docker 是一种轻量级操作系统级虚拟化工具。 Docker 镜像是通过执行构建来创建的,由称为 Dockerfile 的源级工件控制。作者在 GitHub 上研究了 Dockerfile,大吃一惊的是,超过四分之一的受检查 Dockerfile 无法构建(从而无法生成镜像)。为了解决这个问题,本文提出了 SHIPWRIGHT,这是一种人机交互系统,用于查找损坏的 Dockerfile 的修复。 SHIPWRIGHT 使用 BERT 语言模型的修改版本来嵌入构建日志并对损坏的 Dockerfile 进行集群。使用这些集群和基于搜索的程序,本文能够设计 13 条规则来自动修复 Dockerfile。在 SHIPWRIGHT 的帮助下,作者向 GitHub 项目提交了 45 个存在损坏 Dockerfile 的 Pull 请求(接受率为 42.2%)。此外,在对后来修复的损坏的 Dockerfile 进行“时间旅行”分析时,发现在研究的 22.77% 的案例中,SHIPWRIGHT 提出的修复相当于人类编写的补丁。最后,作者将当前工作与最近最先进的静态 Dockerfile 分析进行了比较,发现虽然静态工具在检查的 20.6-33.8% 的文件中检测到了可能导致构建失败的问题,但 SHIPWRIGHT 能够检测 73.25% 的文件中可能存在的问题,此外还为 18.9% 的文件提供自动修复。

ICSE 2020

Learning from, understanding, and supporting DevOps artifacts for docker

学习、理解和支持 Docker 的 DevOps 工件

随着 DevOps 工具和框架的使用不断增加,对支持代码以外的工具和技术的需求也不断增加。目前最先进的静态开发人员辅助工具(例如 Docker)仅限于浅层语法验证。作者确定了学习、理解和支持开发人员编写 DevOps 工件领域的三个核心挑战:(i) DevOps 工件中的嵌套语言,(ii) 规则挖掘,以及 (iii) 缺乏基于语义规则的分析。为了应对这些挑战,作者引入了 binnacle 工具集,它能够摄取 900,000 个 GitHub 存储库。

作者以 Docker 为重点,提取了大约 178,000 个独特的 Dockerfile,并确定了由 Docker 专家编写的黄金 Dockerfile 集。作者通过一种称为分阶段解析的技术,将 AST 中有效且不可解释的节点数量减少了 80% 以上,从而解决了挑战 (i) 。为了应对挑战 (ii),本文引入了一种新颖的规则挖掘技术,能够恢复作者策划的基准中三分之二的规则。通过这种自动挖掘,能够恢复手动规则收集期间未找到的 16 条新规则。为了解决挑战 (iii),本文从黄金集中文件的提交中手动收集了一组 Dockerfile 规则。这些规则封装了最佳实践,避免 docker 构建失败,并改善映像大小和构建延迟。作者创建了一个使用这些规则的分析器,发现平均而言,GitHub 上的 Dockerfile 违反规则的频率是黄金集中的 Dockerfile 的五倍。作者还发现工业 Dockerfile 的表现并不比来自 GitHub 的 Dockerfile 好。

binnacle 中学到的规则和分析器可用于帮助 IDE 中的开发人员创建 Dockerfile,并以事后方式识别现有 Dockerfile 中的问题并改进现有 Dockerfile。

这篇关于ICSE docker related research的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983564

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c