前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dockerfile常用指令介绍

Dockerfile常用指令介绍

原创
作者头像
dufu
发布2024-08-14 10:24:44
750
发布2024-08-14 10:24:44
举报
文章被收录于专栏:docker

1、FROM

构建容器时使用的基础容器

如:FROM ubuntu:20.04

2、 RUN

在构建时运行一行命令

如:RUN apt-get update && apt-get install -y python3 python3-venv libpq5

因为多条RUN指令会创建多个镜像层,请尽可能把多行命令使用&连接,减少新镜像层的创建。

3、 WORKDIR

指定工作目录,即构建镜像和运行镜像过程中,运行命令所在的目录

如:WORKDIR /usr/app

4、ADD

把上下文中的文件添加到容器中,如果是zip,gz,war等压缩文件,会自动解压缩到指定目录下。

源文件必须在上下文目录中,并使用相对上下文目录到路径,不能使用绝对路径

目标文件或目录可以是容器中的绝对路径,也可以是相对工作目录到路径。

如:

ADD test.war /usr/app 会把test.war添加到/usr/app目录下,并解压缩

ADD test.war /usr/app/app.war 会把test.war添加到/usr/app目录下,改名为app.war,并解压缩

ADD test.war bin 会把test.war添加到/usr/app/bin目录下,并解压缩,如果bin目录不存在,则创建,bin是相对WORKDIR的路径

ADD test.war bin.war/ 会把test.war添加到/usr/app/bin.war目录下,并解压缩,因为bin.war/后面有个反斜杠,因此docker-engine会把它识别为目录,而不是文件

5、 COPY

把上下文中的文件添加到容器中,与ADD不同,它不会自动解压缩,其他特性同ADD

如:

COPY test.war /usr/app会把test.war拷贝到/usr/app目录下

6、 ENV

定义容器中的环境变量

如:

ENV HOME=/usr/app 定义环境变量HOME,他的值是/usr/app。

这个指令可以被运行容器时到-e参数覆盖

7、 USER

定义构建容器时使用的用户,用户必须已存在,后续所以指令,都会使用这个用户执行

如:USER simple

8、 EXPOSE

定义容器暴露的端口,注意,这个端口只是声明,并不代表容器实际使用的端口,也可以不声明。这个声明都作用是在查看容器信息时,知道这个镜像暴露的端口,方便非镜像制作者使用。

如:

EXPOSE 80

EXPOSE 80,443

9、 CMD

定义容器启动时默认使用的命令,这个命令被运行时指定的命令覆盖

如:

CMD java -jar /usr/app/test.jar

CMD ["sh", "-c", "/usr/app/bin/start.sh"]

CMD bin/start.sh

CMD sh -c bin/start.sh

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、 RUN
  • 3、 WORKDIR
  • 4、ADD
  • 5、 COPY
  • 6、 ENV
  • 7、 USER
  • 8、 EXPOSE
  • 9、 CMD
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档