首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏DevOps持续集成

    优化Docker镜像,加速应用部署,教你6个小窍门

    基于Kubernetes的新版小米应用引擎在小米生态云上线3个多月来,深受大家喜爱。为了让用户的云端应用管理更高效、更方便,今天从6个方面分享一些溜到飞起的小窍门。 每次启动应用实例时,都需要去镜像仓库检查镜像是否更新。这种方式不利于版本管理,对应用启动速度也有一定影响。 各开发语言和框架都有基于alpine制作的基础镜像,在开发自己应用镜像时,选择这些镜像作为基础镜像,可以大大减小镜像的体积。 避免使用进程管理程序,保证应用健康运行 在应用的某个实例崩溃或者非正常退出时,很多进程管理程序并不退出,导致平台无法检测到应用已经不可用,进而无法重启应用。所以要避免使用这类进程管理程序来启动镜像应用镜像启动后,文件系统是临时的,崩溃后即被销毁。

    1.6K10发布于 2020-03-12
  • 来自专栏全栈程序员必看

    docker(6镜像的使用

    docker 面向对象 镜像 类 容器 实例 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。 查看镜像列表 使用docker images查看本地已经下载的镜像 REPOSITORY:表示镜像的仓库源 TAG:镜像的标签,区分不同版本 IMAGE ID:镜像ID,16进制组成,唯一标识 CREATED 5 years ago 349MB 我们本地下载的镜像文件是从仓库下载过来的,每个镜像在仓库源都有个名称,也就是 REPOSITORY,同一个镜像源可以有不同的版本,同标签 5 years ago 349MB [root@jkc docker]# 创建镜像 当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改 1、从已经创建的容器中更新镜像,并且提交这个镜像 2、使用 Dockerfile 指令来创建一个新的镜像 更新镜像 更新镜像之前,我们需要使用镜像来创建一个容器。

    74210编辑于 2022-09-19
  • 来自专栏jeremy的技术点滴

    制作CentOS6基础镜像

    搭建私有云时需要制作一些操作系统的基础镜像,这里也有一些持巧,在这里记录下来以备忘。 安装CentOS6操作系统 这里没有太多好说的,我是从这里下载最小安装ISO进行安装的,安装的硬盘大小为20G。 qemu-img convert -f qcow2 -O qcow2 centos6.img centos6_c.img mv centos6_c.img centos6.img 对镜像文件预处理 使用虚拟机平台基于上述centos6基础镜像文件创建虚拟机后,在虚拟机启动前需对镜像文件进行预处理,我这里写个脚本处理这件事 执行脚本前需安装libguestfs-tools yum install - linux操作系统及windows系统 要是能扩展虚拟化管理平台WebVirtMgr,能在首次启动时执行指定的脚本对镜像进行预处理就好了。 参考 深度实践KVM/第16章 虚拟机镜像制作、配置与测试/16.2 Linux镜像制作方法 http://www.361way.com/kvm-libguestfs-tools/3175.html

    2.9K60发布于 2018-05-10
  • 来自专栏迁移内容

    Docker 应用实践-镜像

    本品内容主要介绍:关于 Docker 镜像、Docker 命令应用实践 ---- 文章目录 一、关于 Docker 镜像 1、对于 Docker 镜像的理解 2、Docker 镜像的多层结构 二、Docker 命令应用实践 1、登陆镜像仓库(镜像仓库) 2、Docker search 命令(镜像仓库) 3、Docker pull 命令(镜像仓库) 4、Docker images 命令( 本地镜像) 5、Docker rmi 命令(本地镜像6、Docker tag 命令(本地镜像) 7、Docker build 命令(本地镜像) 8、Docker history 命令(本地镜像) 9 其中,多个容器共享镜像的结构如下所示: 总的来说:镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象。镜像内部是一个精简的操作系统(OS),同时还包含应用运行所必须的文件和依赖包。 # 实例 $ docker rmi -f ubuntu:18.04 6、Docker tag 命令(本地镜像) docker tag:标记本地镜像,将其归入某一仓库。

    88310编辑于 2023-02-03
  • 来自专栏陈琛的Redis文章

    Docker系列——6.docker 制作镜像

    在前面我们使用了docker commit在制作了一个镜像cutegirl,但是这是要在提交的基础上修改的,但是如果没有一个基本的镜像,就不能用这个方法,这就要引入一个新的方式,采用dockerfile 第三行:就是要这个镜像实现什么功能?现在实现的功能就是打印Hello Docker。 ? 写好之后,我们来打包。 ? 执行完打包命令之后,我们看一下执行结果是什么?

    72820发布于 2020-06-12
  • 来自专栏DevOps运维

    6-docker镜像仓库和标签tag

    一 docker仓库和镜像tag A. docker仓库分类 docker镜像是需要放到一个统一的仓库的,以便不同的主机可以下载和使用相同的镜像而不必每次都用dockerfile自己做,docker镜像仓库按如下方式划分 每个镜像可以有多个 tag,而多个 tag 可能对应的是同一个镜像。下面介绍 Docker 社区普遍使用的 tag 方案。 TAG IMAGE ID CREATED SIZE luoxiaogang/c7-nginx v2 669691018aa6 Pushed 2de8d3b18deb: Pushed f903e5a29540: Pushed 228f6119c990: Pushed 54470def7538: Pushed d69483a6face : Pushed v2: digest: sha256:12843dfd....6 size: 1782 三 私有仓库(命令行) A.

    2.6K10发布于 2021-11-16
  • 来自专栏云云众生s

    Dive:查看 Docker 镜像内容的应用

    为了做到这一点,你需要了解诸如层、层的详细信息、每个层的内容和镜像的详细信息等方面的信息。 听起来是不是很费力呢? 有一个叫做 Dive 的应用程序可以帮助你,实际上这个过程非常简单。 Dive包括以下功能: 镜像内容分解 显示每个层的内容详细信息 显示正在检查的镜像的总大小 显示镜像中的浪费空间(越小越好) 显示镜像的效率得分(越高越好) 这些都是非常重要的信息,特别是对于试图创建尽可能高效和安全的 你肯定不想在镜像的层中包含不必要的应用程序,而 Dive 正是一个很好的工具,可以准确地了解其中的内容。 让我们开始安装 Dive 吧。 /dive_${DIVE_VERSION}_linux_amd64.deb 安装完成后,你就可以测试该应用程序了。 希望这个命令行应用程序能帮助你构建更高效和安全的镜像(或者至少了解构成你使用的镜像的确切内容)。

    98710编辑于 2024-03-28
  • 来自专栏鸿蒙开发笔记

    稀疏镜像在OpenHarmony上的应用

     一、稀疏镜像升级背景常用系统镜像格式为原始镜像,即RAW格式。镜像体积比较大,在烧录固件或者升级固件时比较耗时,而且在移动设备升级过程时比较耗费流量。 二、稀疏镜像原理1、稀疏镜像的概念原始镜像:即raw image,完整的ext4分区镜像,包含很多全零的无效填充区稀疏镜像:即sparse image,将raw ext4进行稀疏描述,因此尺寸比较小,制作目录有多少文件就计算多少 (3)编译后的镜像对比编译出的镜像格式为sparse格式,镜像大小相比raw格式明显变小。(4)烧录稀疏镜像烧录稀疏镜像方法和烧录原始镜像方法一致。 稀疏镜像本身是不能直接挂载的,在烧录过程中通过uboot将稀疏格式镜像还原为原始镜像,然后写到磁盘中,系统启动后可挂载对应的镜像。2、稀疏镜像升级升级包采用稀疏镜像制作。 本文介绍了OpenHarmony系统中实现稀疏镜像升级的方法,理解稀疏镜像原理及稀疏镜像还原方法可以快速在自己的系统中应用稀疏镜像升级,提高系统升级速度。

    32300编辑于 2025-04-28
  • 【将Java应用打包为Docker镜像

    将Java应用打包为Docker镜像的步骤 准备Java应用 确保Java应用已编译为可执行的JAR或WAR文件。 以下是基于不同场景的配置示例: 案例1:Spring Boot JAR应用 # 使用官方OpenJDK镜像作为基础 FROM eclipse-temurin:17-jdk-jammy # 设置工作目录 Tomcat COPY target/your-webapp.war /usr/local/tomcat/webapps/ROOT.war # 暴露Tomcat端口 EXPOSE 8080 构建和运行镜像 构建镜像 在Dockerfile所在目录执行: docker build -t java-image-name . 运行容器 docker run -p 8080:8080 -d java-image-name -p:端口映射(主机端口:容器端口) -d:后台运行 优化建议 多阶段构建 减少最终镜像大小,丢弃构建阶段的依赖

    49310编辑于 2025-12-17
  • 来自专栏全栈工程师修炼之路

    6.Docker镜像与容器安全最佳实践

    所以如果该项目不需要任何通用的系统库或者系统工具应用,最好不要使用完整的操作系统作为基础镜像。 安全实践 1) 使用多阶段构建: 利用 Docker 的多阶段构建功能,用一个中间镜像层获取和管理机密信息,然后清除中间镜像,这样在应用镜像构建阶段不涉及敏感数据。 所以在实践环境中我们常常将软件构建阶段所需的镜像存放到内部的镜像仓库之中,并不会将它用来作为运行应用的环境。 ——非常小的镜像,只包含运行应用所需的极少数依赖。 加固方法: 修复容器镜像的Dockerfile,以便仅通过容器化应用程序公开所需的端口。

    4.2K20编辑于 2022-09-28
  • 来自专栏个人开发

    Linux下docker制作springboot应用镜像

    等待一段时间后,打包镜像成功,如下图: ? 执行docker images | grep jinjunzhu ? 可以看到打好的镜像了,但是镜像文件太大了,原因是jdk的镜像太大。 如下图:这一次的镜像小了很多 ? 启动刚刚创建的镜像: docker run -itd --name springboot-rabbitmq -p 8082:8082 d170dea75f29 可以看到输出: b8a65d2eb6c8ff78c49b4aefb9cd453e03d0df80570d3534f275816f84706220 查看启动日志: docker logs b8a65d2eb6c8ff78c49b4aefb9cd453e03d0df80570d3534f275816f84706220 在浏览器输入:http://192.168.59.131 网上找到了答案,应用对docker开启了防火墙,执行如下命令,对docker0开放5672端口,再次telnet就可以通了 firewall-cmd --permanent --zone=trusted

    4.9K30发布于 2020-08-20
  • 来自专栏用户8644135的专栏

    定制Linux镜像批量部署初始应用

    certmonger pam_krb5 krb5-workstation perl-DBD-SQLite firefox %pre #安装前定义的脚本,切换到rry6终端 /bin/bash exec < /dev/tty6 > /dev/tty6 chvt 6 clear echo -n "Please input the swap size(M)-32G(32768) 把镜像重新封装到/root/test.iso,test.iso即为制作好的镜像,上边的参数不要修改,除非很清楚在干什么 主要有几个注意点: 1、光盘安装的时候,光盘的临时目录为/mnt/source/( 解决方法: 重置repodata,然后重新生成镜像 rm -f repodata/*.gz repodata/*.*.bz2 repodata/*.repomd.xml declare -x discinfo -c6-x86_64-comps.xml .

    1.6K20发布于 2021-06-17
  • 来自专栏用户10693341的专栏

    【端午惊喜】2024年66日 docker 国内镜像源集体失效

    文章目录 概述 中科大镜像源 阿里镜像源 其他镜像源 可用的镜像源 写在最后 概述 大家都知道使用docker hub官方镜像需要魔法,虽然大部人有魔法,但是网速也是很慢,还有部分同学没有,全靠国内各大厂商的镜像源 中科大镜像源 2024-06-06 ,暂时关闭 Docker Hub 镜像缓存服务,GCR 与 Quay 暂不受影响 阿里镜像源 其他镜像源 其他源也已经不可用,很多没有更新推送 可用的镜像源 目前还有部分可用

    19.6K31编辑于 2024-06-12
  • 来自专栏凯哥Java

    Docker学习6-Docker镜像commit操作案例

    在上一篇中,我们知道了docker是基于联合文件系统的分层镜像。而且也知道了镜像是只读的,容器才是可以写的。那么,如果我们要修改镜像,修改之后,怎么提交呢? 添加vim命令后,重新打一个新的镜像。 docker commit 提交容器副本使其变为一个新的镜像。 图片 我们启动原始下载的Ubuntu。使用vim命令如下: 图片 命令未发现。 当我们添加了vim后的镜像是179M了。说明,我们添加了vim的镜像制作成功了。 启动新镜像,和原来镜像对比:新的镜像支持vim命令。 总结: Docker中的镜像分层,支持通过扩展现有的镜像,创建新的镜像。类似于我们Java中的类继承与一个Base的基础类,自己在按照自己需要来扩展一样。 新的镜像是从base镜像一层一层叠加生成的,每安装一个软件,就在现有的镜像的基础上增加一层。

    67320编辑于 2022-12-16
  • 来自专栏非著名运维

    企业实战(6)修改Harbor镜像仓库默认存储路径

    相关文章:  以下文章包含了Harbor镜像仓库搭建所需环境以及部署使用、报错解决。 details/105540702 Docker-Compose部署:https://blog.csdn.net/qq_44895681/article/details/105540333 Harbor镜像仓库部署使用 docker-compose up -d //构建(容器)并启动(容器)整个project的所有service 4.访问Harbor查看存储容量 在这里插入图片描述 在这里插入图片描述  访问harbor后可以看到镜像存储容量已经变成

    1.6K20编辑于 2022-06-22
  • 来自专栏码农小胖哥的码农生涯

    Buildpacks高效构建Spring Boot应用Docker镜像

    前言 Spring Boot 2.3.0.RELEASE 正式发布了几天了,其中有个新的特性:可以将 Spring Boot 应用代码直接打包为 Docker 镜像。这是什么科技? 你的应用配置环境,也可以成为Profile,比如Spring Boot应用中 application.yml 的环境配置。 保证应用构建的安全性和合规性,而无需开发者干预。 提供操作系统级别和应用程序级别的依赖关系升级的自动交付,屏蔽了Dockerfile 的复杂性。 执行下面的命令构建Docker镜像: pack build myapp --builder cnbs/sample-builder:bionic 执行完毕后你的 Docker 镜像就构建完毕了,甚至有需要的话你可以再追加 --publisher命令将镜像上传到Docker镜像仓库。

    1.2K20发布于 2020-05-28
  • 来自专栏姜同学

    使用Docker将你的应用制作成镜像

    为什么是Docker 在开发的时候,在本机测试环境可以跑,生产环境跑不起来` 这里我们拿java Web应用程序举例,我们一个java Web应用程序涉及很多东西,比如jdk、tomcat、mysql等软件环境 当这些其中某一项版本不一致的时候,可能就会导致应用程序跑不起来这种情况。Docker则将程序以及使用软件环境直接打包在一起,无论在那个机器上保证了环境一致。 优势3: 通过镜像复制N多个环境一致容器 制作镜像 将一个SpringBoot的应用制作成镜像也是Very easy哦,前提是你要了解一下Docker一些基本命令的使用,Docker命令的介绍在菜鸟教程里面写的那些命令已经很够用了 ,我就不在介绍啦咱们直接实战将应用制作成镜像,然后将而容器启动起来你只需要将你的应用打成jar包然后编写Dockerfile就好啦~ 编写Dockerfile 编写Dockerfile咱们IDEA上写好直接使用 –env把他替换掉就好啦,将jar包上传到镜像里面去然后把应用的日志目录挂载到宿主机当中去,这个/var/log是我在logback中已经定义好的了。

    1.1K20编辑于 2022-10-27
  • 来自专栏云前端

    实战 web 应用 Docker 镜像解耦交付

    把一个 web 应用塞进集装箱呢? 随着几次浏览器大战的硝烟散尽和 Flash 的背影远去,当下的 web 应用开发经过十余年的发展,在工程化、测试、持续集成等方面都已经汇入了软件开发的快车道。 但和项目中的环境变量类似,如果应用不当也会造成不同环境下镜像不一致的问题。因此交由运维人员或者自动化执行的 docker build 命令最好没有构建参数。 这是个非常有用的特性,能避免最终镜像中存在编译过程中的依赖文件,也就是镜像会变得更小了 。 但由于一来浏览器中无法用 process 感知环境,二来 Nginx 又不似 Node.js 应用一样可以直接传入参数;我们只好稍费周章,想办法 写入一些 Nginx 可以伺服的文件作为变量来源。 项目局部的异步改造 配置文件很轻松的就解决了,那么有了 endpoint.json 配置文件,如何在 runtime 将其应用于每一次异步请求呢?

    1.7K10发布于 2020-06-15
  • 来自专栏我的小碗汤

    无需依赖 Docker 环境制作 Java 应用镜像

    随着高版本的 Kubernetes 弃用 Docker,企业也可以不依赖 Docker 环境了,但是 DevOps 通过 Kubernetes 部署的话,仍然需要制作镜像,那么在没有 Docker 环境的情况下如何制作呢 github 地址: https://github.com/GoogleContainerTools/jib 它是一个无需 Docker 守护进程,也无需深入掌握 Docker 最佳实践的情况下,为 Java 应用程序构建 Docker 和 OCI 镜像, 它可以作为 Maven 和 Gradle 的插件,也可以作为 Java 库。 那么有没有不需要改造系统的方式直接进行构建镜像呢?答案是通过 Jib-core 就可以实现。 通过 Jib-core,可以很轻松的实现镜像构建,而不需要依赖任何其他环境,也不需要被构建系统做任何改造,非常方便。 如果你的项目有此需求,也可以通过 Jib-core 来实现。

    1.2K40编辑于 2023-03-20
  • 来自专栏Janti

    每天学一点Docker(6)——镜像和DockerFile

    镜像的分层结构: 实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的。 当然,某些情况下我们也不得不自己构建镜像,比如: 找不到现成的镜像,比如自己开发的应用程序。 需要在镜像中加入特定的功能,比如官方镜像几乎都不提供 ssh。 镜像缓存 Docker 会缓存已有镜像镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建。 Dockerfile 中每一个指令都会创建一个镜像层,上层是依赖于下层的。 当容器中的应用有持久化数据的需求时可以在Dockerfile中使用该指令。 当容器中的应用有持久化数据的需求时可以在Dockerfile中使用该指令。

    1.3K50发布于 2018-04-10
领券