前言

在运行jar包时,我的“中台”建议使用docker进行运行。于是查阅资料,将这个过程进行记录如下。对于入门小白,共勉。

安装docker

由于是第一次安装,所以借鉴了大牛的帖子,当然,大牛帖子也有缺点(就是一旦被大家认可,更新不及时,该帖子是2019年的,软件是2022年了)。
具体步骤如下:

一、基于腾讯轻量级服务器的环境搭建(docker环境)
1.服务器登录

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_java

1.查看是否有docker环境

docker -v

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_02


本人的服务器值有dock环境的,为了方便下面的进行,我卸载原有环境,重新进行配置和安装。

2.安装docker
2.1查看系统版本

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_spring boot_03

2.2卸载已有的docker
yum -y  remove docker  docker-common docker-selinux docker-engine
2.3设置设置yum源
yum-config-manager  --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_spring boot_04


为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_jar_05


这是网上 的说法,一定要注意

2.4查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_spring boot_06


为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_07

2.5.安装docker

yum install docker-ce -y

注意:不要使用几年前的命令(sudo yum install docker),原因如下

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_java_08

2.6启动docker并加入开机自动启动

注意:启动命令如下,不是网上乌七八糟的那些:

systemctl daemon-reload(不能用:systemctl start docker)

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_09


systemctl enable docker

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_10

2.7配置阿里云镜像加速,此步骤可解决镜像下载慢的问题

mkdir -p /etc/docker

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_spring boot_11


vi /etc/docker/daemon.json

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_java_12


为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_spring boot_13

添加以下内容:

{"registry-mirrors": ["https://5f2jam6c.mirror.aliyuncs.com", "http://hub-mirror.c.163.com"]} 文件修改方式
<1>先按键 :i (insert,开启输入模式)
<2>粘贴内容
<3>:wq (完成输入并保存文件)
(注意:那个:是必须的,英文字符!!!)

2.8重新加载配置文件

systemctl daemon-reload

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_jar_14

2.9重启docker

systemctl restart docker

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_15


2.10检查新的docker环境

docker -v

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_02

二、运行docker
1.配置java
1.1下载java镜像
下载java镜像,tag为8u111

docker pull java:8u111

为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_17


为什么docker要连接实际的网络才能有网络 为什么要用docker运行jar_docker_18

2.运行的jar文件
2.1代码运行

将demo.jar放在虚拟机的/home目录下,然后执行命令启动jar
docker run -d -p 7121:8080 -v /home/xxxxxxx.jar:/home/xxxxxxx.jar --name xx001 java:8u111 java -jar /home/xxxxxxx.jar

2.2代码说明:

-d 表示在后台启动
-p 7121:8080表示将容器的端口 映射成宿主主机的端口,否则7121端口访问不到(我的代码在7121下运行)
-v -v /home/demo.jar:/home/demo.jar表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
–name springbootdkltnl003 表示为该容器取一个全局唯一的名称,这里我取的名称为springboot
java:8u111 表示镜像文件的名称和tag
java -jar /home/demo.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的

展望

本文实用的方法是一种简易的方法,实际的方法是有很多种的,本人只是为了快速测试来阉割的办法。实际中是需要配置一个docker的环境的,在里面将执行文件的路径和方法写好,直接运行的。

参考链接

链接1:在docker中运行jar包的一个简单的方式,实用!详细链接