把本地项目使用Maven,先clean再install生成target目录,目录下有打成的.jar结尾的jar包,
记得修改日志路径为linux上的路径,

测试在本地使用win+r ,输入cmd打开命令行窗口,
#正常启动jar包,根据自己需要以下选一个命令进行操作

java -jar XXX.jar
#当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出。

#当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行

java -jar XXX.jar &

#当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件

nohup java -jar XXX.jar &
#输出重定向到temp.file文件
nohup java -jar XXX.jar >temp.txt &
#即输出内容不打印到屏幕上,而是输出到temp.file文件中

#配置静态变量并不输出日志到控制台或者日志文件中

nohup java -jar  /data/server/ifsmp/ifsmp.war --spring.profiles.active=test --server.port=8080 >/dev/null 2>&1 &

# >/dev/null 2>&1 含义:
# 该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中
# -–spring.profiles.active=test 含义:
#连续的两个减号–就是对application.properties中的属性值进行赋值的标识,等价于我们在application.properties中添加属性spring.profiles.active=test

#eureka-client配置如下:
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
    healthcheck:
      enabled: true
  instance:
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}

2.linux上使用docker部署

(1)docker部署Java项目

进入root目录
cd /root
新建文件夹目录
mkdir home
把jar包上传到新建/root/home目录下
创建文件名为dockerfile的文本文件,将maven打包好的jar包和dockerfile文件放在同一目录下,
touch dockerfile
Docker以从上到下的顺序运行dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。
一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。
FROM:指定基础镜像,必须为第一个命令
FROM指令用于指定基础镜像,ARG是唯一可以位于FROM指令之前的指令,一般用于声明基础镜像的版本
COPY指令:copy宿主机文件到镜像中。
ENTRYPOINT: 指定镜像的默认入口命令,该入口命令会在启动容器时作为根命令执行,所有其他传入值作为该命令的参数。

 (2)编写Dockerfile文件

vim dockerfile 按i或o或a进入编辑模式,dockerfile文本内容如下:

FROM 10.124.129.165:5200/xxxx//jre:v1.8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

COPY xxx.jar xxx.jar   #前面是自己上传jar包名字,后面是你重命名的jar包名字,copy宿主机文件到镜像中
ENTRYPOINT ["java", "-jar", "xxx.jar"] #你重命名的jar包名字

按Esc退出编辑模式,输入 :wq 保存退出 :q! 不保存退出

(3)制作镜像

docker build 命令用于使用 dockerfile文件创建镜像。

-f :指定要使用的dockerfile文件路径;
-t:容器名字,冒号前面是自定义REPOSITORY镜像名,注意不能大写:冒号后面自定义tag版本号如以年月日命名

docker build -f ./dockerfile -t xxx:xxxx .  <----注意后面必须有一个.

制作完成,查看镜像

docker image ls

 (4)启动容器

-p: 冒号前面8080是镜像端口(自定义linux宿主机端口):冒号后面对应8081是你项目端口号(自己上传jar包),将项目端口号映射到物理机linux宿主机端口

docker run -d -p 8080:8081 xxx:xxxx <----前面制作镜像的容器名字

 (5)访问自定义接口测试


浏览器访问:

http://localhost(当前docker节点IP):8080(当前docker节点端口,映射的Linux宿主机端口)/自定义接口地址

容器内使用curl测试同上

curl "http://localhost:5001/hello"

 (6)把镜像推上仓库

容器名字,冒号前面是自定义REPOSITORY镜像名,注意不能大写:冒号后面自定义tag版本号如以年月日命名

1.标记镜像为私有仓库的镜像

docker tag imageId(镜像的image  Id) xxx(私有仓库地址/容器名字)

示例:

docker tag ba3e4cc7cb1e 10.124.129.165:5200/xxxx/hello:20230515

2.把镜像推上仓库

docker push xxx(私有仓库地址/容器名字)

示例:

docker push 10.124.129.165:5200/xxxx/hello:20230515

3.打开浏览器输入地址回车:

http://10.124.129.165:5200/v2/_catalog

看到{"repositories":[这里有自己推送的URL后缀"xxxx/hello"即为成功!]}

http://私有仓库服务器ip:5000/v2/_catalog,看到

{"repositories":[]} 表示私有仓库 

(7)docker相关命令

重启docker

systemctl restart docker


再重启docker 容器

dockers start 容器id


查看所有容器(包括运行和未运行的)

docker ps -a (all的简写)


查看docker 容器控制台日志

docker logs -f containerId(容器id)


删除指定容器

docker rm containerId(容器id)



强制删除指定容器

docker rm -f containerId(容器id)


查看正在运行的容器

docker ps


查看最后一次运行的容器

docker ps -l


查看停止的容器

docker  ps -f status=exited


进入守护式容器(后台运行)

docker exec -it containerId(容器id) /bin/bash 


退出容器

exit


停止容器运行

docker stop containerId(容器id)


启动容器

docker start containerId(容器id)


容器信息

docker info


清理掉所有处于终止状态的容器

docker container prune



查看docker版本    
docker version


查看docker的状态

systemctl status docker


查看文件安装路径

whereis docker


查看运行文件所在的路径

which docker


查看端口是否被占用
netstat -ntulp | grep 8086


查看所有镜像

docker images


删除镜像

docker rmi imageId(镜像id)


强制删除镜像

docker image rm -f imageId(镜像id)


查看在运行的jar包

ps -x|grep demoA(jar包名)



拉取镜像 : 从 Docker 仓库下载镜像到本地,镜像名称格式为 名称 : 版本号,如果版本号

不指定则是最新的版本。如果不知道镜像版本,可以去 docker hub 搜索对应镜像查看。


docker pull 镜像名称

docker pull redis #若没有指定版本,默认下载最新版本

docker pull redis:5.0 #下载指定的版本