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脚本,我在这卡住了好长时间!