在linux系统上用docker部署JavaWeb项目


1.安装docker环境
也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

2.可使用以下命令,查看 Docker 是否安装成功:

docker version

运行第一个hello-world镜像程序

sudo docker run hello-world

3.启动docker

service docker start

重启:

service docker restart  

关闭docker服务:

service docker stop

查看docker是否启动:

systemctl status docker 

4.安装tomcat镜像

#搜索tomcat镜像
docker search tomcat 
#安装tomcat镜像
docker pull tomcat 
#查看已安装的tomcat镜像
docker images 

5.通过下载tomcat镜像启动一个tomcat容器

-d表示后台运行,-p端口映射,前面的8088是外围访问端口(也就是本机ip对外开放的端口),后面8080是docker容器内部的端口

tomcat:last last是指定的tomcat的标签,相同的镜像可以指定不同的标签以做区分。

docker run -d -p 8080:8080 tomcat:latest

6.查看运行的docker容器

docker ps

进入docker里面的tomcat容器,需要容器ID,所以上面要查看正在运行的容器tomcat

docker exec -it 9fccf0236619 /bin/bash
#查看tomcat镜像内部文件,并进入webapps文件夹
ls
cd webapps

退出容器:

exit

启动容器:

docker start containerID

停止容器:

docker stop containerID

 

7.验证tomcat容器

通过在浏览器中访问tomcat来查看启动的tomcat镜像是否可以正常运行,访问方式同一般机器下部署tomcat,即:http://ip:8080,根据自己ip地址情况。如我的测试地址是:http://192.168.93.128:8080

8.将war包放入到docker下的tomcat中

将war包通过Ftp放入linux系统中的usr目录下,并将war包拷贝到docker中,containerID 是你所启动tomcat镜像的容器ID或者容器名称也可以,用docker ps命令查看。 这是将test.war放到tomcat的webapps下

docker cp /usr/test.war containerID:/usr/local/tomcat/webapps/

9.由于war包在tomcat下是自动解压的,所以我们稍等项目完全成功启动,我们就可以直接访问项目了。

 本地打开浏览器直接访问,不成功就等项目成功启动后,或者多试几次就ok。

10.使用linux目录长期与docker容器目录挂载

#(什么是宿主机:自己当前的服务器centOS7称之为宿主机,宿主机上的docker可看作一个容器,也就是docker所在的服务器称为宿主机)

 为挂载目录之前做准备:

      在usr/local/目录下创建一个dev目录,dev目录用来专门存放开发包什么的,dev目录下再创建一个docker-tomcat目录,行了,就用docker-tomcat进行映射到docker中的tomcat容器里的webapps目录,创建目录如下图:

 

 目录创建好了,下面进行挂载目录,运行tomcat容器

#挂载usr/local/dev/docker-tomcat目录,并运行容器命令如下

docker run -d -p 8088:8080 --name tomcat -v /usr/local/dev/docker-tomcat:/usr/local/tomcat/webapps --restart=always tomcat

此错表示已经有一个tomcat别名的容器了,所以我们要使用命令查看一下所有容器

#docker查看所有容器
docker ps -a

 

#删除容器
docker rm 5137519634f0

 

 

 

 删除之后,再运行命令:

docker run -d -p 8088:8080 --name tomcat -v /usr/local/dev/docker-tomcat:/usr/local/tomcat/webapps --restart=always tomcat

我已经在docker-tomcat目录下放了一个test01.war包和一个01.txt文件,所以当我执行挂载启动的时候,进入tomcat容器下的webapps目录,里面已经把docker-tomcat目录下的内容挂载过来了,tomcat并自动把test01.war解压了。如下图:以后只管增删宿主机上docker-tomcat目录下的内容就行啦。

 

11.现在项目都是前后端分离,后端基本使用springboot项目打成jar包,所以tomcat已经不方便了,docker使用tomcat还要挂载webapps目录。其实不管是jar包还是war包,可以使用docker的Dockerfile,自定义镜像的形式来启动项目。

 

posted @ 2021-05-18 10:22  万里哥  阅读(1083)  评论(0编辑  收藏  举报