1、准备工作
首先需要在阿里云上租一个ECS服务器,然后要有一个自己的应用,我这里是Java的springboot应用。选购服务器时操作系统选用Linux 系统,这里选用的是Centos 7.4.
2、docker容器化部署Java应用
拿到阿里云的服务器之后,可以使用xshell等连接工具,使用服务器设置的用户名和密码登录进去,或者直接在aliyun控制台上登录进去。为了方便我们后期中间件以及服务的运行,首先安装docker引擎,后续可使用docker快速部署应用,同时也可使服务做到容器化方便管理。docker 引擎的安装非常简单,直接使用下面的yum命令进行安装:
yum -y install docker;
当docker –version 出现下面的版本号信息时,则证明你的docker引擎安装成功!
[root@izbp19p6vshix6mvt16vonz ~]# docker --version Docker version 1.13.1, build 0be3e21/1.13.1
如何使用docker部署你的第一个Java应用,也可以参考之前写的一篇文章:如何使用docker运行你的第一个Java容器。这里以我部署的一个服务为例:首先下载jdk8 的基础镜像:
docker pull docker.io/adoptopenjdk/openjdk8
我这里是springboot项目所以构建出来就是一个jar包,借助Maven工具将项目打成jar包之后,用ftp工具把包上传到服务器,然后在该文件夹创建Dockerfile,用于构建镜像:Dockerfile内容如下:
FROM docker.io/adoptopenjdk/openjdk8:latest # jar包名字需要更改为自己jar包名称项目名字-版本号,后面app.jar 不变 ADD test-1.0.jar app.jar EXPOSE 8080 ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar app.jar
使用docker build 构建镜像:
docker build -t test/test-java:1.0 .
最后使用docker run 运行Java容器:
docker run -d -p 8080:8080 --name=test--restart=always test/test-java:1.0
注: 几个常用的操作docker容器的命令如下:
1、删除旧服务容器 docker stop test; docker rm test; 2、 查看服务运行日志 docker logs -f test
3、nginx反向代理服务器的安装与配置
部署Java应用之后最好再部署一个反向代理服务器nginx,可以保护我们的web容器,也便于后续扩展等。这里同样直接使用docker 容器进行部署。使用docker pull 拉取nginx镜像,也可以直接部署,如果检测到本机没有对应镜像,则会直接从官方拉取。
docker pull docker.io/nginx:1.10.2
docker 命令部署nginx服务:
docker run -d \ -p 80:80 \ -p 443:443 \ -v /home/admin/midware/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/admin/midware/nginx/conf.d:/etc/nginx/conf.d \ --name nginx \ --net host \ --restart always \ docker.io/nginx:1.10.2
nginx.conf 是nginx的主配置文件负责nginx的全局配置,它会加载conf.d/文件夹下面的配置文件,该文件夹下面有个default.conf 可以自定义路由转发规则等等。比如我们如果不加端口请求进来的就是默认80端口(HTTP),或者443端口(HTTPS),而我们的Java服务一般用Tomcat作为web容器,默认端口是8080,那么我们就希望通过nginx 80 端口请求转发进来之后再代理到我们的Java Tomcat服务上,从而访问正常的Java业务。conf.d 文件夹下的 default.conf 的配置如下:
server { listen 80; server_name **.**.**.182; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
注意: 上面打**的地方替换成自己的阿里云服务器外网地址,这样通过监听80端口,就可以反向代理到自己的Tomcat服务上了。如果访问失败,可能是服务器的安全组策略没有打开或配置,打开aliyun服务器的【安全组】那一项,一般配置系统默认的普通安全组开放的端口就够用了,有80/443/22等普遍使用的端口。
4、大功告成
这里访问一下微风部署的一个搜券神器 内部优惠 如果返回下面的内容,就大功告成了。(当然,你的服务器返回的应当是你自定义的内容)
顺便说一下,这个链接可以搜索某宝内部优惠券,有兴趣的可以看一看哦!
想要了解更多关于docker以及k8s等云原生内容,请关注下方博主公众号:
原文链接:https://blog.csdn.net/u012809308/article/details/113438850