Dockerfile相关

Dockerfile相关

谁什么

概念

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本

步骤

编写Dockerfile文件 ----> docker build命令构建镜像 ----> docker run 运行新镜像构建容器实例

Dockerfile内容的基础知识或约定

1.每条保留字指令都是大写字母并且后面要跟随至少一个参数

2.指令按照从上到下,顺序执行

3.#表示注释

4.每条指令都会创建一个新的镜像层并对镜像进行提交

常用保留字指令

FROM 指定基础镜像,就是说你要构建的镜像要以哪个镜像为基础

MAINTAINER 镜像维护者的姓名和邮箱

RUN docker build 时执行的命令

EXPOSE 当前容器对外暴露的端口

WORKDIR 指定在创建容器后,终端默认登录进去的一个工作目录,一个落脚点

USER 指定镜像以哪个用户执行,默认root

ENV 设置环境变量

ADD 将宿主机的文件添加到镜像中,要求要添加的文件在宿主机的目录要跟Dockerfile是一个目录

COPY 类似ADD

VOLUME 指定容器数据卷

CMD 执行命令,在docker run 时执行,只有最后一个CMD命令生效

ENTRYPOINT 类似CMD

案例

比如要使用Dockerfile构建一个具备vim+ifconfig+jdk8的CentOS7镜像

1.将jdk-8u171-linux-x64.tar.gz放在宿主机的 /home/mytest

2.将Dockerfile文件放到宿主机的 /home/mytest (哪个目录都行,只要保证和jdk-8u171-linux-x64.tar.gz同目录)

3.编写Dockerfile内容

FROM centos
MAINTAINER zzyy<zzyybs@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-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
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
 
EXPOSE 80
 
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash

4.在宿主机的 /home/mytest (哪个目录都行,只要是Dockerfile文件同级就行)执行以下命令

#     centosjava8是自己起的新镜像名字,1.5是自己定的版本号TAG, 后面那个点.必须有
docker build -t centosjava8:1.5 .

5.运行

#docker run -it 新镜像名:TAG
docker run -it centosjava8:1.5
posted @ 2024-03-10 15:59  木糖醇困了  阅读(14)  评论(0)    收藏  举报