1:创建Dockerfile文件,用于构建镜像
- dockerfile中的路径统一
- 这里使用的版本较低(被容器化的项目使用的比较旧),如需使用其他版本的jdk或者tomcat,找到相应的url替换对应http位置即可
- 我的项目的数据库使用的是远程数据库,所以没有在镜像中加入数据库的构建,还是直接使用的远程数据库
#使用的基础镜像
FROM centos
#不指定版本tag,则默认pull最新的
#创建者信息
MAINTAINER <liyangyang> <test@163.com>
#安装wget
RUN yum install -y wget
#安装JDK
RUN mkdir /var/tmp/jdk \
&& wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /var/tmp/jdk http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz \
&& tar -zxf /var/tmp/jdk/jdk-8u181-linux-x64.tar.gz -C /var/tmp/jdk \
&& rm -rf /var/tmp/jdk/jdk-8u111-linux-x64.tar.gz
#配置JDK环境变量
ENV JAVA_HOME /var/tmp/jdk/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin
#安装Tomcat
RUN mkdir /var/tmp/tomcat \
&& wget -P /var/tmp/tomcat http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz \
&& tar -xzf /var/tmp/tomcat/apache-tomcat-7.0.91.tar.gz -C /var/tmp/tomcat \
&& rm -rf /var/tmp/tomcat/apache-tomcat-7.0.91.tar.gz
#配置Tomcat环境变量
ENV CATALINA_HOME /var/tmp/tomcat/apache-tomcat-7.0.91
#指定容器暴露端口
EXPOSE 8080
#添加项目
ADD xcar-index-web.war /var/tmp/tomcat/apache-tomcat-7.0.91/webapps/
#创建容器时默认启动tomcat
CMD ["/var/tmp/tomcat/apache-tomcat-7.0.91/bin/catalina.sh", "run"]
2:使用Dockerfile构建镜像
- 新建一个文件夹docker\_file(最好将dockerfile放在一个新的文件夹中,具体原因请看 文首url指向的博文) 。
- 将创建的Dockerfile文件放在该文件夹中,Dockerfile的文件名最好是“Dockerfile”,这样会默认查找到该文件,不用再进行指定文件。
- 在docker\_file文件夹中放入你的web项目的war包。
- 最后该文件夹内容应该是如下图所示:
docker build -t xcardata/centos:v1.0 .
#或者后台执行:
nohup docker build -t xcardata/centos:v1.0 . > ./build.log 2>&1 &
####该命令介绍:
# docker build : 创建镜像
# -t : 设置镜像的名称和tag
# xcardata/centos:v1.0 : “/”前面的为镜像名称,后面的为镜像的tag
# . : 这是表示Dockerfile文件在当前的上下文中
####注意:
# 在下载jdk的时候速度可能特别慢。。。。。
3:使用镜像构建容器并启动
docker run -d -p 8080:8080 newxcardata/centos:v1.0
####参数介绍:
# docker run : 创建并启动一个容器
# -d : 在后台运行该容器
# -p 8080:8080 : 指定映射端口,<本机端口>:<容器端口>,将容器的8080端口映射到本机的8080端口上,这样我们直接访问本机的8080即可访问到容器的8080端口
# newxcardata/centos:v1.0 : 指定使用镜像的名称和TAG
####执行结束后会返回一个ID,便是容器的唯一ID
- 使用命令:docker ps -a
- 查找与返回一致的ID的容器,如果其状态(STATUS)为Up状态 即为启动成功!
- 如果不知道docker ps得到的结果各个字段的含义,请移步我的另一篇博客:[https://blog.csdn.net/CSDN\_\_\_LYY/article/details/83042553](https://blog.csdn.net/CSDN___LYY/article/details/83042553)
- 例如:
4:测试容器
docker logs 容器ID或者容器name
####在本机的浏览器中输入:
ip:8080/xcar-index-web
####例如:
10.52.10.227:8080/xcar-index-web
####:参数解释:
# ip为你服务器的ip地址,比如我的就是10.52.10.227
# 8080为我们服务器被容器映射的端口
# /xcar-index-web :代表我们项目名称,也就是你的war包名称