首页 > 其他分享 >Dockerfile构建镜像常用指令

Dockerfile构建镜像常用指令

时间:2023-04-27 09:24:59浏览次数:39  
标签:容器 CMD 路径 指令 构建 镜像 Dockerfile

1.常用命令

Dockerfile是一个文本文件,包含了一条条的指令,在基于指定的镜像上,一条指令构建一层,最终构建出一个新的镜像。

关键字 作用 备注 格式
FROM 指定基础镜像 指定基于哪个镜像开始构建 FROM <image>:<tag>
MAINTAINER 作者信息 标明这个dockerfile是谁写的(已弃用) MAINTAINER xxx xxx
LABEL 标签 给镜像添加元数据,以键值对的形式,可以理解类似注释 LABEL <key>=<value> <key>=<value> <key>=<value>
RUN 制作镜像时执行的命令 构建镜像时运行的指令,默认是/bin/sh RUN <命令行命令>RUN["可执行文件", "参数1", "参数2"...,"参数n"](相当于:RUN 可执行文件 参数1 参数2 … 参数n)
CMD 容器启动时执行的命令 运行容器时执行的shell环境。每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。 有3种格式:
1.exec执行:CMD ["executable","param1","param2"]
2./bin/sh中执行:CMD command param1 param2
3.提供给 ENTRYPOINT 的默认参数:CMD ["param1","param2"]
ENTRYPOINT 入口 一般在制作一些执行就关闭的容器中会使用 ENTRYPOINT ["executable", "param1", "param2"]
COPY 复制文件到镜像中 构建的时候复制文件到镜像中 COPY 源路径 目标路径(源路径是宿主机的路径,目标路径是容器的路径)
ADD 添加文件 构建时添加文件到镜像中,与COPY的区别是ADD会自动解压 ADD 源路径 目标路径(源路径是宿主机的路径,目标路径是容器的路径)
ENV 环境变量 在构建镜像时,设置环境变量,可以在启动容器的时候,通过-e覆盖(即容器内也可以使用) ENV <key> <value>
ARG 构建参数 用于指定传递给构建运行时的变量(给dockerfile传参),相当于构建镜像时可以在外部为里面传参 ARG <name>[=<default value>]
VOLUME 定义外部可以挂载的匿名数据卷 在启动容器时若忘记挂载数据卷,会自动挂载到匿名卷 VOLUME ["/xxx/xx/xxxx", "xxx", ..., "xxx"]
EXPOSE 声明容器的服务端口 仅仅声明容器的服务端口(及提供服务的端口) EXPOSE 端口号
WORKDIR 工作目录 指定容器的开始工作目录(若没有时会自动创建)。设置之后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行 WORKDIR 最好是绝对路径
USER 指定容器执行用户 指定运行容器时的用户名或ID执行用户 USER user

2.注意事项

 1.Dockerfile本质是一个文件,通过指令描述镜像的构建过程。
 2.Dockerfile的注释符号是`#`。
 3.Dockerfile的第一行必须是FROM,从一个基础镜像来构建。
 4.通过Dockerfile构建镜像命令格式为:"docker build -f Dockerfile文件路径 -t 镜像名称:版本 ."
    1.默认一般把文件命名为Dockerfile,然后构建命令直接用"docker build -t 要保存的镜像名称:版本 ."
    2.最后的"."的含义是将当前目录告诉docker引擎,然后当执行"docker build"命令后,本机将当前目录下的所有文件发送给docker引擎,最后由docker引擎完成镜像的构建

标签:容器,CMD,路径,指令,构建,镜像,Dockerfile
From: https://www.cnblogs.com/qing1126/p/17349755.html

相关文章

  • rabbitMQ镜像模式搭建
    一、环境 配置hosts解析192.168.1.135rabbit-master01192.168.1.136rabbit-master02192.168.1.137rabbit-master03关闭防火墙或者配置相关端口二、安装yum源及rabbitmq在所有机器上curl-shttps://packagecloud.io/install/repositories/rabbitmq/erlang/script.r......
  • LeetCode 1643. 第 K 条最小指令
    康托展开一开始无脑枚举全排列,果断超时,还是得看看如果降低计算量。题目destination=[2,3],相当于2个V,3个H,输出全排列去重后的对应位置字典序列内容。忽略去重则问题为全排列,所有可能为:\[(\sumdestination)!=(2+3)!=5!\]k恰好为康托展开结果+1,直接逆向......
  • [Ubuntu] 节点部署获取镜像报错以及解决方法
    没有启动docker,解决方法启动dockerservicedockerstartservicedockerstatusdockerhub没有该版本在dockerhub查询版本......
  • Ubuntu 安装Docker 并配置镜像加速
    环境UbuntuServer18.04.1LTS64bitUbuntu查看版本参考链接Docker安装对Ubuntu版本要求Docker安装卸载原有的版本sudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc首次安装配置Dockerrepository升级apt,并允许通过HTTPS使用存储库sudoap......
  • 使用Dockerfile部署springboot打包jar包
    1、docker下载JDK1.8镜像dockerpulljava:82、编写Dockerfile文件#依赖的父镜像FROMjava:8#作者MAINTAINERdocker-admin#jar包添加到镜像中ADDxxl-job-admin-2.1.2.jarxxl-job-admin.jar#容器暴露的端口即jar程序在容器中运行的端口EXPOSE8080#容器启动之后......
  • 如何在dockerfile中降apt-get源更换为中国国内源
    注意要确认自己的系统是debian还是ubutnu,这两个系统的源是完全不一样的在Dockerfile中将apt-get源更换为中国国内源,您可以通过以下步骤完成:在Dockerfile的开头添加以下内容:#设置为中国国内源RUNsed-i's/archive.ubuntu.com/mirrors.aliyun.com/g'/etc/apt/sources.list......
  • DOCKER 基础镜像
    DOCKER基础镜像  转至元数据结尾 Createdby 蒋颖伟,lastmodifiedby mike on 三月15,2019转至元数据起始  1、不带jdk的基础镜像的dockerfileFROM ubuntuMAINTAINERlstar [email protected] #更换源可以是阿里云、网易、搜狐的源,默认源也......
  • ubuntu 22.04 国内镜像阿里云/163源/清华大学/中科大
    ubuntu22.04国内镜像阿里云/163源/清华大学/中科大--转--已验证GPG错误由于没有公钥,无法验证下列签名sudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv-keys871920D1991BC93Csudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv-keys3B4FE6ACC0B21F323B......
  • python3.10升级pip命令-国内镜像源
    国内镜像源pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplesome-packagepython3.10升级pip命令python.exe-mpipinstall--upgradepip安装pipinstallpip-review查看可更新pip-review批量自动更新pip-review--auto......
  • STM32HAL库常用指令速查手册
    STM32HAL库常用指令速查手册持续更新中GPIOHAL_GPIO_InitvoidHAL_GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_Init);//功能:GPIO初始化HAL_GPIO_DeInitvoidHAL_GPIO_DeInit(GPIO_TypeDef*GPIOx,uint32_tGPIO_Pin);//功能:在函数初始化之后的引脚恢......