spring boot 部署到docker容器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34083066/article/details/87272345

新建一个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

参见博客:Linux 下的 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

要删除镜像必须先删除运行的容器。

猜你喜欢

转载自blog.csdn.net/qq_34083066/article/details/87272345