实战来自于艾编程飞天二期班
什么是dockerfile
docker是从来生成docker镜像的一些类指令集。
执行dockerFile的时候回一行一行的执行,这也就是以后镜像的分层的来源。
dockerfile的基本指令
dockerFile的基本指令有:
dockerfile的实战1
例子来在于艾编程飞天二期coding老师
我们先写一个小的centos的实例。要求这个centos安装vim和network的东西。
分析:
建立可以通过centos 开始,
加入vim和network的东西,包装生成镜像。
# 通过centos进行镜像构件
FROM centos
# 挂载卷
VOLUME ["dockerdata1","dockerdata2"]
# 镜像的作者
MAINTAINER ubw
# 设置环境变量 并将进入的位置设置为home目录下
ENV MYPATH /home
WORKDIR $MYPATH
# 安装一些插件
RUN yum -y install vim
RUN yum -y install net-tools
# 暴露 80端口
EXPOSE 80
CMD /bin/bash
执行镜像看我们的添加的功能是否能用。
cmd与entrypoint
一句话:
cmd后面追加语句会被覆盖
entrypoint后面加语句,会被追加
FROM centos
MAINTAINER ubw
EXPOSE 80
# 多个参数用写成list形式 用,合开
CMD ["ls","-a"]
我们加参数失败了
为了拼接参数我们用entrypoint
FROM centos
MAINTAINER ubw
EXPOSE 80
ENTRYPOINT ["ls","-a"]
docker实战2
例子来在于艾编程飞天二期coding老师
前提,要准备Tomcat压缩包和jdk的压缩包
# 基于centos
FROM centos
MAINTAINER ubw
# 将文件目录下的readme放到镜像里
COPY readme.md /usr/local/readme.md
# 将准备好的压缩版放入 add可以自动解压
ADD jdk-8u251-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.35.tar.gz /usr/local/
# 安装vim
RUN yum -y install vim
# 配置进入后的工作目录
ENV MYPATH /usr/local
WORKDIR $MYPATH
# 配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_251
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.35
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/lib
#暴露端口
EXPOSE 8080
# docker run以后执行的语句
CMD /usr/local/apache-tomcat-9.0.35/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.35/bin/logs/catalina.out