概要:通过Dockerfile构建一个centos+tomcat的docker镜像,在服务器上启动并且访问。
1 Docker
Docker是一个集开发、打包、运行应用于一体的开放式平台,可用于快速交付应用。通过服务Docker容器化,可将应用程序从基础设施中分离出来,并将基础设施当做一个管理平台。Docker可以加快打包时间,加快测试,加快发布,缩短开发及运行代码之间的周期,并且可以通过结合内核容器化特点和工作流,使之工具化来实现这一切,帮助管理和发布应用。
Docker中有三个重要概念:
1.1 镜像(Images)
Docker镜像是一个只读的模板。包含了容器运行时所需要的文件系统和一些参数。镜像是无状态的,也不会改变。镜像是用来创建容器的。可以从镜像仓库中获取一个创建好的镜像,也可以自己手动构建一个镜像。
1.2 容器(Containers)
Docker容器就像是一个文件夹,容器中包含了应用运行所需的一切。每个容器都是一个隔离的和安全的应用平台。容器是镜像的一个实例,它是有状态的,而且随时会改变。
1.3 仓库(Repository)
仓库用于存放Docker镜像,通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过<仓库名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。
2 通过Dockerfile构建docker镜像
2.1 首先查看服务器内核版本并升级依赖版本
uname -a
yum update
2.2 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
2.3 查看所有docker版本
yum list docker-ce --showduplicates | sort -r
2.4 安装docker
yum install -y docker
2.5 查看docker是否安装成功--查看docker版本
docker version
2.6 启动docker服务
systemctl start docker.service
2.7 查看服务是否启动成功
systemctl status docker
2.8 创建Dockerfile文件
FROM centos
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u144-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.52.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_144
ENV CLASSPATH $JAVA_HOME/lib/de.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.52
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.52
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/lib
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.52/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.52/bin/logs/catalina.out
2.9 通过Dockerfile生成镜像
docker build -t mytomacat .
2.10 查看镜像
docker images
2.11 生成容器
docker run -d -p 9090:8080 --name feitomcat -v /home/ff/build/tomcat/test:/usr/local/apache-tomcat-9.0.52/webapps/test -v /home/ff/build/tomcat/tomcatlogs:/usr/local/apache-tomcat-9.0.52/logs mytomcat
2.12 查看容器
docker ps
2.13 进入容器
docker exec -it fadda1f7b4dc /bin/bash
2.14 退出容器
exit
2.15 在服务器(容器外)/home/ff/build/tomcat/test目录下新建index.jsp,目录为生成容器时的挂载目录
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head> <title>一个JSP程序示例</title> </head>
<body>
<p>你好</p>
</body>
</html>
访问ip:9090/test/ ,看到页面正常显示,即部署成功。