前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dockerfile构建镜像及相关命令

Dockerfile构建镜像及相关命令

作者头像
斯武丶风晴
发布2020-04-30 17:10:18
9670
发布2020-04-30 17:10:18
举报
文章被收录于专栏:龙首琴剑庐龙首琴剑庐

Dockerfile 镜像描述文件

Dockerfile是一个包含用于组合镜像的命令的文本文档 Docker通过读取Dockerfile中的指令按步自动生成镜像

代码语言:javascript
复制
docker build -t 机构/镜像名<:tags> Dockerfile目录 

Dockerfile 基础命令

  • FROM - 基于基准镜像
代码语言:javascript
复制
#制作基准镜像(基于centos:lastest)
FROM centos 
#不依赖任何基准镜像base image
FROM scratch 
# 基于 采用openjdk8 + tomcat 9.0.22 的镜像
FROM tomcat: 9.0.22-jdk8-openjdk

尽量使用官方提供的Base Image

  • LABEL & MAINTAINER - 说明信息
代码语言:javascript
复制
MAINTAINER SvenAugustus
LABEL version = "1.0"
LABEL description = "XXX"
  • WORKDIR - 设置工作目录
代码语言:javascript
复制
WORKDIR /usr/local
#自动创建
WORKDIR /usr/local/newdir 

尽量使用绝对路径

  • ADD & COPY - 复制文件
代码语言:javascript
复制
#复制到/root
ADD hello /root
#添加根目录并解压
ADD test.tar.gz / 

ADD 除了复制,还具备添加远程文件功能

  • ENV- 设置环境常量
代码语言:javascript
复制
ENV JAVA_HOME /usr/local/openjdk8
RUN ${JAVA_HOME}/bin/java -jar test.jar

尽量使用环境常量,可提高程序维护性

  • EXPOSE - 暴露容器端口
代码语言:javascript
复制
# 将容器内部端口暴露给物理机
EXPOSE 8080
代码语言:javascript
复制
docker run -p 8000:8080 tomcat

Dockerfile 执行指令

  • RUN & CMD & ENTRYPOINT
    • RUN : 在Build构建时执行命令
    • ENTRYPOINT : 容器启动时执行的命令
    • CMD : 容器启动后执行默认的命令或参数
  • RUN-构建时运行 RUN yum install -y vim #Shell 命令格式
代码语言:javascript
复制
# 示例:
RUN ["yum","install","-y","vim"] #Exec命令格式
  • ENTRYPOINT启动命令

ENTRYPOINT(入口点)用于在容器启动时执行命令

Dockerfile中只有最后一个ENTRYPOINT会被执行

代码语言:javascript
复制
# 示例:
ENTRYPOINT ["ps"] #推荐使用Exec格式
  • CMD默认命令

CMD用于设置默认执行的命令,如果docker run 携带了参数,那么 CMD 设置的参数命令就会被忽略

Dockerfile中出现多个CMD,则只有最后一个被执行

如容器启动时附加指令,则CMD被忽略

代码语言:javascript
复制
# 示例:
CMD ["ps" , "-ef"] #推荐使用Exec格式

by Sven Augustus https://my.oschina.net/langxSpirit

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Dockerfile 镜像描述文件
  • Dockerfile 基础命令
  • Dockerfile 执行指令
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档