一、原始方法
Linux操作系统上安装jdk8
wget https://download.oracle.com/otn/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jdk-8u311-linux-x64.rpm
安装后可 java -version查看版本
没wget的下载java的linux版JDK压缩版,解压并配置环境变量
Springboot打包
maven添加如下(记得改你启动类),注意如果你的项目是使用Spring Initializr建立的springboot项目会自带该配置,那就不用改了。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>com.example.videDemo.App</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
将该jar包存放到linux上
java -jar path/file.jar
推荐 :为后台运行,并将日志输出到hello(自定义)日志文件
nohup java -jar boot工程.jar &>hello.log &
看看其日志情况
cat hello.log
提示:挂到后台,会看到程序的pid
防火墙开放对应端口,比如我的是8080端口
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
二、使用Docker部署
Docker基于Go语言并遵从Apache2.0协议开源,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
主要是这东西可大大节约配置环境的过程。
安装方法
方法一、
根据您的需要,您可以用不同的方式安装Docker Engine:
-
你可以设置Docker的存储库并从中进行安装,以便于安装和升级任务。这是推荐的方法。
-
您可以下载RPM包,手动安装,并完全手动管理升级。这在无法访问互联网的情况下非常有用,例如在有空隙的系统上安装Docker。
-
在测试和开发环境中,您可以使用自动化的便利脚本安装Docker。
使用rpm存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库中安装和更新Docker。
设置存储库
安装yum-utils
包(提供yum-config-manager
实用程序)并设置存储库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker引擎
-
安装Docker引擎、containerd和Docker Compose:
要安装最新版本,请运行:
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果提示接受GPG密钥,请验证指纹是否匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,如果是的话,接受它。这个命令安装Docker,但是不启动Docker。它还创建了一个
docker
组,但是默认情况下,它不会向该组添加任何用户。 -
启动Docker。
$ sudo systemctl start docker
-
通过运行以下命令验证Docker引擎安装是否成功
hello-world
形象。$ sudo docker run hello-world
该命令下载一个测试映像,并在容器中运行它。当容器运行时,它打印一条确认消息并退出。
现在已经成功安装并启动了Docker引擎。
升级Docker引擎
要升级Docker引擎,请遵循安装说明,选择要安装的新版本。
方法二、
从软件包安装
如果你不能使用Docker的rpm
仓库来安装Docker引擎,您可以下载.rpm
文件并手动安装。你需要下载一个新的文件,每次你想升级Docker引擎。
-
去…Index of linux/centos/并选择您的CentOS版本。然后浏览至
x86_64/stable/Packages/
并下载.rpm
您要安装的Docker版本的文件。 -
安装Docker引擎,将以下路径更改为您下载Docker包的路径。
$ sudo yum install /path/to/package.rpm
Docker已安装但未启动。这
docker
创建了组,但没有用户添加到组中。 -
启动Docker。
$ sudo systemctl start docker
-
通过运行以下命令验证Docker引擎安装是否成功
hello-world
形象。$ sudo docker run hello-world
该命令下载一个测试映像,并在容器中运行它。当容器运行时,它打印一条确认消息并退出。
在linux上创建一个mkdir rq建一个文件夹,名字自己起,里面放入你的jar包,并在该文件夹中vim Dockefile,建立Dockerfile配置文件
Dockerfile文件内容如下:
FROM ascdc/jdk8
ADD *.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
这里只是一个相当简单Dockerfile配置文件模板
-
FROM ascdc/jdk8
- 这一行指定了基础镜像为
ascdc/jdk8,
这是一个预装了 Java 8 开发工具包 (JDK) 的 Docker 镜像,Docker会从Docker Hub或其他配置的镜像仓库中拉取(下载)ascdc/jdk8
镜像。构建这个 Docker 镜像时,会基于ascdc/jdk8
镜像来创建。
- 这一行指定了基础镜像为
-
ADD *.jar app.jar
- 这一行会将当前上下文(通常是 Dockerfile 所在的目录)中的所有
.jar
文件添加到 Docker 镜像的/
目录下,并将它们重命名为app.jar
。如果上下文中有多个.jar
文件,这会导致冲突,因为只有一个文件可以被重命名为app.jar
。通常,为了确保只有一个.jar
文件被添加,开发者会确保在构建 Docker 镜像时只有一个可执行的.jar
文件。
- 这一行会将当前上下文(通常是 Dockerfile 所在的目录)中的所有
-
ENTRYPOINT ["java","-jar","app.jar"]
- 这一行定义了容器启动时要运行的命令。当从这个 Docker 镜像创建一个容器并启动它时,它会执行
java -jar app.jar
命令。这告诉 Java 虚拟机 (JVM) 运行app.jar
文件中的 Java 应用。
- 这一行定义了容器启动时要运行的命令。当从这个 Docker 镜像创建一个容器并启动它时,它会执行
创建Docker镜像
运行命令 (这里要确保用户权限足够高,su root或配置权限),镜像名自己取,我这里取jx。
docker build -t jx .
docker build -t jx .
是一个 Docker 命令,用于从当前目录(.
表示当前目录)的 Dockerfile
构建一个新的 Docker 镜像,并给这个镜像命名为 jx。
启动容器
利用刚创建名为jx的镜像启动一个容器
docker run -p 8080:8080 jx
docker run -p 8080:8080 test
是一个 Docker 命令,用于从名为 test
的镜像启动一个新的容器,并将容器的 8080 端口映射到宿主机的 8080 端口。
启动容器推荐使用如下命令
将SpringBoot应用挂到后台运行,并做端口映射,可以使用以下完整的Docker命令:
docker run -d -p <主机端口>:<容器端口> --name <容器名称> <镜像名称>
其中:
-d
表示让容器在后台运行。-p
用于做端口映射,<主机端口>
是你主机上的端口号,<容器端口>
是容器内部的端口号。--name
用于给容器指定一个名称,<容器名称>
是你希望给容器命名的名称。<镜像名称>
是你的SpringBoot应用的Docker镜像名称。
例如,
镜像名称为jx,你希望将主机的8080端口映射到容器的8080端口,并给容器命名为rq01,那么完整的命令如下:
docker run -d -p 8080:8080 --name rq01 jx
这直接挂到后台运行了。
docker搭建mysql
用docker在linux上快速搭建一个mysql数据库
下载镜像
输入以下命令拉取最新版本的MySQL Docker镜像:
docker pull mysql
利用镜像创建容器
docker run --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
创建一个名为"my-mysql"的容器,将宿主机上的3306端口与容器内的3306端口关联起来,同时设置root密码为"password"
积累:
-p 设置映射端口
-e 设置环境,可以设置多个如-e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -e MYSQL_USER=myuser -e MYSQL_PASSWORD=myuserpw
-d
或 --detach
参数表示在后台运行容器 ,如-d mysql 表示后端运行镜像mysql
docker ps
命令来查看正在运行的容器,而容器的输出日志可以通过 docker logs
命令来查看。
例如,要查看 my-mysql
容器的日志,您可以运行:
docker logs 容器名
这时你会发现你可以用各种数据库客服端连接该数据库了
但是数据库没有任何东西,怎么办
创建初始化脚本
首先,创建一个名为 init.sql
的文件,其中包含创建数据库和表的SQL语句。例如:
CREATE DATABASE IF NOT EXISTS mydb;
USE mydb;
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE
);
这个脚本会创建一个名为 mydb
的数据库,并在该数据库中创建一个名为 users
的表。
运行容器并传递初始化脚本
接下来,使用 docker run
命令启动MySQL容器,并通过 --init-file
参数传递初始化脚本。但是,请注意,MySQL Docker镜像不直接支持 --init-file
参数。相反,您需要将初始化脚本放置在容器内部的 /docker-entrypoint-initdb.d/
目录中,该目录在容器启动时会自动执行其中的脚本。
为此,可以将 init.sql
文件放置在当前目录下,然后使用以下命令运行容器:
docker run --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d \
-v "$(pwd)/init.sql:/docker-entrypoint-initdb.d/init.sql" \
mysql:latest
-v
参数用于将当前目录下的 init.sql
文件挂载到容器内部的 /docker-entrypoint-initdb.d/
目录下。当容器首次启动时,MySQL会执行这个目录下的所有脚本。
现在你可在mysql客服端软件中看到你利用脚本创建的数据库和表。
连接到MySQL并验证
一旦容器启动并运行,您可以连接到MySQL服务器,使用root用户和密码 password
,然后验证数据库和表是否已创建:
mysql -h localhost -u root -p
在MySQL提示符下,运行以下命令来验证:
SHOW DATABASES;
USE mydb;
SHOW TABLES;
这些命令应该显示 mydb
数据库以及 users
表。
现在,您已经成功地使用Docker部署了MySQL,并在容器启动时自动创建了数据库和表。
常用Docker命令
Docker中删除镜像、删除容器、启动和停止容器的命令如下:
- 删除镜像:
docker rmi 镜像ID
。如果要删除正在被容器使用的镜像,需要先删除该容器,才能删除镜像。 - 删除容器:
docker rm 容器ID
。如果要删除正在运行的容器,需要先停止该容器,才能删除容器。 - 启动容器:
docker start 容器ID
。 - 停止容器:
docker stop 容器ID
。 - 启动Docker的命令是 systemctl start docker。
- 设置Docker开机启动的命令是 systemctl enable docker。
- 关闭Docker的命令是 systemctl stop docker。
不要纠结。
知识是学不尽的,重点是要掌握快速运用知识解决问题的方法。
参考文献:
这里只讲了部署项目本身,直接安装sql 、redis等等其它项目依赖的,可以看看