docker镜像制作的命令,docker自定义镜像

embedded/2025/1/8 23:13:12/
一.Dockerfile制作镜像的命令1.Dockerfile文件的编写格式FROM	//指定基础镜像(唯一)FROM 镜像名:标签USER	//启动容器使用的用户,切换用户执行命令(唯一)相当与sudo -u nobody,切换用户执行命令RUN	//在容器内执行命令,可以写多条	RUN touch /tmp/a.txt;touch /tmp/a.txtWORKDIR	//设置启动容器的默认工作目录(唯一),替代cd命令WORKDIR /tmp/RUM touch a.txtADD	//把文件拷贝到容器内,如果文件是tar.xx格式,会自动解压ADD myfile.tar /var/tmpCOPY	//把文件拷贝到容器内,不会自动解压COPY myfile.tar /tmpENV	//设置启动容器的环境变量TZ=Asia/ShanghaiEXPOSE	//使用镜像创建的容器默认监听使用的端口号/协议EXPOSE 1234/tcp //标识作用ENTRYPOINT	//容器默认的启动命令(唯一)ENTRYPOINT="echo"CMD="/bin/ls -l"执行顺序:${ENTRYPOINT} ${CMD} 容器启动输出:/bin/ls -lCMD	//容器默认的启动参数,启动的时候执行什么参数(唯一)CMD: ["/bin/ls","-l"] //cmd可被位置参数覆盖 创建镜像命令使用实例FROM mylinux:latestADD myfile.tar /var/tmpCOPY myfile.tar /tmpRUN touch /tmp/a.txt;useradd user001USER user001RUN touch /tmp/b.txtWORKDIR /tmp/RUN touch c.txtENV TZ=Asia/ShanghaiEXPOSE 1234/tcpCMD ["/bin/bash"]2.镜像构建命令docker build -t 镜像名:标签 Dockerfile所在目录/二.制作镜像1.apache 镜像FROM mylinux:latestRUN  dnf install -y httpd php && dnf clean allCOPY 00-mpm.conf /etc/httpd/conf.modules.d/00-mpm.confADD  myweb.tar.gz /var/www/html/ENV  LANG=CWORKDIR /var/www/html/EXPOSE 80/tcpCMD  ["/usr/sbin/httpd", "-DFOREGROUND"]2.nginx 镜像FROM mylinux:latestADD  nginx-1.22.1.tar.gz /WORKDIR /nginx-1.22.1RUN  dnf install -y openssl pcreRUN  dnf install -y openssl-devel pcre-devel gcc makeRUN  dnf clean allRUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_moduleRUN  makeRUN  make installRUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.htmlENV  PATH=${PATH}:/usr/local/nginx/sbinWORKDIR /usr/local/nginxEXPOSE 80/tcpCMD  ["nginx", "-g", "daemon off;"]3.多阶段镜像# 第一阶段编译程序FROM mylinux:latest as builderADD  nginx-1.22.1.tar.gz /WORKDIR /nginx-1.22.1RUN  dnf install -y openssl-devel pcre-devel gcc makeRUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_moduleRUN  makeRUN  make installRUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.html# 第二阶段最终镜像FROM mylinux:latestRUN  dnf install -y pcre openssl && dnf clean allCOPY --from=builder /usr/local/nginx /usr/local/nginxENV  PATH=${PATH}:/usr/local/nginx/sbinWORKDIR /usr/local/nginxEXPOSE 80/tcpCMD  ["nginx", "-g", "daemon off;"]

一.Dockerfile制作镜像的命令

    1.Dockerfile文件的编写格式

        FROM    //指定基础镜像(唯一)
            FROM 镜像名:标签
    
        USER    //启动容器使用的用户,切换用户执行命令(唯一)
            相当与sudo -u nobody,切换用户执行命令
        RUN    //在容器内执行命令,可以写多条    
            RUN touch /tmp/a.txt;touch /tmp/a.txt
        WORKDIR    //设置启动容器的默认工作目录(唯一),替代cd命令
            WORKDIR /tmp/
            RUM touch a.txt
    
        ADD    //把文件拷贝到容器内,如果文件是tar.xx格式,会自动解压
            ADD myfile.tar /var/tmp
        COPY    //把文件拷贝到容器内,不会自动解压
            COPY myfile.tar /tmp
    
        ENV    //设置启动容器的环境变量
            TZ=Asia/Shanghai
        EXPOSE    //使用镜像创建的容器默认监听使用的端口号/协议
            EXPOSE 1234/tcp //标识作用
    
        ENTRYPOINT    //容器默认的启动命令(唯一)
            ENTRYPOINT="echo"
            CMD="/bin/ls -l"
            执行顺序:${ENTRYPOINT} ${CMD} 
            容器启动输出:/bin/ls -l
    
        CMD    //容器默认的启动参数,启动的时候执行什么参数(唯一)
            CMD: ["/bin/ls","-l"] //cmd可被位置参数覆盖 


        创建镜像命令使用实例
            FROM mylinux:latest
            ADD myfile.tar /var/tmp
            COPY myfile.tar /tmp
            RUN touch /tmp/a.txt;useradd user001
            USER user001
            RUN touch /tmp/b.txt
            WORKDIR /tmp/
            RUN touch c.txt
            ENV TZ=Asia/Shanghai
            EXPOSE 1234/tcp
            CMD ["/bin/bash"]
    
    2.镜像构建命令
        docker build -t 镜像名:标签 Dockerfile所在目录/

二.制作镜像
    1.apache 镜像
        FROM mylinux:latest
        RUN  dnf install -y httpd php && dnf clean all
        COPY 00-mpm.conf /etc/httpd/conf.modules.d/00-mpm.conf
        ADD  myweb.tar.gz /var/www/html/
        ENV  LANG=C
        WORKDIR /var/www/html/
        EXPOSE 80/tcp
        CMD  ["/usr/sbin/httpd", "-DFOREGROUND"]

    2.nginx 镜像
        FROM mylinux:latest
        ADD  nginx-1.22.1.tar.gz /
        WORKDIR /nginx-1.22.1
        RUN  dnf install -y openssl pcre
        RUN  dnf install -y openssl-devel pcre-devel gcc make
        RUN  dnf clean all
        RUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module
        RUN  make
        RUN  make install
        RUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.html
        ENV  PATH=${PATH}:/usr/local/nginx/sbin
        WORKDIR /usr/local/nginx
        EXPOSE 80/tcp
        CMD  ["nginx", "-g", "daemon off;"]

    3.多阶段镜像

        # 第一阶段编译程序
        FROM mylinux:latest as builder
        ADD  nginx-1.22.1.tar.gz /
        WORKDIR /nginx-1.22.1
        RUN  dnf install -y openssl-devel pcre-devel gcc make
        RUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module
        RUN  make
        RUN  make install
        RUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.html
        
        # 第二阶段最终镜像
        FROM mylinux:latest
        RUN  dnf install -y pcre openssl && dnf clean all
        COPY --from=builder /usr/local/nginx /usr/local/nginx
        ENV  PATH=${PATH}:/usr/local/nginx/sbin
        WORKDIR /usr/local/nginx
        EXPOSE 80/tcp
        CMD  ["nginx", "-g", "daemon off;"]


http://www.ppmy.cn/embedded/152407.html

相关文章

【办公类-47-02】20250103 课题资料快速打印(单个docx转PDF,多个pdf合并一个PDF 打印)

背景需求: 2023区级大课题《运用Python优化3-6岁幼儿学习活动材料的实践研究》需要做阶段资料 本来应该2024年6月就提交电子稿和打印稿。可是python学具的教学实验实在太多了,不断生成,我忙着做教学,都没有精力去整理。 2025年…

小程序学习07—— uniapp组件通信props和$emit和插槽语法

目录 一 父组件向子组件传递消息 1.1 props (a)传递静态或动态的 Prop (b)单向数据流 二 子组件通知父组件 2.1 $emit (a)定义自定义事件 (b)绑定自定义事件 三 插槽语法…

MySQL数据结构选择

系列文章目录 一、MySQL数据结构选择 二、MySQL性能优化explain关键字详解 三、MySQL索引优化 文章目录 系列文章目录前言一、索引1.1、什么是索引1.2、构建索引的过程1.3、索引的更新和维护1.4、索引的查询和管理1.5、InnoDB 和 MyISAM 的索引实现1.6、联合索引和最左前缀法则…

【2025软考高级架构师】案例题重点知识——第三部分

33.需求分析总结 需求分析主要是用来分析系统主要做什么,提炼、分析、认真审查获取到的需求,确保所有项目干系人明白其中的含义,同时找出错误、遗漏或者不足的地方。 需求分析的7个方面包括: 1.建立系统边界 2.创建用户界面原型 3.创建数据流图 4.创建数据字典 5.确定…

深入Android架构(从线程到AIDL)_15 应用Android的UI框架02

3、 使用UI线程的MQ(Message Queue) // myView.java // ……… public class myView extends View {// ………Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);// ………// canvas.drawRect(….);invalidate();} } 我们可以透过Message方式来触发UI线程…

PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”

近日,全球 IT 市场研究和咨询公司 Gartner 发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》(云数据库管理系统魔力象限),PingCAP 因其企业级开源分布式数据库 TiDB 在全球市场的表现,连续两年…

如何在 Spring Cloud Gateway 中创建全局过滤器、局部过滤器和自定义条件过滤器

Spring Cloud Gateway 是一个功能强大的 API 网关,能够处理 HTTP 请求、响应及路由。通过过滤器机制,您可以在请求和响应过程中进行各种处理操作,如记录日志、身份验证、限流等。Spring Cloud Gateway 提供了三种主要类型的过滤器&#xff1a…

AI赋能跨境电商:魔珐科技3D数字人破解出海痛点

跨境出海进入狂飙时代,AI应用正在深度渗透并重塑着跨境电商产业链的每一个环节,迎来了发展的高光时刻。生成式AI时代的大幕拉开,AI工具快速迭代,为跨境电商行业的突破与飞跃带来了无限可能性。 由于跨境电商业务自身特性鲜明&…