docker容器之镜像生成与封装

十二、Zstack如何封装系统镜像(ZCCT云计算认证) 六、Zstack如何封装系统镜像 一、镜像封装目的 提高安装效率 相对于使用ISO安装操作系统,使用已封装的镜像创建主机时,无需配置分区,安装模式等,提高部署效率 无人值守安装 创建云主机无需人为操作,可批量创建云主机 自定义配置 创建时可以自定义软件包、安装更新、驱动等工作,做到即封即用。 二、如何封装Linxu系统镜像及注意事项 1.创建镜像 点击–资源中心–云资源池–镜像–添加镜像 系统版本以Centos7.9为例: 名称:自定义一个镜像明细,我输入的是CentOS7.9_x86_64.is 阅读详情

1、什么是镜像?

docker镜像是一个特殊的文件系统,能够提供容器运行时所需的资源。如果接触过dockerfile的同学应该知道,
我们构建镜像时都会选择一个基础镜像(没接触过别担心下面会讲),这说明docker镜像是一层层进行构建的,
一个镜像往往由多层文件系统组成。

2、镜像的生成

1)、commit提交容器生成镜像

1、先运行一个容器
    docker run -d --name vm1 nginx
2、基于容器提交镜像
    docker commit vm1 nginx:v1        生成nginx:v1镜像,基于nginx,运行时需要nginx里边的东西
3、查看新生成的镜像
    docker images
4、docker history 镜像    查看镜像构建历史
5、保存镜像为.tar文件,方便迁移
    docker save -o 镜像 镜像.tar    镜像打包
6、删除镜像
    docker rmi nginx        删除镜像

2)、dockerfile生成镜像,RUN指令也是基于容器的提交,每执行一次RUN指令,commit一次

在这里插入图片描述

 nginx封装

mkdir /tmp/docker
cd /tmp/docker
    vim  dockerfile
    FROM rhel7 as build        依赖于rhel7镜像,其一个别名叫build
    COPY rhel7.3.repo  /etc/yum.repos.d/    将当前目录下的yum源拷贝到容器的/etc/yum.repos.d
    ADD nginx-1.16.0.tar.gz /mnt            将nginx压缩包解压到容器里边的/mnt
    EXPOSE 80                               开放80端口
    WORKDIR /mnt/nginx-1.16.0
    RUN rpmdb --rebuilddb && yum install -y gcc make zlib-devel pcre-devel && sed -i 
    's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr    
    /local/nginx && make && make install     编译指令,生成一层镜像
二阶构建,可以丢掉前边的不用的东西,而且gcr.io/distroless/base小与rhel7,构建的镜像更小
    FROM gcr.io/distroless/base              
    COPY --from=build /usr/local/nginx/ /usr/local/nginx
    EXPOSE 80
    VOLUME ["/usr/local/nginx/html"]
    CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]    启动,以守护进程的方式运行

生成镜像:
    docker build -t nginx:v1 .            .代表当前目录,不可或缺
运行镜像
    docker run -d --name vm1 -p 80:80 nginx:v1

 镜像比之前小了很多

nginx封装优化,根据官方最新的nignx来优化

cd /tmp/docker

vim dockerfile    
FROM nginx:1.16.0 as base
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
ARG Asia/Shanghai        失时区
RUN mkdir -p /opt/var/cache/nginx && \
    cp -a --parents /usr/lib/nginx /opt && \
    cp -a --parents /usr/share/nginx /opt && \
    cp -a --parents /var/log/nginx /opt && \
    cp -aL --parents /var/run /opt && \
    cp -a --parents /etc/nginx /opt && \
    cp -a --parents /etc/passwd /opt && \
    cp -a --parents /etc/group /opt && \
    cp -a --parents /usr/sbin/nginx /opt && \
    cp -a --parents /usr/sbin/nginx-debug /opt && \
    #ldd /usr/sbin/httpd	查看二进制程序运行所需要的动态库
    cp -a --parents /lib/x86_64-linux-gnu/libpcre.so.* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libz.so.* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libc.so.* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libdl.so.* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libpthread.so.* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libcrypt.so.* /opt && \
    cp -a --parents /usr/lib/x86_64-linux-gnu/libssl.so.* /opt && \
    cp -a --parents /usr/lib/x86_64-linux-gnu/libcrypto.so.* /opt && \
    cp /usr/share/zoneinfo/${TIME_ZONE:-ROC} /opt/etc/localtime

FROM gcr.io/distroless/base
COPY --from=base /opt /
EXPOSE 80 443        80,443都可以访问
ENTRYPOINT ["nginx", "-g", "daemon off;"]

构建镜像
    docker build -t nginx:v2 .
运行镜像
    docker run -d --name vm2 --p 443:443 nginx:v2

3、镜像的加速

docker pull nginx报错
    Using default tag: latest
	tee /etc/docker/daemon.json <<- 'EOF'
	{
    Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout

解决方法:
	搭建加速器(阿里云加速)
	vim /etc/docker/daemon.json
	    "registry-mirrors":["https://加速器地址"]
	systemctl daemon-reload
	systemctl systemctl restart docker

 

 

 

 

 

 

 

 

 

 

 

 

通过docker容器镜像逆向反向生成Dockerfile文件打包命令内容,查看原始的打包脚本命令内容,重新修改打包流程,多种方案完整还原Dockerfile文件打包内容 通过docker容器镜像逆向反向生成Dockerfile文件打包命令内容,查看原始的打包脚本命令内容,重新修改打包流程,多种方案完整还原Dockerfile文件打包内容。 遇到个情况,从别处获取的 docker 容器镜像,想修改一些东西之后,重新打包。还有就是工作中别人打包的容器镜像,但是Dockerfile文件没有了。 阅读详情

相关推荐

保姆级教程:手把手带你玩转英飞凌TC397开发板的板载资源(CAN FD、LCD、SD卡)

本文提供英飞凌TC397开发板的全面开发指南,涵盖CAN FD通信、LCD显示、SD卡文件系统和以太网通信等核心功能。通过详细的代码示例和硬件连接说明,帮助开发者快速上手并充分利用开发板的丰富资源,实现高效嵌入式系统开发。

weixin_33726313的博客 241

docker容器的镜像封装与重载

其中,-P 25204中的25204表示目标机器端口号,lzb_infer_image.tar表示需要传输的文件,root表示目标机器用户名,220.168.146.21表示目标机器ip地址,/root/workdir表示目标机器接收到文件后所保存的路径。进入lzb_infer容器并创建文件xfddlm,文件内容为“幸福的大脸猫”,(如何创建文件并写入内容这里不再赘述,若不了解可学习一下touch和vim的相关知识)将平常使用的docker容器封装为镜像tar包,可以很方便传出到。的系统盘空间不够了。

xfddlm的博客 539

阿里云Ubuntu部署Steam饥荒联机版服务器:从零到多人联机的完整指南

本文详细介绍了在阿里云Ubuntu系统上部署Steam饥荒联机版服务器的完整流程,包括环境准备、SteamCMD安装、服务端配置、Mod管理及后台运行技巧。通过2核4GB的ECS实例配置和端口设置,实现5人流畅联机体验,适合游戏爱好者快速搭建专属服务器。

weixin_29229261的博客 1024

Docker | 使用Docker创建自定义镜像封装人工智能项目和环境

使用Docker创建自定义镜像封装人工智能项目和环境图文详解~

weixin_44649780的博客 1940

如何使用安路TD与Modelsim进行联合仿真?

1)安装安路FPGA开发软件;(本次实验使用版本:TD_5.6.3_Release)2)安装Modelsim仿真软件;(本次实验使用版本:Modelsim SE-64 10.1c)3)FPGA开发板;(本次实验使用型号:EG4X20BG256)4)LED点灯例程;

qq_17313923的博客 3213

浅谈功放PA的VBW

摘要:VBW(视频带宽)反映功放的宽带非线性特性和记忆效应,影响数字预失真(DPD)校正能力。其成因是功放管寄生参数(如Cshunt和Leff)形成低频并联谐振,导致供电臂阻抗增大,引发电压波动和记忆效应。测试方法包括双音IM3/IM5测试(以两侧IM3差≥3dB定义VBW)和魔T测试(通过S21曲线测量谐振频率)。改善措施主要是减小Leff,如采用双电源平衡馈电。VBW指标要求通常为魔T测试结果大于3倍信号带宽,以确保功放线性度。

weixin_49761275的博客 1573

docker容器和镜像的封装及优化,以及私有仓库的搭建

文章目录一、docker的简介1.镜像2.容器3.仓库二、docker的安装2.启动docker并查看软件信息三、容器的建立和使用四、镜像的制作1.在原镜像的基础上再修改添加成一层新的镜像2.Dockerfile来制作简单的镜像3.Dockerfile的参数简介4.用Dockerfile封装一个能使用的nginx镜像五、镜像的优化1.减少镜像层数2.最优之多阶段构建六、私有仓库的搭建(只能本地使用...

yy1533974604的博客 730

datart 二开环境搭建

下载源码, 地址: https://github.com/running-elephant/datart, dev 分支; 解压后使用 idea 打开; 服务端: 3.1 安装依赖, idea会自动安装; 3.2 修改配置文件 /config/application.yml 3.3 创建数据库,并将bin/datart.sql导入到数据库中 3.4 入口: /server/src/main/java/datart/DatartServerApplication.java [外链图片转存失败,源站可能有防.

又是再见? 6132

docker 怎么封装镜像

拥有镜像的三种方式 官网hub.docker.com提供的docker pull 镜像 一般情况下官网能提供的服务基本已经满足了我们日常所需 自动会到官网仓库下载镜像,不指定tag版本,默认就是最新的 docker commit 命令(类似ghsot系统) 类似自己打包了一个容器,这个需求肯定是公司内部服务的部署安装 首先是基于基础镜像系统上运行的容器,可以是centos、ubun...

杨仕虎的博客 9378

调用D3D11硬解码和渲染VideoProcessor版本

在https://blog.youkuaiyun.com/robothn/article/details/78781321一文中使用shader来显示FFMPEG硬解码后的YUV420P,本文调用D3D11的videoprocessor来进行图像空间变换和尺寸变换,取得了较好的效果。 1.初始化D3D11设备、videodevice等数据结构 FFMPEG调用D3D11硬解码,获取其对应的device,videodevice。。。 FFMPEG使用av_hwdevice_find_type_by_name调用D3d11

zlyadvocate的博客 9285

搭建适用于lammps中opls-aa力场的文件流程

现在我已经解决了以上问题,并且通过我的方法可以实现从空白文档到搭建完成以上全部内容,后期只要细心检查即可。需要的data文件最关键是获得相应阴阳离子的mmol文件,因此问题转化为构建一份mmol文件。主要用到的软件及程序:gaussian09,makemol程序(tranal),opls-aa的参数文件。二面角个数:成角原子序号及对应的参数(这里PF6的结构没有二面角,所以为0)参考文献个数:文献名(空够行数即可,这些是给自己的备忘))和自身体系对应的参考文献,修改或填入对应的参数即可。

baguette的博客 2886

Docker 封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、什么是Docker镜像、容器二、操作步骤1.拉取镜像2.用continuumio/anaconda3镜像创建一个名为test的容器3.进入test容器,查看conda位置4.在本地环境中将本地环境复制到docker中5.在本地环境中将本地代码复制到docker中6.将容器保存为镜像7.将镜像存为压缩包三、几个常用docker命令四、参考文献 前言 本文主要讲解如何打包本地conda环境并生成镜像和压缩包。如需要配置Dock

qq_32101863的博客 5万+

基于FMU的Star CCM+与Amesim复杂控制联合分析

基于FMU的Star CCM+与Amesim复杂控制联合分析

2201_75375391的博客 2017

python小工具封装_使用 Docker 封装 Python 小工具生成 GitBook PDF

众所周知 GitBook 新版本生成的 PDF 是调用 calibre的 ebook-convert模块进行电子书生成的,而它默认生成的 PDF 尺寸比较大,而且不支持压缩,非常不利于传播。经过简单的寻找,我看到 fuergaosi233 同学用 Python 基于 weastprint 编写了一个简单的 GitBook PDF 生成工具,使用下来感觉还不错,于是就封装了这个容器镜...

weixin_39624606的博客 125

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

使用 Docker 封装 Python 小工具生成 GitBook PDF

本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: 2019年05月07日 统计字数: 3277字 阅读时间: 7分钟阅读 本文链接: https://soulteary.com/2019/05/07/generate-small-gitbook-pdf-using-t...

折腾技术 429

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

实训36天(docker应用+mysql容器应用+容器核对时间+容器之间的依赖域名+文件联合系统+制作基础镜像)

容器就是在镜像上添加了一个可写层Digest:回顾:创建容器:docker run -it --name a1 centos:latest /bin/bash查看容器:docker ps(查看正在up的容器)docker ps -a(查看所有的容器)切回宿主机:ctrl p q启动容器:docker start a1停止容器:docker stop a1删除容器:docker rm a1。

m0_69941986的博客 1452

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

docker封装镜像(PHP)

注意:commit生成的镜像比较大,docker file创建的小,commit即使缩减,也比docker file创建的大的多。注意:容器中药执行systemctl,需要添加 --privileged=true参数,开启特权模式,即root权限。注:运行基础镜像需要执行一个命令或是加上-it,不然容器就自动关闭了。docker cp 本地文件路径 容器ID/容器NAME:容器内路径。复制源码包中启动文件到/usr/lib/systemd/system。编辑启动文件,更改php路径。修改config文件。

水彩橘子 3078

docker快速使用简介

【代码】docker快速使用简介。

Cristina的博客 623

接口打包成Docker+Docker安装

使用docker打包接口

qq_45897987的博客 448

乙巳马年春联生成终端快速部署:Docker镜像封装与一键启动脚本

本文介绍了如何在星图GPU平台上自动化部署🐎 乙巳马年 · 皇城大门春联生成终端W镜像,快速搭建一个AI驱动的春联生成应用。用户只需输入简单的愿望关键词,即可通过该应用自动生成融合传统美学与吉祥寓意的个性化春联,适用于新年装饰、文化创意及互动演示等场景。

weixin_28235889的博客 320

docker 镜像的使用与创建(三)

docker 镜像的使用与创建(三)

喵酱 866

AI头像生成器与Docker容器化部署

本文介绍了如何在星图GPU平台上自动化部署AI头像生成器镜像,快速搭建专属的AI图像生成服务。用户通过简单的配置,即可利用该平台高效运行基于Stable Diffusion等模型的容器化应用,轻松实现个性化社交头像、虚拟形象等图片的自动化生成。

weixin_33481022的博客 100

漫画脸生成模型部署:使用Docker容器化方案

本文介绍了如何在星图GPU平台上自动化部署漫画脸描述生成镜像,实现AI驱动的漫画风格图片生成。通过该平台,用户可快速搭建个性化头像制作环境,应用于社交媒体分享和创意设计,提升内容创作效率与数据隐私安全性。

weixin_42575109的博客 315

春联生成模型-中文-base部署教程:Docker容器化封装与端口映射

本文介绍了如何在星图GPU平台上自动化部署春联生成模型-中文-base镜像,快速搭建AI春联生成服务。该平台简化了Docker容器化流程,用户可通过端口映射轻松对外提供Web服务。该模型能根据用户输入的关键词(如“安康”、“团圆”)自动生成对仗工整、寓意美好的春联,适用于春节文化内容创作、个性化祝福生成等场景。

weixin_42389113的博客 222

Docker镜像构建教程:封装HeyGem系统便于分发与复用

通过Docker将HeyGem数字人视频生成系统容器化,解决依赖复杂、环境不一致等问题,实现一键部署与跨平台复用。利用镜像分层、卷挂载和GPU支持,保障高效推理与数据持久化,推动AI应用工程化落地。

weixin_35752645的博客 1015
上一篇: docker容器安装及容器的生成与操作
下一篇: dokcer容器之私有仓库的搭建
SS_CC_Go
博客等级 码龄9年 16粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值