文章目录

  • linux下jdk的安装和docker打包运行镜像
    • 1、jdk安装
      • 添加下面内容
    • 2、nohup安装
      • 2.1、创建springboot项目
      • 2.2、IDEA+Spring Cloud+Maven模块化项目打包
    • 3、服务器后台启动java项目
      • linux下
      • win下
    • 4、docker构建并运行镜像
      • 4.1、编写Dockerfile
      • 4.2、docker构建镜像
      • 4.3、运行镜像
      • 4.4、访问应用
      • 4.5、查看容器运行日志
      • 4.6、firewall防火墙开放端口
    • 删除docker镜像
    • 5、分享镜像
      • 5.1、登录docker.hub仓库
      • 5.2、重命名
      • 5.3、推送镜像到docker.hub仓库
      • 5.6、下载镜像

linux下jdk的安装和docker打包运行镜像

1、jdk安装

https://www.oracle.com/java/technologies/downloads/#java8

从官网上下载linux版本的JDK

JDK下载地址

通过ftp或者rz命令上传到linux

我这里需要把JDK安装在/usr/local目录下,在/usr/local下新建文件加java

mkdir /usr/local/java

tar命令解压JDK包,解压地址是 /usr/local/java

tar -zxvf jdk-8u311-linux-x64.tar.gz 得到文件:jdk1.8.0_311

接下来配置环境变量

vim命令打开/etc/profile

vim /etc/profile

添加下面内容

#Set Java_Environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_311
export JRE_HOME=/usr/local/java/jdk1.8.0_311/jre
export CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH

加载环境变量

source /etc/profile

验证是否安装成功

java -version

成功!

2、nohup安装

解决:Linux下-bash: nohup: command not found或者bash: nohup: 未找到命令的问题

首先,没有发现nohup,先安装

yum install coreutils

其次,如果已经安装 ,查看本地是否有,查看nohup具体位置(注意:nohup的字母不要打错,之前就是因为打成了“nohub”而浪费了很多时间的

which nohup


再次,将具体位置进行配置

vim ~/.bash_profile


然后如下图所示,在环境变量PATH后面加上:usr/bin

然后,保存,刷新刷新生效

:wqsource ~/.bash_profile

最后,进行验证

nohup --version

2.1、创建springboot项目

在spring-boot项目中得用spring-boot的打包插件

这是spring-boot的打包插件

pom.xml

<!--打包插件--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>

2.2、IDEA+Spring Cloud+Maven模块化项目打包

背景:采用Spring Cloud框架搭建了一个项目,里面包含多个微服务,其中项目A依赖项目B,项目B里面是公共类(model、utils等)

1.B项目pom不能引入spring-boot-maven-plugin插件

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

spring-boot-maven-plugin打包出来的jar是不可依赖的,这个插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,正是因为产生了可执行jar包,所以A项目打包时就找不到B项目的类。

2.第一次打包,要在父工程打包,本次是将父工程中的modules打成jar包,所以这些modules不能引入spring-boot-maven-plugin插件。

2.第二次打包,打包基础服务模块,在微服务模块中打包

打包成功!

3、服务器后台启动java项目

linux下

1查看当前jar的pid

ps -ef|grep jar包名

2.终止当前jar

kill -9 pid

3、启动指定项目

nohup java -jar jar包名 --server.port=指定端口号  > 日志文件.log 2>&1 &

&表示后台运行

比如我的

nohup java -jar demo1-0.0.1-SNAPSHOT.jar > /mydata/docker-file/logs/demo1-1239.log 2>&1 &

nohup 和 & 是保证后台运行不终止的意思,2>&1是将错误输出定位到左边的文件中

4、查看后台启动日志

tail -f /mydata/docker-file/logs/demo1-1239.log

win下

1查看当前jar的pid

jps

2.终止当前jar

taskkill /pid  12345 -f

3.启动指定项目

@echo offstart javaw -jar  D:\JavaApp\znzs_test\law_snapshot.jarexit

4、docker构建并运行镜像

4.1、编写Dockerfile

vim Dockerfile
FROM openjdk:8-jdk-slim
LABEL maintainer=demo1-testCOPY target/*.jar  /app.jarENTRYPOINT ["java","-jar","/app.jar"]

target目录下

demo1-0.0.1-SNAPSHOT.jar

把Dockerfile和target目录上传linux服务器

4.2、docker构建镜像

注意: -t 全称为 -tag

docker build -t java-demo:v1.0 -f Dockerfile
  1. -f Dockerfile可以省略
  2. java-demo:v1.0任意可以取名
  3. 末尾的" . "表示在当前目录执行build命令
#用这个
docker build -t java-demo:v1.0 .

查看镜像是否构建成功

docker images

4.3、运行镜像

docker run -d -p 8080:8080 java-demo:v1.0#或者随便指定一个名称: --name myjava-appdocker run -d -p 8080:8080 --name myjava-app java-demo:v1.0

-d表示后台运行,-p 指定端口,8080:8080 表示从机器的8080映射到 ==> java的8080

4.4、访问应用

http://192.168.66.30:8080/hello

4.5、查看容器运行日志

1、

#查看容器id
docker ps

2、

#根据容器id查看容器运行日志
docker logs CONTAINER ID
#根据容器id查看容器运行的全部日志,日志持续更新
docker logs -f CONTAINER ID

4.6、firewall防火墙开放端口

如果访问不了应用,就查看防火墙端口是否开放

查看防火墙状态

systemctl status firewalld

开启防火墙

systemctl start firewalld.service

添加端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

重启防火墙

systemctl restart firewalld.service

查看所有开放的端口

firewall-cmd --list-ports

关闭防火墙

systemctl stop firewalld.service

删除docker镜像

如果出错,想重新构建镜像,可以先删除docker镜像,再重新构建!

1、

docker ps -a

2、

docker rm CONTAINER ID

3、

docker images

![image-2022031515

4、

docker rmi IMAGE ID

5、分享镜像

分享镜像给其他新的服务器

5.1、登录docker.hub仓库

docker login

5.2、重命名

给原来的镜像起一个新的名(一定得加前缀)

docker tag 名字 前缀/名字
docker tag java-demo:v1.0 xb1314d/java-demo:v1.0#注意: 前缀一定得是自己得账号名,否则推送会失败

5.3、推送镜像到docker.hub仓库

docker push xb1314d/java-demo:v1.0

登录docker.hub仓库查看

https://registry.hub.docker.com/

https://hub.docker.com/repositories

镜像推送成功 !

5.6、下载镜像

这个时候就可以从其他服务器下载这个镜像了

登录docker.hub仓库

docker login

下载镜像

docker pull xb1314d/java-demo:v1.0

linux下jdk的安装和docker打包运行镜像相关推荐

  1. CentOS(linux) 下JDK的安装

    CentOS(linux) JDK的安装 第一篇博客有不足之处,请大家多指教.^_^ linux下装JDK的文章网上有一大堆我就不照搬了. 本文讲新手如何取巧的在linux下安装JDK. CentOS ...

  2. linux下jdk的安装与配置jdk-6u45-linux-i586.bin

    linux下jdk的安装与配置 一.安装JDK从sun网站上直接下载JDK:http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45- ...

  3. Linux下JDK的安装与环境配置

    Linux下JDK的安装与环境配置 一.准备工作 将JDK安装包上传或下载至Linux 提示: 在windows地址栏输入cmd后回车,可在当前路径下打开cmd窗口 # 方法一: 使用scp命令本地上 ...

  4. linux下JDK的安装

    linux下JDK.nginx安装   JDK安装 1,本次安装的jdk版本为jdk-6u45-linux-x64-rpm.bin. 2,新建java安装目录,将jdk-6u45-linux-x64- ...

  5. linux下jdk的安装与配置

    简要说明:在大多数LINUX发行版本里,内置或者通过软件源安装的JDK,都是安装的OpenJDK.本人也没有仔细了解OpenJDK和JDK的区别,大致知道OpenJDK只包含最精简的JDK,因为产权问 ...

  6. linux下jdk的安装和配置

    1.将jdk的rpm包上传到服务器 2.使用rpm命令安装jdk rpm -ivh ***.rpm 3.配置环境变量 cd /usr/java目录下查看是否有jdk安装后的目录(一般都在这个目录下) ...

  7. Linux系统管理(11)——linux下jdk的安装及环境变量配置

    目录 1.将下载好的jdk包通过ssh上传到centos操作系统 2.进行解压 3.编辑系统环境变量

  8. Linux下JDK安装

    Linux下JDK的安装 系统环境:centos 7.6 JDK 版本:jdk 1.8.0_20 1. 下载并解压 在官网 下载所需版本的 JDK,这里我下载的版本为JDK 1.8 ,下载后进行解压: ...

  9. java 1.7 linux rpm,linux下用rpm 安装jdk 7的jdk-7u79-linux-x64.rpm

    linux下用rpm 安装jdk 7的jdk-7u79-linux-x64.rpm 步骤一.下载jdk的rpm安装包 步骤二.如果linux是centos的话,请先卸载openjdk,参考文档:使用r ...

最新文章

  1. [Pytorch]基于混和精度的模型加速
  2. 以下选项不是python打开方式的是-以下选项中,不是Python对文件的打开模式的是...
  3. EMCA和EMCTL的简单用法
  4. Java 的单例模式
  5. 算法(第4版)Robert Sedgewick 刷题 第一章(1)
  6. 云财经服务器维护,云财经服务器维护
  7. linux 命令行图形界面切换
  8. mac/centos下添加永久alias
  9. Android第三十三期 - Dialog的应用
  10. BZOJ 2882 后缀数组的傻逼实现
  11. 整理并记录电压比较器
  12. STM32固件库详解
  13. k8s 二进制高可用集群部署
  14. 常见的计算机专业词汇
  15. Golang-web网站入门-服务器入门
  16. Python道路之——画自己名字
  17. easyexcel读取合并单元格
  18. 微信小程序码的生成方式
  19. 适合写python的电脑_文言文的适是什么意思
  20. 临时和持久化的网络驱动器映射

热门文章

  1. linux中shuf命令用法,技术|给初学者看的 shuf 命令教程
  2. 矩阵实验室matlab下载,matlab matlab(矩阵实验室) v6.5.0迷你版
  3. chenxi的html学习笔记
  4. 08计算机★zsy★
  5. 树莓派进行摄像头实验保姆级教程
  6. Linux入门基础知识
  7. 14. 编写递归函数,在第一行打印输出1个1,在第二行输出2个2,。。。,在第n行输出n个n。
  8. Android加载SVG实现交互式地图绘制
  9. rtl8723bu rtl8723du在mstar平台上移植
  10. 暴雪凌晨停服:8090网友集体怀旧告别!从伟大、平庸到一地鸡毛