Dockerfile
Dockerfile介绍
dockerfile是用来构建docker镜像的文件!命令参数脚本!
构建步骤:
-
编写一个dockerfile文件
-
docker build 构建成为一个镜像
-
docker run 运行镜像
-
docker pull 发布镜像
很多官方镜像都是基础包,很多功能没有,我们通常自己搭建自己的镜像!
Dockerfile的构建过程
基础知识:
-
每个保留关键字(指令)都必须是大写字母
-
执行从上到下顺序执行
-
#表示注释
-
每一个指令都会创建提交一个新的镜像层并提交!
dockerfile是面向开发的,开发项目,做镜像,就需要编写dockerdile文件,十分简单!
docker镜像逐渐成为企业交付标准,必须掌握!
步骤:开发、部署、上线、运维。
Dockerfile:
构建文件,定义了一切的步骤,源代码
Dockerimages:
通过dockerfile构建生成的镜像,最终发布和运行的产品!
Docker容器:
容器就是镜像运行起来提供服务!
DockerFile的指令
-
FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像作者 姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #步骤:tomcat镜像,tomcat压缩包!添加内容
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOSE #暴露端口配置
CMD #指定这个容器启动的时候运行的命令 只有最后一个会生效
ENTRYPOINT #指定这个容器启动的时候运行的命令 可以追加命令
ONBUILD #当构建一个被继承Dockerfile 这个时候就会运行ONBUILD
COPY #类似ADD,将我们文件拷贝到镜像中
ENV #构建的时候设置环境变量!
实战测试
最基础的镜像FROM scratch
创建一个自己的centos
# 1、编写Dockerfile文件
[root@localhost dockerfile]# cat mydockerfile-centos
FROM centos
MAINTAINER dq
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、通过文件构建镜像
# 命令 docker build -f dockerfile 文件路径 -t 镜像名:版本 .
[root@localhost dockerfile]# docker build -f mydockerfile-centos -t my-centos:0.1 .
# 3、测试运行
运行镜像可以使用添加的功能例如:vim、ifconfig
CMD和ENTRYPOINT的区别
CMD #指定这个容器启动的时候运行的命令 只有最后一个会生效
ENTRYPOINT #指定这个容器启动的时候运行的命令 可以追加命令
Docker中很多命令十分相似!需要实际测试理解!
tomcat镜像制作
tomcat镜像制作
1、准备镜像文件tomcat压缩包,jdk压缩包
2、编写dockerfile文件,官方命名Dockerfile
构建就会自动寻找,不需要-f去指定路径
#编写Dockerfile文件
FROM centos:7
MAINTAINER dq<dqforgive@163.com>
ADD apache-tomcat-9.0.37.tar.gz /usr/local/
ADD jdk-8u261-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_261
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.37/
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.37/bin/catalina.sh run
3、构建镜像
[root@localhost tomcat]# docker build -t diytomcat .
4、启动镜像
[root@localhost tomcat]# docker run -d -p 8080:8080 diytomcat