• Docker镜像的制作(容器转镜像和DockerFile)


    Docker制作镜像有两种方式:

    1.容器转为镜像  

    1. docker commit 容器id 镜像名:版本号
    2. docker save -o 压缩文件名称 镜像名称:版本号
    3. docker load -i 压缩文件名称

    三个关键字:commit (提交)、save -o(保存至压缩文件) 、 load -i(由压缩文件转镜像)

    2.使用DockerFile制作镜像

    • Dockerfile是一个文本文件
    • 包含了一条条的指令
    • 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
    • 对于开发人员:可以为开发团队提供一个完全一致的开发环境
    • 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了
    • 对于运维人员:在部署时,可以实现应用的无缝移植
    • DockerFile关键字

     DockerFile关键字

    常用的将用红色标识

    关键字作用备注
    FROM指定父镜像指定dockerfile基于哪个images构建
    MAINTAINER作者信息用来标明这个dockerfile 谁写的
    LABEL标签用来指明dockerfile 的标签,可以使用Label代替Maintainer 最终都是在docker image基本信息中嗯可以查看
    RUN执行命令执行一段命令 默认是/bin/sh 格式:RUN command 或者 RUN ["command","param1","param2"]
    CMD容器启动命令提供启动容器时候的默认命令和ENTRYPOINT配合使用。格式:CMD command param1 param2或者CMD ["command","param1","param2"]
    ENTRYPOINT入口一般在制作一些执行就关闭的容器中会使用
    COPY复制文件build 的时候复制文件到image中
    ADD添加文件build 的时候添加文件到image 中,不仅仅局限于当前build 上下文 可以来源于远程服务
    ENV环境变量指定build 时候的环境变量 可以在启动容器的时候 通过-e覆盖 格式:ENV name = value
    ARG构建参数构建参数 只在构建的时候使用参时 如果有ENV 那么ENV 的相同名字的值始终覆盖ARG 的值
    VOLUME定义外部可以挂载的数据卷指定build 的image 那些目录可以启动的时候挂载到文件系统中 启动容器的时候使用-v绑定 格式:VOLUME ["目录"]
    EXPOSE暴露端口定义容器运行的时候监听的端口 启动容器的使用-p来绑定暴露端口 格式:EXPOSE 8080或者EXPOSE 8080/udp
    WORKDIR工作目录指定容器内部的工作目录 如果没有创建则自动创建 如果指定/使用是绝对地址 如果不是/开头那么实在上一条workdir 的路径的相对路径
    USER指定执行用户指定build 或者启动的时候 用户 在RUN CMD ENTRYPOINT执行的时候的用户
    HEALTHCHECK健康检查指定监测当前容器的健康测试的命令 基本上没有 因为很多时候 应用本身由健康监测机制
    ONBUILD触发器当存在ONBUILD 关键字的镜像作为基础镜像的时候 当执行FROM 完成之后 会执行ONBUILD的命令 但是不影响当前镜像 用处也不怎么大
    STOPSIGNAL发送信息量到宿主机该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出
    SHELL指定执行脚本的shell指定RUN CMD ENTRYPOINT 执行命令的时候 使用的shell

    通过dockerfile 构建镜像:

    docker build -f dockerfile -t 镜像名称:版本 filepath

  • 相关阅读:
    设计模式学习(八):桥接模式
    【Cocos creator】Cocos creator介绍和入门
    ubuntu安装Docker
    如何在虚幻引擎中渲染动画?
    java基础练习(使用java实现跨库数据调度ETL)
    vue3 v-html中使用v-viewer
    Java 并发编程解析 | 如何正确理解Java领域中的多线程模型,主要用来解决什么问题?
    关于 C/C++ 中的 switch 语句,您可能不知道
    【Mysql】第8篇--数据库元数据
    Docker
  • 原文地址:https://blog.csdn.net/qq_48826531/article/details/126834353