DockerFile

dockerfile 是用来构建docker镜像的文件!命令参数脚本!

构建步骤:

1、编写一个 dockerfile文件

2、docker build 构建成为一个镜像

3、docker run 运行镜像

4、docker push 发布镜像(DockerHub,阿里云镜像仓库)

DockerFile构建过程

基础知识

  1. 每个保留关键字(指令)都是必须是大写字母
  2. 执行从上到下顺序执行

表示注释

  1. 每一个指令都会创建提交一个i虚拟的镜像层,并提交

dockerfile 是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile 文件,这个文件十分简单

DockerFile:构建文件,定义了一切的步骤,源代码

DockerImages:通过 DockerFile 构建生成的镜像,最终发布和运行的产品,

Docker 容器:容器就是镜像运行起来提供服务的

DockerFile 的指令

以前是使用别人的,现在自己写一个镜像

FROM		#基础镜像,一切从这里开始构建
MAINTAINER	#镜像是谁写的,姓名+邮箱
RUN			# 镜像构建的时候需要运行的命令
ADD			#步骤:tomcat镜像,这个 tomcat压缩包 添加内容
WORKDIR		#镜像的工作目录 
VOLUME		#挂载的目录
EXPOSE		#指定暴露端口
CMD 		#指定这个容器启动的时候需要运行的命令	 只有最后一个会生效,可被替代
ENTRYPOINT	#指定这个容器启动的时候需要运行的命令
ONBUILD		#当构建一个被继承 DockerFile  这个时间就会被运行  ONBUILD 的指令,触发指令
COPY		#类似 ADD 将我们的文件拷贝到镜像中
ENV			#构建的时候设置环境变量

实战测试

#1. 编写 dockerfile 的文件
[root@vdevops dockerfile]# vim mydockerfile
[root@vdevops dockerfile]# cat mydockerfile 
FROM centos

MAINTAINER sssy 213131@qq.com

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80
 
CMD echo $MYPATH
CMD echo "------end-----"
CMD /bin/bash

#2、 通过文件构建镜像
[root@vdevops dockerfile]# docker build -f mydockerfile -t mycentos:0.1 .

Successfully built 7a601c0d208e
Successfully tagged mycentos:0.1

#3、测试运行

对比:

dockerfile怎么配置才能生成log文件_tomcat


增加之后的镜像

dockerfile怎么配置才能生成log文件_apache_02


可以列出变更的历史

dockerfile怎么配置才能生成log文件_docker_03

ENTRYPOINT 和 ONBUILD 区别

CMD 		#指定这个容器启动的时候需要运行的命令	 只有最后一个会生效,可被替代
ENTRYPOINT	#指定这个容器启动的时候需要运行的命令

测试cmd

# 编写 dockerfile 文件
[root@vdevops dockerfile]# vim dockerfile-cmd-test
FROM centos
CMD ["is","-a"]

#构建镜像
[root@vdevops dockerfile]# docker build -f dockerfile-cmd-test .

# run 运行  -a 命令生效
[root@vdevops dockerfile]# docker run 767eb92e284f

#项追加一个 命令

#cmd 的情况下  -l 替换了 CMD ["is","-a"] -l 不是命令 所以报错

测试ENTRYPOINT 我们追加的命令 是直接拼接在ENTRYPOINT 命令后面

实战: Tomcat 镜像

1、准备镜像文件 tomcat 压缩包 jdk的压缩包

2、编写dockerfile文件

FROM centos
MAINTAINER SYYY

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u311-linux-x64.tar.gz /usr/lcoal/
ADD apache-tomcat-9.0.56.tar.gz /usr/lcoal/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_311

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.56
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.56
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin


EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.56/startup.sh && tail -F /url/local/apache-tomcat-9.0.56/bin/logs/catalina.out

3、构建镜像

# docker build -t diytomcat .

4、启动镜像

5、访问测试

6、发布项目

发布自己的镜像

1、地址

2、确定账户密码

3、在我们服务器上提交自己的镜像

4、登录之后就可以提交了, docker push