前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1. 把要部署的工程打成一个jar包。(我的工程叫 gentle )

打 jar 的方法:超简单方法: Intellij Idea 把 java 工程打成可运行的 jar

2. 把 jar 包上传到 服务器确定目录下。

我是用 rz 命令直接选择 jar 上传到我存放 jar 的目录:/root/jiangyu/dockerfiles/jar

3.编写超级简单版本的 dockerfile 文件:

# jdk 是一个已有的包含 jdk 的镜像FROM jdk#  作者签名MAINTAINER JY#  简化 jar 的名字路径 (#:表示注释掉)COPY jar/gentle-1.0-SNAPSHOT.jar /app.jar#  执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)CMD java -jar /app.jar#  设置对外端口为 8089EXPOSE 8089

4. 通过 dockerfile 文件生成本工程的镜像:

# -t :给镜像取名为 gentle
docker build -t gentle . 

此行命令最后有一个点,表示使用当前上下文中的 dockerfile 文件 。

docker images 查看原有镜像 ,并构建新镜像:gentle:

从第 2 次查看镜像可以确认,新的镜像 gentle 已构建成功。

5. 通过镜像启动容器,命令如下:


#  -d 后台运行、
#  最后一个 gentle 是引用的镜像的名字、
#  --name jy_gentle 给容器取名为 jy_gentle (取名参数前面是两短横线)、
#  -p 8089:8089 端口映射,注意是小写 p
# 前一个 8089 是对外浏览器上访问的端口,后一个 8089 是容器内工程本身的端口,两者可不一样docker run -d -p 8089:8089 --name jy_gentle gentle 

docker ps -a :查看当前服务器上所有容器。

从第 2 次查看可知容器已成功启动。黄框中的是各个容器使用的镜像的名字,蓝框中的是各个容器的名字。

我的工程设置的本地端口也是8089

6. postman 和浏览器 顺利请求到 gentle 工程中的接口,说明部署成功

7. gentle 工程中接口实现:

部署完啦 ,走,出门溜达溜达,找点吃的去  ...

--------------------------------

2018.11.28 后记,每次改代码都要重新部署依旧很麻烦,于是写了个很简单的脚本,运行就部署。

脚本内容只是把命令整合到一起了而已:

cd gentle_code# 备份原代码
tar -zcvf gentle.tar ./gentle# 删除原代码文件夹
rm -rf gentle# 拉取代码
echo -e "\033[32m\n从git拉取代码\n\033[0m"
git clone https://gitee.com/FJ_WoMenDeShiJie/gentle.git
echo -e "\033[32m\n代码拉取完成\n\033[0m"# 工程打包
cd gentle
rm -rf ./target/gentle-1.0-SNAPSHOT.jarecho -e "\033[32m\n开始打jar包\n\033[0m"
mvn install -Dmaven.test.skip=true
rm -rf ../../jar/gentle-1.0-SNAPSHOT.jar
cp ./target/gentle-1.0-SNAPSHOT.jar ../../jar
echo -e "\033[32m\njar包完成\n\033[0m"# 删除原镜像
docker rmi gentle &> /dev/null
echo -e "\033[32m\n删除原镜像\n\033[0m"
echo -e "\033[32m\n构建新镜像\n\033[0m"cd ../../
docker build -t gentle .
echo -e "\033[32m\n新镜像构建成功\n\033[0m"# 删除原容器
docker rm -f gentle# 启动容器
docker run -d -p 8089:8089 --name gentle gentle
echo  -e "\033[32m\n后端工程部署完成\n\033[0m"

运行效果:

postman 请求,返回的已经有新接口数据了。

另外:前端工程部署脚本见:前端 vue 工程 Docker 方式部署

Docker 部署应用、jar 工程 docker 方式部署相关推荐

  1. 安装好panel部署MySQL_实战三种方式部署 MySQL5.7

    作者:北京运维 常见的 MySQL 安装方式有如下三种: RPM 包方式:这种方式安装适合对数据库要求不太高的场合,安装速度快: 通用二进制包方式:安装速度相较于源码方式快,可以自定义安装目录. 源码 ...

  2. Docker 方式 部署 vue 项目 (docker + vue + nginx)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.安装好 nginx . 2. 把 vue 项目的源码克隆到确定目录下.用 git 管理,所以直接 ...

  3. 微软ASP.NET站点部署指南(11):部署SQL Server数据库更新

    1. 综述 本章节展示的是如何向完整版SQL Server 数据库部署一个数据库升级.与第9章的数据库升级部署有所不同(第9章是部署到SQL Server Compact数据库). 提醒:如果根据本章 ...

  4. Docker部署项目的两种方式总结

    作者:LemonSquash cnblogs.com/npeng/p/14267007.html 1.手工方式 1.1.准备Springboot jar项目 将项目打包成jar 1.2.编写Docke ...

  5. linux运行dock打包的镜像,Linux部署之Docker方式部署项目

    Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...

  6. 又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式

    又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式 部署思路: 具体步骤: 1.打成jar 2.上传到服务器 3.启动JDK容器 4.进入JDK 容器 启动 项 ...

  7. centos 上传jar 命令_centos上快速将一个jar使用docker部署启动

    通常的jar应用,直接部署在服务器上,使用服务器资源直接部署,一个jar,一个启动脚本,就可以了. 最近想到一个场景,让docker时间和宿主机的时间不一样,进行不同应用部署的隔离.整理一下docke ...

  8. Docker方式部署Github监控系统Hawkeye

    Docker方式部署Github监控系统Hawkeye 依赖 Python 3.x MongoDB >= 3.x Flask 创建python3依赖包 yum -y install zlib-d ...

  9. Docker 方式部署 Solo 博客系统总结

      此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结>   最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...

最新文章

  1. 最长不含重复字符的子字符串
  2. 脑机接口和卷积神经网络的初学指南(一)
  3. glBegin()和glEnd()之间可调用的函数
  4. Ubuntu系统Apache2部署SSL证书
  5. python批量生成文件夹_python实现批量获取指定文件夹下的所有文件的厂
  6. servlrt程序的入口点是_刚刚,微信偷偷更新,小程序又放大招了!
  7. PHP非对称加密:RSA (RSA/ECB/PKCS1Padding)+base64_encode/bin2hex加密
  8. tbase同步mysql_mysql主从同步
  9. linux kernel 调度,在Linux中,实时调度_kernel_开发99编程知识库
  10. java有趣的平方数_JAVA小程序之独特的完全平方数问题
  11. SCCM2012软件更新(WSUS补丁)同步成功无法获取补丁问题
  12. [Swift]LeetCode978. 最长湍流子数组 | Longest Turbulent Subarray
  13. java 序列化 兼容_Java序列化 – java.io.InvalidClassException本地类不兼容
  14. Python小白的数学建模课-B4. 新冠疫情 SIR模型
  15. 关于-webkit-的一些用法
  16. Springboot实现邮箱验证码注册、找回密码和登录功能
  17. 网站如何实现短信验证码功能?
  18. [易飞]同一单据如何根据不同用户或组限定仓库(客户)
  19. html网页设计动态烟花效果
  20. Short Pairing-based Non-interactive Zero-Knowledge Arguments

热门文章

  1. ROS入门_1.10 理解ROS服务和参数
  2. jvm详解、GC、堆内存参数调优
  3. PWN-PRACTICE-BUUCTF-2
  4. 【CodeForces - 789D】Weird journey(思维,图的性质,tricks,有坑)
  5. 【qduoj - 纳新题】小明的dp(快速幂 + 乘法原理)(简单组合数学)
  6. 【HDU - 1873】 看病要排队(优先队列)
  7. 详解自动驾驶仿真框架OpenCDA: An Open Cooperative Driving Automation Framework Integrated with Co-Simulation
  8. 两阶段3D目标检测网络 SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud
  9. mysql连接方式左联_数据库中的左连接(left join)和右连接(right join)区别 | 改变自己...
  10. mysql的传播特性_spring事务传播特性和mysql事务隔离级别