当前位置: 首页 > news >正文

dockerfile关键字

参考:59_Dockerfile保留字简介_哔哩哔哩_bilibili

FROM

作用指定基础镜像,即在这个基础镜像上构建新镜像,如下所示,表示在ubuntu20.04镜像的基础上构建新镜像

FROM ubuntu:20.04

MAINTAINER

作用:镜像维护者的姓名和邮箱地址

RUN

作用:构建容器时需要执行的命令。通常用于安装软件包、更新系统等

RUN apt-get update && \apt-get install -y \package1 \package2 \package3 \&& rm -rf /var/lib/apt/lists/*

EXPOSE

指定当前容器对外暴露的端口

WORKDIR

作用:指定容器创建后,进入容器时的默认工作目录

USER

作用指定镜像以什么样的用户去执行,如果都不指定,默认是root

ENV

作用设置环境变量,如下所示,为系统环境变量PATH添加新值

ENV PATH /opt/conda/envs/vln/bin:$PATH

ADD

作用:将宿主机目录下的文件拷贝进镜像,且会自动处理URL和解压tar压缩包,如下所示,该命令表示从cmake网站上下载对应的sh文件,并将其放入容器的根目录下

ADD https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.sh /cmake-3.12.2-Linux-x86_64.sh

又或者这段代码,表示将宿主机上的run.tar文件拷贝进镜像中并自动进行解压

ADD run.tar

COPY

作用:只有拷贝作用,将宿主机中的文件拷贝进镜像中,如下,表示将宿主机下的~/.ssh/config文件拷贝进config文件夹中

COPY ~/.ssh/config config

CMD

作用:指定容器启动后要执行的命令,如下,表示容器启动后执行catalina.sh

CMD ["catalina.sh"]

注,假如有多个CMD命令,则后边的CMD命令会覆盖掉前者的命令,并且docker run之后的参数会替换掉最后一个CMD指令 

ENTRYPOINT

作用:指定容器启动后运行的命令,但ENTRYPOINT 指定的命令不会被修改

一般情况下,我们使用ENTRYPOINT 传定参,CMD命令传变参

使用格式

ENTRYPOINT ["executable","parm1","parm2",...]

假如我们通过以下镜像构建了一个nginx:test镜像

FROM nginx
ENTRYPOINT ["nginx","-c"]
CMD ["/etc/nginx/nginx.conf"]
是否传参按照dockerfile编写执行传参运行
Docker命令docker run nginx:testdocker run nginx:test -c /etc/nginx/new.conf
对应实际命令nginx -c /etc/nginx/nginx.conf nginx -c /etc/nginx/new.conf

http://www.lryc.cn/news/357428.html

相关文章:

  • MATLAB分类与判别模型算法: 快速近邻法(FastNN)分类程序【含Matlab源码 MX_005期】
  • css卡片翻转 父元素翻转子元素不翻转效果
  • 解决文件传输难题:如何绕过Gitee的100MB上传限制
  • 零基础学Java第二十三天之网络编程Ⅱ
  • 【HarmonyOS尝鲜课】- 前言
  • phpstudy配置网站伪静态
  • 浅谈traceroute网络诊断工具
  • Java数据结构与算法(红黑树)
  • SpringBoot RPM制作
  • 专转本上岸别太老实做这三件事
  • Cisco网络工程师和网络安全视频教程(完整版)
  • 如何在一个 JavaScript 文件中引入另一个 JavaScript 文件
  • 2024最新 Jenkins + Docker实战教程(七)- Jenkins实现远程传输和自动部署
  • WWW24因果论文(1/8) | 利用强化学习(智能体)进行因果问答
  • 比较kube-proxy模式:iptables还是IPVS?
  • CSS:浮动
  • SQL 语言:嵌入式 SQL 和动态 SQL
  • Java Object类方法介绍
  • 2024 京麟ctf -MazeCodeV1
  • 计算机网络基础 - 计算机网络和因特网(1)
  • 自学动态规划——零钱兑换
  • kafka单机安装及性能测试
  • 2024.05.29学习记录
  • 6.10 Libbpf-bootstrap(一,简介)
  • 2.1.2 基于配置方式使用MyBatis
  • 使用NuScenes数据集生成ROS Bag文件:深度学习与机器人操作的桥梁
  • 氢燃料电池汽车行业发展
  • Linux服务器配置ssh证书登录
  • 端口扫描利器--nmap
  • React基础知识笔记