对于docker的详细介绍这里不做赘述,本文主要是利用docker搭建可移植的javaweb镜像(解决不同环境带来的安装以及不一致问题)并上传至阿里云仓库(方便云部署)。
部署javaweb环境
本文主要利用Dockfile部署。环境包括jdk+tomcat,前提先安装后docker环境
- 新建文件夹(存放Dockfile,以及其他相关文件)
mkdir javaweb
- 编写Dockfile文件
vi Dockerfile
下面是文件内容
#基于ubuntu
FROM ubuntu
#刷新包缓存 并且 安装wget工具
RUN apt-get update && apt-get install -y wget
#安装vim
RUN apt-get install -y vim
#安装git
RUN apt-get -y install git
#设置工作目录
WORKDIR /home
#安装 tomcat8
RUN wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz
RUN tar -zxvf apache-tomcat-8.5.50.tar.gz
#配置tomcat的环境变量
ENV CATALINA_HOME /home/apache-tomcat-8.5.50
EXPOSE 8080
# 安装jdk1.8 从本地拷贝过去 因为网络原因利用wget下载jdk有问题
RUN mkdir jdk
# add是把自己目录下的文件copy过去,不包括自己,/home/jdk地址没有会自动创建
ADD jdk1.8.0_161 /home/jdk
# 配置环境变量
# set jdk
ENV JAVA_HOME /home/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
# 把我本地的hodor.war拷贝过去,这里改成自己的war包就好啦
ADD hodor.war /home/apache-tomcat-8.5.50/webapps
#设置tomcat 自启动
ENTRYPOINT ["/home/apache-tomcat-8.5.50/bin/catalina.sh","run"]
网络问题需要自己提前下载好jdk,然后将Dockerfile中的hodor.war替换成自己的war包,但war包得存放在上面创建的文件夹中。
3. 下载好jdk后,放入上述创建的文件夹,并解压文件
链接: https://pan.baidu.com/s/1yn37oiBfBvgjaeISvCn0dw 提取码: r5mb 复制这段内容后打开百度网盘手机App,操作更方便哦
4. 将war包放入上述创建的文件夹
5. 执行build
// hodor/javaweb(镜像名称,可自取) v1(版本号)
docker build -t hodor/javaweb:v1 .
- build成功之后,即创建好了镜像
// 查看镜像 其中就有的镜像hodor/javaweb
docker images
- 利用镜像创建容器并运行
// -p端口映射 -d后台运行 --name容器名称
docker run -d -p 8080:8080 --name javaweb hodor/javaweb:v1 /root/run.sh
// 也可以利用-v 把本机的war包传到容器并启动 -v source:target source路径要写全,target需要.war结尾
// docker run -p 8080:8080 -v /Users/mac/docker/javaweb/hodor.war:/home/apache-tomcat-8.5.50/webapps/hodor.war hodor/java_web:v7
- 然后再浏览器输入地址即可
上传到阿里云
- 首先得有自己的阿里云账户 https://cr.console.aliyun.com/
- 创建镜像仓库,代码源就选本地就好了
- 创建完之后点击自己创建的仓库名称,将会看到操作指南
- 后面根据指南操作就好了,就可以把自己javaweb项目的镜像上传到阿里云了,上传之后如下图所示