【个人网站】docker中部署springboot项目(多个)

一、docker的安装

docker是近年比较火的一个开源的应用容器引擎,咱看半天也没太清楚到底有啥用,反正就是感觉像是一个linux的微缩版,这里暂不讨论,有些东西用着用着就知道他的好处及用途了,只是看的话很难真正理解。

PS补充:经过使用后,我目前是这样理解的:docker就是一个虚拟机,其中有三个概念:仓库,镜像,容器。仓库就类似于你ide的工作空间,镜像就相当于工作空间中未启动的项目,而容器则是项目启动的一个实例。镜像一启动,就会创建一个容器,启动几次就会创建几个容器。

我的服务器购买时选择的操作系统是CentOS,所以这里的安装环境也是CentOS

docker安装的话有两种方式,这里我们使用比较方便的yum安装

安装一些必要的系统工具:PS:sudo表示以管理员权限执行,如是root用户(最高权限)可不输入

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

$ sudo yum makecache fast

安装 Docker-ce:

$ sudo yum -y install docker-ce

启动 Docker 后台服务

$ sudo systemctl start docker

测试运行 hello-world

$ docker run hello-world

出现下面界面代表docker安装成功了!

 

二、部署Springboot项目

我这里是新建了一个最简单的springboot项目

1.我们使用idea的maven插件将项目打包,也可以用其他方式打包,在此不赘述。

2.打包后编写Dockerfile文件,创建文件名为Dockerfile的文本文件,内容如下:

FROM java:8

VOLUME /ROOT

ADD demo-0.0.1-SNAPSHOT.jar demo.jar

RUN bash -c 'touch /demo.jar'

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "demo.jar"]

java:8是指Docker Hub上官方提供的java镜像,版本号是8也就是jdk1.8,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用:

VOLUME指向了一个/root的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/root。

ADD将项目的jar文件作为app.jar添加到容器

RUN表示在新创建的镜像中执行一些命令,然后把执行的结果提交到当前镜像。这里使用touch命令来改变文件的修改时间,Docker创建的所有容器文件默认状态都是“未修改”。这对于简单应用来说不需要,不过对于一些静态内容(比如:index.html)的文件就需要一个“修改时间”。

EXPOSE 容器暴露端口

ENTRYPOINT 应用启动命令 参数设定

3.将此Dockerfile文件与项目jar包使用Xftp软件上传到服务器上

4.执行docker build命令,docker就会根据Dockerfile里你定义好的命令进行构建新的镜像。

执行docker images,可以看到新建的镜像

5.使用 指令:docker run -d -p 8080:8080 boot-docker运行该springBoot项目

最后测试一下:可以访问了哦

部署多个项目

docker ps可以查看当前创建的容器:

 docker rm -f 容器id 可以删除容器

我们按照上述步骤再建立一个名为nginx-docker的镜像(取名为nginx-docker只是后期想接触nginx,这里没有任何关系) 

现在有这两个准备部署的项目镜像了

我们分别向1001和1002为这两个镜像创建容器(选择1001和1002是为了大家可以访问进行测试,这两个端口我不会用):

其中-d代表后台运行,也可以换为-it,可以看到项目运行日志

现在访问看看

是没有问题的,大家也可以访问一下:http://106.53.90.29:1002/hello

发布了74 篇原创文章 · 获赞 975 · 访问量 74万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览