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
{
        "registry-mirrors":["https://rxx4pnmv.mirror.aliyuncs.com"]
}

构建简单的JDK镜像

  • 新建一个 Dockerfile
# 初始镜像,默认拉去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

原文 

http://chenjiabing666.github.io/2018/12/30/Dockerfile/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Dockerfile

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址