一、Dockerfile 基础知识
FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #添加内容,步骤,tomcat镜像,这个tomcat的压缩包!
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOSE #暴露端口配置
CMD #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD #当构建一个被继承 Dockerfile 这个时候就会运行ONBUILD 的指令
COPY #类似ADD,将我们文件拷贝到镜像中
ENV #构建的时候设置环境变量
二、实战测试,以tomcat为例
Docker Hub 中 99% 镜像都是从这个基础镜像过来的 FROM scratch,然后配置需要的软件和配置来进行构建的先准备好需要的两个软件包,创建好文件夹,所有文件都放在一个文件夹下面
apache-tomcat-9.0.83.tar.gz
jdk-8u361-linux-x64.tar.gz
创建Dockerfile文件
vim Dockerfile
编写Dockerfile文件
FROM centos
#apache-tomcat-9.0.83.tar.gz
#jdk-8u361-linux-x64.tar.gz
MAINTAINER orange<2250174982@qq.com>
ADD jdk-8u361-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.83.tar.gz /usr/local/
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_361
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.83
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.83
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.83/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.83/bin/logs/catalina.out
将安装包和Dockerfile文件放到同一目录下
注意:如果权限不足记得开权限
chmod 777 /usr/local/
执行Docker命令创建镜像
docker build -t mytomcat .
命令介绍:
docker:docker命令。
build:编译。
-t:镜像的名字及tag,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个tag,参考docker build命令详解。
mytomcat:生成镜像的名称。
v1:生成镜像的版本号。
.:点符号“.”表示的意思是,指定镜像构建过程中的上下文环境的目录,可以参考docker build命令
查看镜像是否构建成功
docker images
启动容器
docker run -d -p 9100:8080 --name tomcat111 -v /home/tomcat/test:/usr/local/apache-tomcat-9.0.83/webapps/test -v /home/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.83/logs mytomcat
查看正在运行的容器
docker ps
记得开放9100端口
firewall-cmd --add-port=9100/tcp --permanent
访问tomcat:ip:9100