Unbutu系统-Docker安装、JDK环境配置,Docker常用指令、Docker安装MySQL、Redis、Tomcat、Nginx,前端后分离项目部署

目录

1、防火墙

1.1、查看防火墙状态

1.2、开启防火墙

1.3、关闭防火墙

1.4、重启防火墙

1.5、查看防火墙版本

2、安装JDK

2.1、官网下载tar包

2.3、解压tar.gz文件

2.4、配置环境变量

2.4.1、查看安装路径

2.4.2、设置环境变量

2.4.3、执行该让环境变量生效

2.4.4、查看JDK版本

3、Docker

3.1、安装Docker

3.1.1、卸载旧版本

3.1.2、获取软件最新源

3.1.3、安装apt依赖包

3.1.4、安装GPG证书

3.1.5、验证

3.1.6、设置稳定版仓库

3.2、安装 Docker Engine-Community

3.2.1、更新apt包索引

3.2.2、安装最新版本

3.2.3、安装特定版本

3.3、启动和停止

3.3.1、启动docker

3.3.2、停止docker

3.3.3、重启docker

3.4、Docker镜像操作

3.4.1、列出镜像

3.4.2、搜索镜像

3.4.4、拉去镜像

3.4.5、删除镜像

3.5、Docker操作容器

3.5.1、创建容器

3.5.2、交互式容器

3.5.3、守护式容器

3.5.4、进入已运行的容器

3.5.5、查看容器

3.5.6、停止与启动容器停止一个已经在运行的容器

3.5.7、启动一个已经停止的容器

3.5.8、kill掉一个已经在运行的容器

3.5.9、删除容器

3.6、Docker安装MySQL容器

3.6.1、下载MySQL镜像

3.6.2、创建MySQL容器并运行

3.6.3、查看MySQL是否运行

3.6.4、通过Docker命令进入MySQL容器内部

3.6.5、链接mysql

3.6.6、切换用户表

3.6.7、修改密码

3.6.8、开启远程访问

3.6.9、刷新

3.7、Docker安装Redis

3.7.1、下载Redis镜像

3.7.2、创建Redis配置文件

3.7.3、创建Redis容器并运行

3.7.4、查看Redis是否运行

3.7.5、通过Docker命令进入Redis容器内部

3.8、Docker安装Tomcat

3.8.1、下载Tomcat镜像

3.8.2、创建tomcat配置文件目录

3.8.3、创建Tomcat容器并运行

3.8.4、查看Tomcat是否运行

3.8.5、通过Docker命令进入Tomcat容器内部

3.8.6、查看主机本机数据是否被挂载

3.8.7、修改tomcat的server.xml配置文件

 3.9、Docker安装Nginx

3.9.1、下载Nginx镜像

3.9.2、创建目录并且赋予权限

3.9.3、创建Redis容器并运行(不做挂载)

3.9.4、拷贝nginx配置文件到主机

3.9.5、删除没有做数据挂载的nginx容器

3.9.6、创建nginx容器、运行并做数据挂载

3.9.7、通过Docker命令进入Nginx容器内部

3.9.8、查看主机数据是否被挂载

3.9.9、Nginx配置文件基本配置

3.10、前后端分离项目部署(Ruoyi框架)

3.10.1、后端SpringBoot打包成jar包

3.10.2、前端vue项目打成dist文件

3.10.3、项目上传

3.10.4、运行项目

3.10.5、配置前端Nginx

3.10.6、前后端项目整体运行效果


1、防火墙

1.1、查看防火墙状态

sudo ufw status

 

 注:如果没有安装防火墙可以使用命令安装

sudo sudo apt-get install ufw

1.2、开启防火墙

sudo ufw enable

注:启动防火墙时,服务器会提示:Command may disrupt existing ssh connections.Proceed with operation (y|n)?

意思就是,命令有可能会中断本次ssh的连接,是否继续。

选择:y,会提示防火墙已打开。

1.3、关闭防火墙

sudo ufw disable

1.4、重启防火墙

重启防火墙,添加规则以后需要使用该命令进行重启防火墙,比如设置对外开放的端口号等。

sudo ufw reload

1.5、查看防火墙版本

sudo ufw version

2、安装JDK

2.1、官网下载tar包

官网地址:Java Downloads | Oracle 中国

2.3、解压tar.gz文件

sudo tar -zxvf jdk-8u381-linux-x64.tar.gz

2.4、配置环境变量

2.4.1、查看安装路径

2.4.2、设置环境变量
export JAVA_HOME=/usr/local/JDK/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
2.4.3、执行该让环境变量生效
source /etc/profile
2.4.4、查看JDK版本
java -version

3、Docker

Ubuntu系统安装Docker_ubuntu安装docker_流觞浮云的博客-CSDN博客

3.1、安装Docker

3.1.1、卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

3.1.2、获取软件最新源
sudo apt-get update

3.1.3、安装apt依赖包

用于HTTPS来获取仓库

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

3.1.4、安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

3.1.5、验证
sudo apt-key fingerprint 0EBFCD88

3.1.6、设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

3.2、安装 Docker Engine-Community

3.2.1、更新apt包索引
sudo apt-get update

3.2.2、安装最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io

3.2.3、安装特定版本

查看可获取的版本

apt-cache madison docker-ce

安装指定版本

3.3、启动和停止

3.3.1、启动docker
sudo service docker start
3.3.2、停止docker
sudo service docker stop
3.3.3、重启docker
sudo service docker restart

3.4、Docker镜像操作

3.4.1、列出镜像
docker images

REPOSITORY:镜像所在的仓库名称

TAG:镜像标签

IMAGEID:镜像ID

CREATED:镜像的创建日期(不是获取该镜像的日期)

SIZE:镜像大小

3.4.2、搜索镜像
docker search mysql

3.4.4、拉去镜像

要想获取某个镜像,我们可以使用pull命令,从仓库中拉取镜像到本地,如

docker pull hackeryx/ubuntu:16.04
3.4.5、删除镜像

docker image rm 镜像名或镜像 iddocker rmi 镜像名或镜像 id

3.5、Docker操作容器

3.5.1、创建容器
docker run [option] 镜像名:tag [向启动容器中传入的命令]

常用可选参数说明:

-i 表示以“交互模式”运行容器
-t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
–name 为创建的容器命名
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
-e 为容器设置环境变量
–network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同

3.5.2、交互式容器

例如,创建一个交互式容器,并命名为myubuntu

docker run -it --name=ubuntu kochul2000/ubuntu20.04-apt-pip:latest /bin/bash

在容器中可以随意执行linux命令,就是一个ubuntu的环境,当执行exit命令退出时,该容器也随之停止。

3.5.3、守护式容器

创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出时,容器也不会停止。

docker run -itd --name=ubuntu2 --network=host kochul2000/ubuntu20.04-apt-pip:latest
3.5.4、进入已运行的容器

docker exec -it 容器名或容器id 进入后执行的第一个命令

docker exec -it ubuntu /bin/bash
3.5.5、查看容器

列出本机所有容器,包括已经终止运行的

docker ps -a
3.5.6、停止与启动容器
停止一个已经在运行的容器
docker container stop 容器名或容器id
3.5.7、启动一个已经停止的容器
docker container start 容器名或容器id
3.5.8、kill掉一个已经在运行的容器
docker container kill 容器名或容器id
3.5.9、删除容器
docker container rm 容器名或容器id 或 docker rm 容器名或容器id

3.6、Docker安装MySQL容器

3.6.1、下载MySQL镜像
命令描述
docker pull mysql下载最新版Mysql镜像 (其实此命令就等同于 : docker pull mysql:latest )
docker pull mysql:xxx下载指定版本的Mysql镜像 (xxx指具体版本号)

3.6.2、创建MySQL容器并运行
sudo docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.7
命令描述
docker run创建一个新的容器 , 同时运行这个容器
–name mysql启动容器的名字
-d后台运行
-p 3306:3306将容器的 3306 (后面那个) 端口映射到主机的 3306 (前面那个) 端口
–restart unless-stopped容器重启策略
-v /mydata/mysql/log:/var/log/mysql将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql将mysql储存文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root设置 root 用户的密码
mysql:5.7启动哪个版本的 mysql (本地镜像的版本)
\shell 命令换行符

注:命令中所有 冒号 前面的是主机配置 , 冒号 后面的是mysql容器配置 。
–restart unless-stopped : 在docker重启时重启当前容器。但不包含docker重启时已停止的容器。

3.6.3、查看MySQL是否运行
docker ps

3.6.4、通过Docker命令进入MySQL容器内部
docker exec -it mysqlserver /bin/bash
或
docker exec -it mysqlserver bash
3.6.5、链接mysql
mysql -uroot -p123456

3.6.6、切换用户表
use mysql;
3.6.7、修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
3.6.8、开启远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
3.6.9、刷新
flush privileges;

3.7、Docker安装Redis

3.7.1、下载Redis镜像
命令描述
docker pull redis下载最新版Redis镜像 (其实此命令就等同于 : docker pull redis:latest )
docker pull redis:xxx下载指定版本的Redis镜像 (xxx指具体版本号)

3.7.2、创建Redis配置文件

启动前需要先创建Redis外部挂载的配置文件 ( /usr/local/redis/conf/redis.conf )
之所以要先创建 , 是因为Redis本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件
当服务器和容器都不存在 redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建 , 这并不是我们想要的结果 。

 

3.7.3、创建Redis容器并运行
sudo docker run -p 6379:6379 --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
3.7.4、查看Redis是否运行
sudo docker ps

3.7.5、通过Docker命令进入Redis容器内部
docker exec -it redis /bin/bash
## 或者
docker exec -it redis bash

3.8、Docker安装Tomcat

3.8.1、下载Tomcat镜像
命令描述
docker pull tomcat

下载最新版Tomcat镜像(其实此命令等同于:docker pull tomcat:latest)

docker pull tomcat:xxx下载指定版本的Tomcat镜像(xxx指具体版本号)
3.8.2、创建tomcat配置文件目录

创建(conf、webapps、logs)并赋予权限,目的是做数据挂载

3.8.3、创建Tomcat容器并运行
sudo docker run -d -p 8080:8080 --name tomcat -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps -v /usr/local/tomcat/conf:/usr/local/tomcat/conf -v /usr/local/tomcat/logs:/usr/local/tomcat/logs tomcat
3.8.4、查看Tomcat是否运行

3.8.5、通过Docker命令进入Tomcat容器内部

3.8.6、查看主机本机数据是否被挂载

3.8.7、修改tomcat的server.xml配置文件

设置Tomcat 上传图片的访问路径,使上传的图片可以直接用URL直接访问

在Tomcat的conf目录下的server.xml配置访问路径。

doBase:图片上传的路径

path:ip:8080/img/xxx.png访问图片的重定向方式

 3.9、Docker安装Nginx

3.9.1、下载Nginx镜像
命令描述
docker pull nginx下载最新版Nginx镜像(命令等同于:docker pull redis:latest)
docker pull redis:xxx下载指定版本的Nginx镜像(xxx指具体版本号)

3.9.2、创建目录并且赋予权限

在主机中创建Nginx文件目录并赋予权限sudo chmod 777 文件目录或文件/

3.9.3、创建Redis容器并运行(不做挂载)

以不做数据挂载的方式创建nginx容器并运行,目的是将docker中nginx的配置文件拷贝到主机

sudo docker run -d --name nginx -p 80:80 nginx:1.23
3.9.4、拷贝nginx配置文件到主机
sudo docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/
sudo docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/
sudo docker cp nginx:/usr/share/nginx/html /usr/local/nginx/html
sudo docker cp nginx:/var/log/nginx/ /usr/local/nginx/logs/
3.9.5、删除没有做数据挂载的nginx容器
sudo docker rm -f 容器ID
3.9.6、创建nginx容器、运行并做数据挂载
sudo docker run \
-d \
--name nginx \
-p 80:80 \
-v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/logs:/var/log/nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/conf:/etc/nginx/conf.d \
--privileged=true \
-e TZ=Asia/Shanghai \
nginx:1.23
3.9.7、通过Docker命令进入Nginx容器内部

3.9.8、查看主机数据是否被挂载

3.9.9、Nginx配置文件基本配置

3.10、前后端分离项目部署(Ruoyi框架)

3.10.1、后端SpringBoot打包成jar包

3.10.2、前端vue项目打成dist文件

3.10.3、项目上传

将前端和后端项目上传到服务器并将目录赋予权限

3.10.4、运行项目

启动后端项目后台运行并将日志保存在chatgpt.log文件中

nohup java -jar ruoyi-admin.jar > chatgpt.log 2>&1 &
3.10.5、配置前端Nginx

前端项目通过nginx配置文件设置路由转发和方向代理,当然可以将dist文件放入到docker中的nginx文件目录下的html文件中,并重启nginx,可以参考3.9.9的配置文件。

3.10.6、前后端项目整体运行效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/81458.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建k8s operator

目录 1.前提条件 2.进一步准备 2.1.安装golang 2.2.安装code(vscode的linux版本) 2.3.安装kubebuilder 3.开始创建Operator 3.1.什么是operator? 3.2.GV & GVK & GVR 3.3.创建operator 3.3.1. 生成工程框架 3.3.2.生成api(GVK) …

『PyQt5-基础篇』| 02 Pyqt5开发环境+安装配置QtDesigner

02 Pyqt5开发环境安装配置QtDesigner 1 Pycharm安装2 Python安装3 Pip安装4 PyQt5安装5 Pycharm中编译工具设置及pyqt5包的导入6 指定Qt Designer7 指定PyUIC58 指定PyRcc59 PyInstaller安装10 查看是否配置OK 1 Pycharm安装 安装教程请参考:安装教程 2 Python安装…

2023 ccpc 网络赛 L 题解

Problem L. Partially Free Meal 题面 官方题解 官方题解解读 w(k,x)计算部分 主席树常规做法&#xff0c;在一般主席树中多维护一个这个区间的总和就ok了 根据单调性分治求解部分 接下来我们来推导一下单调性&#xff0c;也就是题解中的 f ( 1 ) < f ( 2 ) < f ( …

Nodejs-nrm:快速切换npm源 / npm官方源和其他自定义源之间切换

一、理解 Nodejs nrm Nodejs nrm 是一个管理 npm 源的工具。由于 npm 在国内的速度较慢&#xff0c;很多开发者会使用淘宝的 npm 镜像源&#xff0c;但是也会遇到一些问题&#xff0c;例如某些包在淘宝镜像源中不存在&#xff0c;或者淘宝镜像源本身也会有问题。 Nodejs nrm …

字节跳动 Git 的正确使用姿势与最佳实践

版本控制Git 黑马&尚硅谷 Git的前世今生 方向介绍 为什么要学习Git 1.0 Git是什么 1.1 版本控制 1.1.1 本地版本控制 1.1.2 集中版本控制 1.1.3 分布式版本控制 我们已经把三个不同的版本控制系统介绍完了&#xff0c;Git 作为分布式版本控制工具&#xff0c; 虽然目前来讲…

【LeetCode-中等题】3. 无重复字符的最长子串

题目 题解一&#xff1a;单指针&#xff0c;滑动窗口 思路&#xff1a; 设置一个左指针&#xff0c;来判断下一个元素是否在set集合中&#xff0c;如果不在&#xff0c;就加入集合&#xff0c;right继续&#xff0c;如果在&#xff0c;就剔除重复的元素&#xff0c;计算串的长度…

sql递归查询

一、postgresql 递归sql with recursive p as(select t1.* from t_org_test t1 where t1.id2union allselect t2.*from t_org_test t2 join p on t2.parent_idp.id) select id,name,parent_id from p; sql中with xxxx as () 是对一个查询子句做别名&#xff0c;同时数据库会对…

双向-->带头-->循环链表

目录 一、双向带头循环链表概述 1.什么是双向带头循环链表 2.双向带头循环链表的优势 3.双向带头循环链表简图 二、双向带头循环链表的增删查改图解及代码实现 1.双向带头循环链表的头插 2.双向带头循环链表的尾插 3.双向带头循环链表的头删 4.双向带头循环链表的尾删…

cortex-A7核IIC实验--STM32MP157AAA

实验目的&#xff1a;采集温湿度传感器值 一&#xff0c;IIC概念 1.同步串行半双工总线&#xff0c;主要用于链接整体电路&#xff0c;硬件结构简单&#xff0c;接口连接方便&#xff0c;成本较低 2.两线制&#xff0c;只有两根双向信号线&#xff0c;数据线SDA,时钟线SCL …

el-table存在固定列,如果拖动表格头宽度,造成固定列高度崩塌

对表格添加监听表头拖动方法header-dragend"headerDragend"&#xff0c;当拖动表格头时&#xff0c;触发headerDragend方法&#xff0c;执行表格.doLayout()方法&#xff0c;重新进行布局table&#xff1b;

keepalived+lvs(DR)(四十六)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、作用 二、调度器配置 三、web节点配置 一、作用 使用keepalived解决lvs的单点故障 高可用集群 二、调度器配置 安装keepalived yum install -y k…

23年下半年软考系统架构设计师(最新报名时间)

高级系统架构设计师&#xff0c;有一定的难度&#xff0c;值得挑战一下 23年下半年软考架构启用最新版考试大纲&#xff0c;而且报名时间也推迟了&#xff0c;考试形式也改了&#xff0c;由笔试改为了机考&#xff0c;所以今年报名一定要多关注一下&#xff01;&#xff01; 软…