通过Dockerfile制作一个自己的Docker专属镜像文件
内容目录
如何制作一个属于自己的镜像呢?
docker安装的centos都是基础的linux,没有vim,没有ifconfig,也没有java,如果需要一个镜像,pull过来之后就带有这些功能,那么就可以自己制作一个属于自己的镜像。
如果制作属于自己的镜像,可以又两种方式,一个是在镜像容器中操作之后,通过commit提交镜像,生成新的镜像文件,另一个就是使用Dockerfile文件,通过build构建得到新的镜像文件。毫无疑问,通过commit一点都不搞基,所以需要Dockerfile文件了
一、开始前准备
首先要下载到jdk的tar包,放到一个文件夹中,因为在安装镜像安装jdk的时候会用到,然后在这个文件夹中编写Dockerfile文件
编写Dockerfile,必然需要知道语法
Dockerfile保留字命令
FROM:基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:容器构建时需要运行的命令
WORKDIR:指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
ENV:用来在构建镜像过程中设置环境变量
CMD:指定容器启动后的要干的事情
ADD:将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
二、编写Dockerfile文件构建镜像
1、编写Dockerfile文件
 #继承centos
 FROM centos:7
 MAINTAINER leon<leon@126.com> 
 
 #进入容器的落脚点
 ENV MYPATH /usr/local
 WORKDIR $MYPATH 
 
 #安装vim编辑器
 RUN yum -y install vim
 #安装ifconfig命令查看网络IP
 RUN yum -y install net-tools
 #安装java8及lib库
 RUN yum -y install glibc.i686
 RUN mkdir /usr/local/java
 #ADD 是相对路径jar,把jdk-8u212-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
 ADD jdk-8u212-linux-x64.tar.gz /usr/local/java/
 #配置java环境变量
 ENV JAVA_HOME /usr/local/java/jdk1.8.0_212
 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 
 
 EXPOSE 80 
 
 CMD echo $MYPATH
 CMD echo "success--------------ok"
 CMD /bin/bash 
2、构建镜像
docker build -t newcentos:1.0 .

3、运行
docker run -it newcentos:1.0
三、测试新镜像文件
运行容器进入之后
分别使用vim、ifconfig、java尝试一下
vim:可用
 
ifconfig:可用
 
java:可用
 










