通过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:可用