docker(五) docker实战—使用dockerfile部署web项目
1:进入linux-centos 在/home 目录中创建dockerfile目录
创建目录命令:mkdir -p dockerfile 通过 ls 命令查看 结果如下图
2:上传 tomcat,jdk linux的压缩包 如下图所示 tomcat 和jdk版本根据自己实际情况来
3:进入到dockefile文件夹目录中 解压tomcat,jdk
解压命令jdk:tar -zxvf jdk-8u161-linux-x64.tar.gz
解压tomcat:tar -zxvf apache-tomcat-9.0.54.tar.gz
解压完毕如下图所示:
注意:有些文章中没有在此处解压目的是留在dockerfile文件中进行解压 在官方的 Dockerfile文件中推荐使用COPY,即个人认为在没有进行远程下载.tar.gz包
时直接在需要操作之前解压完毕,直接使用,以便减少生成镜像的层数
4:在dockerfile 目录下创建 Dockerfile 文件来编写dockerfile镜像文件
创建Dockerfile 镜像的命令:vi Dockerfile
Dockerfile 内容如下:
-----------------------------------start-------------------------------
# FROM 关键字 基于镜像 FROM centos:7 # 说明镜像的信息 LABEL author="xiaoqiang65.com" desc="基于centos 的jdk,tomcat7 的部署web" # 创建镜像的工作目录 WORKDIR /usr/local # 创建镜像jdk tomcat存放路径 RUN mkdir -p /usr/local/java && mkdir /usr/local/tomcat # 从宿主机中复制jdk,tomcat到镜像中 # 解释为啥此处不用ADD 该命令一般用于远程下拉。tar.gz包时用 COPY jdk1.8.0_161 /usr/local/java COPY apache-tomcat-9.0.54 /usr/local/tomcat # 配置jdk环境变量 ENV JAVA_HOME /usr/local/java ENV PATH $PATH:$JAVA_HOME/bin # 暴露镜像对外访问的端口 EXPOSE 8080 # 配置启动容器时启动tomcat CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
-----------------------------------end-------------------------------
最后Dockerfile 镜像文件如图所示
5:构建镜像
当前目录下构建:
docker build -f Dockerfile -t webproject:v1 .
构建成功之后如图所示:
使用docker images 命令去查看是否生成镜像 如下图所示
6:使用挂载的方式进行
在dockerfile 目录中 创建web项目挂载目录:
命令:mkdir -p web
将项目war包 上传到web目录中 并且修改war包的名字为ROOT.war 如图所示
7:使用挂载的方式进行命令:
docker run -di -p 8080:8080 --name myproject -v /home/dockerfile/web:/usr/local/tomcat/webapps --restart=always webproject:v1
使用上述命令执行成功如图所示:
访问 显示如下图所示
最后总结:使用docker挂载的方式的最适合war包进行部署
其他方式则是直接把war包放置在tomcat镜像中 自行操作