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

相关文章

Ubuntu20.04离线安装Docker

1.下载3个docker离线安装包,下载网址: https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ 2.把3个离线安装包拷贝到ubuntu本地执行以下命令 sudo dpkg -i containerd.io_1.4.6-1_amd64.deb sudo dpkg -i docker-ce-c

据阿谱尔APO Research调研显示,2023年全球髓内钉市场销售额约为4.7亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球髓内钉市场销售额约为4.7亿美元,预计在2024-2030年预测期内将以超过3.82%的CAGR(年复合增长率)增长。 髓内钉市场是指涉及髓内钉制造、分销和销售的行业。髓内钉是一种用于整形外科手术的医疗器械,用于稳定长骨骨折,特别是股骨、胫骨和肱骨。髓内钉通常由不銹钢或钛等材料制成,并插入骨的髓管中,以在愈合过程中提供结构支

利用Frp实现内网穿透(docker实现)

文章目录 1、WSL子系统配置2、腾讯云服务器安装frps2.1、创建配置文件2.2 、创建frps容器 3、WSL2子系统Centos服务器安装frpc服务3.1、安装docker3.2、创建配置文件3.3 、创建frpc容器 4、WSL2子系统Centos服务器安装nginx服务 环境配置:一台公网服务器(腾讯云)、一台笔记本电脑、WSL子系统涉及知识:docker、Frp

Docker启动异常

报错信息: failed to start daemon: Error initializing network controller: error creating default "bridge" network: cannot create network b8fd8c684f0ba865d4a13d36e5282fd694bbd37b243c7ec6c9cd29416db98d4b (d

手把手教你入门vue+springboot开发(五)--docker部署

文章目录 前言一、前端打包二、后端打包三、docker运行总结 前言 前面我们重点介绍了vue+springboot前后端分离开发的过程,本篇我们结合docker容器来研究一下打包部署过程。 一、前端打包 在VSCode的命令行中输入npm run build可以打包前端代码,出现下图提示表示打包完成。 打包成功后会在前端工程目录生成dist目录,如下图所示: 把

Docker Compose--安装Nginx--方法/实例

原文网址:Docker Compose--安装Nginx--方法/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Docker Compose如何安装Nginx。 目录结构 ├── config│   ├── cert│   │   ├── xxx_bundle.pem│   │   └── xxx.key│   ├── conf.d│   └── nginx.co

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3、容器技术与虚拟机的比较 4、容器技术在云原生中的作用 二、Docker基础 1、Docker简介 2、Docker架构 3、Docker与工作原理 三、Kubernetes(k8s)基础 1、

【Docker】Docker操作镜像命令

1. 列出本地镜像 # 列出本地所有镜像 docker images 2. 拉取镜像 # 从 Docker Hub 或其他仓库拉取镜像 docker pull [OPTIONS] NAME[:TAG|@DIGEST] # 示例:拉取名为 ubuntu 的镜像,标签为 latest docker pull ubuntu:latest 3. 搜索镜像 # 在 Docker Hu

docker 问题记录以及解决方法

1、windows 7安装docker 需要下载 Docker Toolbox才能安装,刚开始下载了Docker Desktop Installer.exe 点击安装没反应,后来查找资料才知道windows 7需要Docker Toolbox才能安装,官网显示windows10才可以安装Docker Desktop Installer.exe但是就算是widnows10 也是有版本限制的。 2、

Docker配置与使用

Docker配置与使用 目录: 简介 安装Docker 基本命令 镜像管理 容器管理 数据卷管理 网络管理 Dockerfile编写 示例:搭建一个简单的Web应用 简介 Docker是一个开源的应用容器引擎,可以让开发者将应用程序及其依赖环境打包到一个可移植的容器中,然后发布到任何支持Docker的平台上。Docker可以解决环境一致性问题,提高开发、部署和运维的效率。