新建一个springboot项目
新建一个spring boot项目,打包使用war包。部署到外部tomcat。写一个controller
@RestController
public class TestController {
@GetMapping("/{name}")
public String get1(@PathVariable("name")String name) {
return "你好:"+name;
}
}
不是重点不多说了。打成war包。wm.war。
安装虚拟机。
虚拟机使用VMware,centos7。这里安装步骤不多赘述了,下载之后一路默认。
虚拟机上安装docker
docker使用
首先,测试一下是否安装成功
docker仓库给我们提供了一个hello-world镜像,为了测试我们是否安装成功。
现在我们拉取hello-world镜像
docker pull hello-world
然后看到下面这段内容
我们使用docker images 查看我们docker中的所有镜像
docker images
这是我的docker中的所有镜像。我们看到hello-world已经存在了。
然后我们使用指令跑一下这个镜像
docker run hello-world
看到这些内容,证明我们docker安装成功了。可以运行镜像了。
开始安装tomcat
我们的目的是让我们的spring boot项目运行在docker的tomcat中。所以我们先再拉去一个tomcat镜像。
具体的镜像名称 我们可以从docker的网站上docker镜像仓库中查找。
比如tomcat
我们使用红框内的指令拉取镜像。拉取后我们再images一下看看是否存在。
我们看到这时候docker中已经存在了tomcat这个镜像了。
写我们自己的镜像
我们新建Dockerfile文件
vi Dockerfile
写入如下内容:
from tomcat
MAINTAINER wangmeng [email protected]
COPY wm.war /usr/local/tomcat/webapps
保存,退出。将他和我们要运行的war包放入一个目录中。
然后运行指令建立我们自己的镜像。
docker build -t wm:latest .
等待完成。我们可以images一下
如上图一样可以看到我们自己的镜像了。
然后我们 运行一下这个镜像
docker run -d -p 8889:8080 wm
然后我们就可以访问我们的应用程序了
先看一下IP
ifconfig
然后访问tomcat
http://192.168.147.128:8888/
在尝试访问我们的应用程序
我们的应用已经部署在docker的tomcat中了。
尾巴
还有太多坑了。
虚拟机安装时的网络选择的NAT模式。
然后并不通网络,去百度了配置的网络
https://jingyan.baidu.com/article/9113f81b7cfbd22b3214c790.html
然后期间出现各种指令不能使用。
又去更新了指令。
尤其是当我们的docker安装好了镜像,比如上面的nginx后
我们使用docker exec 进入容器内部。
连ps -ef指令都没有。
这时候我百度说是因为使用了latest版本,这个版本的linux只有基本的功能。
所以,我们还需要自己安装,先更新,再安装。总之很多坑。
然后我们使用的网络方式不通,IP也不同,我使用的事NAT所以虚拟机有自己的IP,好像桥接就是共享IP?这个还得研究一下。
安装好了虚拟机以后一定要先ping一下baidu,先把网络配通了。不然会很难受。
然后命令行我们安装好虚拟机后,不要使用ctrl+alt +f2进入。这里进入的无法复制粘贴文字。
很难受。
从这里进入,就可以复制粘贴了。
还有VM要安装vmware tools 。才可以从windows复制war包到虚拟机中。
还有一个maven打包时,再eclipse中要使用clean compile package这个。不然会build不成功。。之前一直没注意过。
还有再pom中最好制定一下打成war包的名字,测试的时候,如果打成其他的工具包可以带着版本号。不太方便。
docker一些指令
要查看运行的镜像时使用docker ps
然后找到要停止的使用 docker stop
删除拉去的镜像使用 docker rmi
删除运行的容器使用docker rm
要删除镜像必须先删除运行的容器。