linux下jdk的安装和docker打包运行镜像
文章目录
- 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
- -f Dockerfile可以省略
- java-demo:v1.0任意可以取名
- 末尾的" . "表示在当前目录执行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打包运行镜像相关推荐
- CentOS(linux) 下JDK的安装
CentOS(linux) JDK的安装 第一篇博客有不足之处,请大家多指教.^_^ linux下装JDK的文章网上有一大堆我就不照搬了. 本文讲新手如何取巧的在linux下安装JDK. CentOS ...
- linux下jdk的安装与配置jdk-6u45-linux-i586.bin
linux下jdk的安装与配置 一.安装JDK从sun网站上直接下载JDK:http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45- ...
- Linux下JDK的安装与环境配置
Linux下JDK的安装与环境配置 一.准备工作 将JDK安装包上传或下载至Linux 提示: 在windows地址栏输入cmd后回车,可在当前路径下打开cmd窗口 # 方法一: 使用scp命令本地上 ...
- linux下JDK的安装
linux下JDK.nginx安装 JDK安装 1,本次安装的jdk版本为jdk-6u45-linux-x64-rpm.bin. 2,新建java安装目录,将jdk-6u45-linux-x64- ...
- linux下jdk的安装与配置
简要说明:在大多数LINUX发行版本里,内置或者通过软件源安装的JDK,都是安装的OpenJDK.本人也没有仔细了解OpenJDK和JDK的区别,大致知道OpenJDK只包含最精简的JDK,因为产权问 ...
- linux下jdk的安装和配置
1.将jdk的rpm包上传到服务器 2.使用rpm命令安装jdk rpm -ivh ***.rpm 3.配置环境变量 cd /usr/java目录下查看是否有jdk安装后的目录(一般都在这个目录下) ...
- Linux系统管理(11)——linux下jdk的安装及环境变量配置
目录 1.将下载好的jdk包通过ssh上传到centos操作系统 2.进行解压 3.编辑系统环境变量
- Linux下JDK安装
Linux下JDK的安装 系统环境:centos 7.6 JDK 版本:jdk 1.8.0_20 1. 下载并解压 在官网 下载所需版本的 JDK,这里我下载的版本为JDK 1.8 ,下载后进行解压: ...
- 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 ...
最新文章
- [Pytorch]基于混和精度的模型加速
- 以下选项不是python打开方式的是-以下选项中,不是Python对文件的打开模式的是...
- EMCA和EMCTL的简单用法
- Java 的单例模式
- 算法(第4版)Robert Sedgewick 刷题 第一章(1)
- 云财经服务器维护,云财经服务器维护
- linux 命令行图形界面切换
- mac/centos下添加永久alias
- Android第三十三期 - Dialog的应用
- BZOJ 2882 后缀数组的傻逼实现
- 整理并记录电压比较器
- STM32固件库详解
- k8s 二进制高可用集群部署
- 常见的计算机专业词汇
- Golang-web网站入门-服务器入门
- Python道路之——画自己名字
- easyexcel读取合并单元格
- 微信小程序码的生成方式
- 适合写python的电脑_文言文的适是什么意思
- 临时和持久化的网络驱动器映射
热门文章
- linux中shuf命令用法,技术|给初学者看的 shuf 命令教程
- 矩阵实验室matlab下载,matlab matlab(矩阵实验室) v6.5.0迷你版
- chenxi的html学习笔记
- 08计算机★zsy★
- 树莓派进行摄像头实验保姆级教程
- Linux入门基础知识
- 14. 编写递归函数,在第一行打印输出1个1,在第二行输出2个2,。。。,在第n行输出n个n。
- Android加载SVG实现交互式地图绘制
- rtl8723bu rtl8723du在mstar平台上移植
- 暴雪凌晨停服:8090网友集体怀旧告别!从伟大、平庸到一地鸡毛