Dockerfile最重要的常用命令
命令
|
作用
|
FROM image_name:tag
|
定义了使用哪个基础镜像启动构建流程
|
MAINTAINER user_name
|
声明镜像的创建者
|
ENV key value
|
设置环境变量 (可以写多条)
|
RUN command
|
是Dockerfile的核心部分(可以写多条)
|
ADD source_dir/file dest_dir/file
|
将宿主机的文件复制到容器内,如果是一个压缩文件,
将会在复制后自动解压
|
COPY source_dir/file dest_dir/file
|
和ADD相似,但是如果有压缩文件并不能解压
|
WORKDIR path_dir
|
设置工作目录
|
EXPOSE port1 prot2
|
用来指定端口,使容器内的应用可以通过端口和外界交
互
|
CMD argument
|
在构建容器时使用,会被docker run 后的argument覆
盖
|
ENTRYPOINT argument
|
和CMD相似,但是并不会被docker run指定的参数覆盖
|
VOLUME
|
将本地文件夹或者其他容器的文件挂载到容器中
|
|
.演示使用脚本创建JDK8镜像
首先要去Oracle官方网站上下载一个用在linux上的jdk8,比如说:
然后开始创建镜像的操作
第一步:创建目录
mkdir –p /usr/local/dockerjdk8 放在哪,起什么名字无所谓,您自己记住就行
第二步:将下载下来的jdk8上传到linux服务其中
第三步:编写DockerFile脚本文件
vi Dockerfile

#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk‐8u171‐linux‐x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH
$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
|

执行命令构建镜像
docker build -t=’jdk1.8’ .
注意:
在此空格 + . 千万不能省略 代表在当前目录下寻找
-t =’’ 里面的东西可以瞎写,就是制作好镜像后的镜像镜像名称

查看镜像是否建成
docker images

创建容器
docker run -di --name=jdk1.8 jdk1.8/bin/bash

到这儿,自己做的镜像完美实现,主要难点要点在于编写dockerfile脚本,我在这卡住了好长时间!