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

Dockerfile

作者头像
爱撒谎的男孩
发布2019-12-31 15:47:59
7720
发布2019-12-31 15:47:59
举报
文章被收录于专栏:码猿技术专栏码猿技术专栏

文章目录

1. DockerFile

1.1. 常用命令

1.2. 配置镜像加速

1.3. 构建简单的JDK镜像

1.4. 参考文章

DockerFile

  • 镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
  • Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

常用命令

命令

作用

FROM image:tag

指定基础镜像,有点继承的意思

MAINTAINER user_name

声明镜像的创建者

ENV key value

设置环境变量,可以设置多条,比如 ENV VERSION=1.0

RUN command

核心命令,多个命令用&&连接即可

ADD source_dir/file dest_dir/file

将宿主机的文件负复制到容器内,如果是一个压缩文件,将会自动解压缩

COPY source_dir/file dest_dir/file

和ADD命令类似,但是不能自动解压缩

WORKDIR path_dir

指定当前的工作目录,由于分层的概念,每一个命令的工作目录都不同,因此需要使用该命令显示指定工作目录

CMD args

在构建容器的时候使用,会docker run 后的args覆盖

ENTRYPOINT args

和CMD相似,但是不会被docker run后的args覆盖

VOLUME

将本地文件夹挂载到容器中

配置镜像加速

  • 我们使用阿里云的镜像加速
  • vim /etc/docker/daemon.json,设置如下内容即可:
代码语言:javascript
复制
{
        "registry-mirrors":["https://rxx4pnmv.mirror.aliyuncs.com"]
}

构建简单的JDK镜像

  • 新建一个Dockerfile
代码语言:javascript
复制
# 初始镜像,默认拉去lastest的
FROM centos
# 指定镜像的构建者
MAINTAINER chenjiabing666
# 切换工作目到usr,这个是容器中的目录
WORKDIR /usr
# 新建 /usr/local/java目录
RUN mkdir /usr/local/java
# 添加本地的jdk到容器中并且解压
ADD jdk-8u172-linux-x64.tar.gz /usr/local/java/
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib;$JAVA_HOME/jre/lib
ENV PATH $PATH:$JAVA_HOME/bin
  • docker build -t jdk8 .:构建镜像
  • docker run --name jdk -di jdk8:运行镜像

参考文章

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

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

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

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

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