• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > 通过提前bake Docker镜像加快基础设施的启动速度

通过提前bake Docker镜像加快基础设施的启动速度

作者:DockOne 字体:[增加 减小] 来源:互联网

本文主要包含docker,镜像,docker,国内镜像仓库,bake,Docker镜像等服务器相关知识,DockOne 希望可以进行参考

我之前概述过加速AWS基础设施启动的方法。本文中谈到的方法可以进一步减少大约50%的时间,即在应用运行前,预先bake(pre-bake)所需服务。

我们的微服务应用托管于Docker容器,可以从Docker仓库或私有仓库中拉取(pull)。不像在Ubuntu服务器上使用bash脚本进行安装和配置,每个应用所对应的独立Docker镜像可以单独复制到所需实例。这意味着在处理较大负载时可以快速添加实例,如果此方法可行,值得在组织中推广应用。

用户体验的头一件事是演示流程,展示应用如何为团队的Github 分支(branches)创建环境。我们预先为应用demo在EC2 AMI创建单独镜像。这样,我们仅为需要运行应用的用户启动Docker容器。

可扩展IT自动化工具Ansible可以完成大部分工作。我们用它运行各种简单任务,如更新服务器host文件,生成证书,拉取需要的Docker镜像。举个例子,我们可以运行指定命令以及使用在Ansible YAML设置文件中的指定变量。在bake镜像时,Ansible拉取Docker镜像方法如下:

- name: pulling docker images

 become: true

 command: docker pull {{ item }}

 with_items:

  - "registry.runnable.com/runnable/image-builder:{{ IMAGE_BUILDER_VERSION }}"

  - "swarm:{{ SWARM_VERSION }}"

  - "google/cadvisor:{{ CADVISOR_VERSION }}"

考虑到bake到EC2镜像的东西必须是唯一的,否则如果每个镜像都有相同的标志文件,就没有办法加以区分。为了将Docker安装到AMI以及将容器bake到AMI,我们需要删除Docker key.json文件和Docker pid file。Docker在下次启动时还会生成这些文件,所以删掉也没关系。

实例必须和用户链接,这样我们才能协助他们的应用以及确定他们所使用的资源量。为了使实例在部署之后更加个性化,我们将亚马逊SSM代理bake到镜像中,这样就可以实现在第一时间与实例进行交互。为用户分配和配置实例的速度越快,内部DNS和路由配置允许应用访问的速度也就越快。

对于预先bake Docker镜像到亚马逊AMI这种做法,尽管目前支持它的理由还比较有限,但还是值得推广到几乎所有的架构。特别是Runnable这种一个实例可以对应各种应用、数据库和服务的情况,只要你知道实例在部署时需要什么,就可以使用上述方法。可以使用多个AMI来填补所有角色需要,或者只用一个有多个Docker镜像的实例,这些镜像不被运行也没有资源消耗。这种做法对高可用基础设施的扩展速度非常有帮助,可以将其缩短到数秒钟。

需要运行什么,就bake什么,这种做法理解起来很简单。由于存在重复的问题,我们还不能做到先发制人的准备好证书和指定配置,不过这些都是不计算在等待时间内的小进程。网络传输,也可能有磁盘I/O通常在服务器创建和启动新的Docker容器的过程中耗费较多时间,因此减少这类时间消耗能显著的提高启动速度。另外,这些考虑并非只针对特定产品。创建预先bake的AMI这种做法对任何团队来说,都能在创建新实例的时候节省等待时间。

您可能感兴趣的文章:

  • 简单谈谈Docker镜像的使用方法
  • Docker 下载镜像慢的问题解决方法
  • 利用Docker制作Nginx+PHP镜像的步骤详解
  • Docker for windows pull镜像文件的安装位置改变的方法
  • 两种方式创建docker镜像的启动容器时区别介绍(总结篇)
  • Docker push镜像失败解决方法
  • Docker在CentOS7下不能下载镜像timeout的解决办法(图解)
  • 深入了解docker(docker镜像、容器、仓库的基本概念)
  • Docker创建镜像两种方法详解
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker实践8:Compose,docker实践compose
  • Docker buildx构建多平台镜像并推送到私有仓库的方法
  • Docker三个基本概念镜像(Image)容器(Container)仓库(Repository)
  • 什么是Docker?为什么要使用Docker
  • docker 开源的应用容器引擎
  • 如何给docker设置http代理
  • docker官方mysql镜像自定义配置详解
  • 详解Docker数据管理(数据卷&数据卷容器)
  • 如何利用Docker容器实现代理转发与数据备份详解
  • 详解Docker Swarm 在持续集成测试中的应用

相关文章

  • Docker容器内不能联网的6种解决方案
  • Docker镜像上传到阿里云的步骤详解
  • Docker 下载镜像慢的问题解决方法
  • 通过提前bake Docker镜像加快基础设施的启动速度
  • 在Ubuntu 16.04上用Docker Swarm和DigitalOcean创建一个Docker容器集群的方法
  • ubuntu17.10安装docker-ce的方法
  • docker使用阿里云镜像仓库的方法
  • 详解Docker 下开发 hyperf 完整使用示例
  • Linux学习之CentOS(一)----在VMware虚拟机中安装CentOS 7(图文教程)
  • docker连接spring boot和mysql容器方法介绍

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • docker容器挂载宿主主机目录的操作方法
    • Docker出现Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决办法
    • 详解VMware12使用三台虚拟机Ubuntu16.04系统搭建hadoop-2.7.1+hbase-1.2.4(完全分布式)
    • docker 的java编译环境构建详细介绍
    • 详解Docker容器跨主机通信的方法
    • Docker安装运行apache2服务器做图片服务器的方法
    • 什么是Docker?为什么要使用Docker
    • 虚拟化和云计算的区别分析
    • Docker 常用命令整理及使用注意事项总结
    • 使用dockerfile构建nginx镜像的方法示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有