【CentOs】构建云服务器部署环境

 (一) 服务器采购 2 CPU4G 内存40G 系统盘 80G 数据盘

 (二) 服务器安全组和端口配置

 (三) 磁盘挂载


1 登录
    root 
2 查看目前磁盘使用情况
    df -h 
3 查看磁盘挂载情况 识别哪些磁盘没挂载
    fdisk -l 
4 对未挂载磁盘做分区
    fdisk /dev/vdb  
    输入m,
    根据提示依次输入“n”,“p”,“1”,两次回车,“wq”,分区就开始了
5 查看所有分区,vdb分区已经建立
    fdisk -l
6 格式化新分区
    输入命令 mkfs.ext4 /dev/vdb ##实际分区名
7 添加分区信息
    输入命令:echo “/dev/vdb /mnt/data ext4 defaults 0 0” >> /etc/fstab
8挂载数据盘
    输入命令:mount /dev/vdb /mnt/data
9 验证挂载情况 输入df -h 查看是否挂载成功.

(四) 安装 jdk


手动解压JDK的压缩包,然后设置环境变量

1.在/usr/目录下创建java目录

[root@localhost ~]# mkdir/usr/java
[root@localhost ~]# cd /usr/java

2.下载jdk,然后解压

[root@localhost java]# curl -O http://download.Oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz 
[root@localhost java]# tar -zxvf jdk-7u79-linux-x64.tar.gz

3.设置环境变量

[root@localhost java]# vi /etc/profile

在profile中添加如下内容:

#set java environment

JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

让修改生效:

[root@localhost java]# source /etc/profile

4.验证JDK有效性

[root@localhost java]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

 (五) 安装docker


1) Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本

 uname -r 

2)安装 Docker
Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:

 yum -y install docker

3) 检查安装结果  

docker --version
Docker version 1.13.1, build 7d71120/1.13.1

4 启动 Docker 后台服务

service docker start

5 配置docker镜像加速器
‌修改Docker配置文件‌
创建或编辑/etc/docker/daemon.json文件,添加镜像加速器地址:

sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<加速器地址>"]
}
EOF

‌重启Docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker


(六) docker安装redis


1 拉取redis镜像

docker pull redis:6.2.6

2 查看镜像 

docker images

3 创建redis配置文件数据卷

[root@syf/]# mkdir -p /mnt/data/redis/conf
[root@syf/]# cd  /mnt/data/redis/conf

4-创建文件

[root@syf conf]# touch redis.conf
[root@syf conf]# ls
redis.conf

5-编写文件内容  (进入后 i 子母键插入,黏贴下面配置,:wq! 保存并退出)
[root@syf conf]# vim redis.conf
 


# Redis服务器配置 
# 绑定IP地址
#解除本地限制 注释bind 127.0.0.1  
#bind 127.0.0.1  # 服务器端口号  
port 6379 #配置密码,不要可以删掉
requirepass syf133618#这个配置不要会和docker -d 命令 冲突
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定(自定义)
#pidfile /data/dockerData/redis/run/redis6379.pid  #默认为no,redis持久化,可以改为yes
appendonly yes#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000# 按需求调整 Redis 线程数
tcp-backlog 511# 设置数据库数量,这里设置为16个数据库  
databases 16# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128# 是否记录系统日志,默认为yes  
syslog-enabled yes  #指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice# 日志输出文件,默认为stdout,也可以指定文件路径  
logfile stdout# 日志文件
#logfile /var/log/redis/redis-server.log# 系统内存调优参数   
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64


 6 启动redis容器

docker run -p 6379:6379 --name redis -d redis:latest --restart=always \-v /mnt/data/redis/conf/redis.conf:/etc/redis/redis.conf \-v /mnt/data/redis/data:/data \-v /mnt/data/redis/logs:/logs \redis-server /etc/redis/redis.conf


 (七) docker安装mysql


1)拉取镜像

docker pull mysql:8.0.27

2)查看所拉取的镜像

docker images

3) 创建目录 

mkdir /mnt/data/mysql/conf
mkdir /mnt/data/mysql/data
mkdir /mnt/data/mysql/log
mkdir /mnt/data/mysql/mysql-files

4) 创建文件

touch my.cnf

5) 修改文件

[client]
# 端口号
port=3306[mysql]
no-beep
default-character-set=utf8mb4[mysqld]
bind-address = 0.0.0.0
# 端口号
port=3306
# 数据目录
datadir=/var/lib/mysql
# 新模式或表时将使用的默认字符集
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB
# 将 SQL 模式设置为严格
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
#  最大连接数
max_connections=1024
# 表缓存
table_open_cache=2000
# 表内存
tmp_table_size=16M
# 线程缓存
thread_cache_size=10
# 设置大小写不敏感
lower_case_table_names=1# myisam设置
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=0
read_rnd_buffer_size=0# innodb设置
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=48M
innodb_thread_concurrency=33
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
# 其他设置
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000 

# 6 重新创建容器

docker run \
-p 3306:3306 \
--restart=always \
--name mysql \
-v /mnt/data/mysql/logs:/var/log/mysql \
-v /mnt/data/mysql/data:/var/lib/mysql \
-v /mnt/data/mysql/conf:/etc/mysql \
-v /mnt/data/mysql/data/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=1qaz2wsx \
-d mysql:8.0.24

7 进入容器

docker exec -ti mysql /bin/bash 

8 连接mysql 

mysql -u root -p 
entern 回车

9 执行修改root任何ip可以连接并定义密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; 
FLUSH PRIVILEGES;
exit 退出容器 
docker restart mysql 

(八) docker安装jenkins


1)拉取jenkins镜像

docker pull jenkins/jenkins

2)构建jenkins_home作为安装目录

[root@localhost /] mkdir /mnt/data/jenkins_home
[root@localhost /] chmod 777 -R /mnt/data/jenkins_home

3)关闭 selinux

[root@localhost /] getenforce
Enforcing
[root@localhost /] setenforce 0
[root@localhost /] getenforce
Permissive

4 启动容器,映射对应端口号

docker run -u root \
-d --name=jenkins \
-p 8088:8080 \
-p 10240:50000 \
-v /mnt/data/jenkins_home:/var/jenkins_home \
-e JAVA_OPTS="-Dhudson.model.DownloadService.noSignatureCheck=true" \
jenkins/jenkins:lts-jdk8

5 上传jdk,maven 包到/mnt/data/jenkins_home目录下
6 安装git

    docker exec -it <jenkins容器名称或ID> /bin/bashsu rootapt-get update && apt-get install -y git

7 配置构建环境
配置插件镜像地址 https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

8 全局配置jdk home || maven home
JAVA /var/jenkins_home/jdk1.8.0_333
Maven /var/jenkins_home/apache-maven-3.9.9

9 新建项目配置 Source Code Management
https://gitee.com/xxxx/xxxx.git
配置username/password

10 安装Publish over SSH插件 

Manage Jenkins->System Configuration->Publish over SSH (配置并设置宿主机密码)

11  post build action->set build artifacts over ssh

rm -rf /mnt/data/app/*.jar
rm -rf /mnt/data/app/Dockerfile
mv /mnt/data/jenkins_home/workspace/mochat-app/mochat-app/target/*.jar /mnt/data/app/
mv /mnt/data/jenkins_home/workspace/mochat-app/Dockerfile /mnt/data/app/
cd  /mnt/data/app
./deploy.sh
container=`docker ps -a |grep helloworld | awk '{print $1}'`
echo $container
if [ "$container" != "" ] ; thendocker stop $containerdocker rm $container
fi
image=`docker images |grep mochat | awk '{print $3}'`
echo image
if [ "$image" != "" ] ; thendocker rmi $image
fi
docker build -t helloworld:v1 .
docker run -d --name helloworld -p 8081:8081 mochat-app:v1
docker image prune -f

至此服务器初始化环境设置完成

清理废弃容器,镜像和网络

docker system prune -a
WARNING! This will remove:- all stopped containers- all volumes not used by at least one container- all networks not used by at least one container- all images without at least one container associated to them

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

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

相关文章

LangChain4j语言模型选型指南:主流模型能力全景对比

LangChain4j语言模型选型指南&#xff1a;主流模型能力全景对比 前言 在大语言模型应用开发中&#xff0c;选择合适的底层模型提供商是架构设计的关键决策。LangChain4j作为Java生态的重要AI框架&#xff0c;其支持的20模型提供商各有独特的优势场景。本文通过功能矩阵深度解…

2025.4.21日学习笔记 JavaScript String、Array、date、math方法的使用

1. String&#xff08;字符串&#xff09; String 对象用于处理和操作文本数据。 length&#xff1a;返回字符串的长度。 const str "Hello"; console.log(str.length); // 输出: 5 charAt(index)&#xff1a;返回指定索引位置的字符。 const str "Hello…

(14)VTK C++开发示例 --- 将点投影到平面上

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 计算一个点在一个平面上的投影。 vtkPlane 是 VTK&#xff08;Visualization Toolkit&#xff09;库中的一个类&…

电子电器架构 ---软件定义汽车的电子/电气(E/E)架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

Android开发中的复制和粘贴

Android 提供了一个强大的基于剪贴板的框架&#xff0c;用于复制和粘贴。它支持简单和复杂的数据类型&#xff0c;包括文本字符串、复杂数据结构、文本和二进制流数据&#xff0c;以及应用资源。简单的文本数据直接存储在剪贴板中&#xff0c;而复杂的数据则存储为引用&#xf…

【STM32单片机】#10.5 串口数据包

主要参考学习资料&#xff1a; B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装&#xff1a;STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…

百度暑期实习岗位超3000个,AI相关岗位占比87%,近屿智能携AIGC课程加速人才输出

今年3月&#xff0c;百度重磅发布3000暑期实习岗位&#xff0c;聚焦大模型、机器学习、自动驾驶等AI方向的岗位比例高达87%。此次实习岗位涉及技术研发、产品策划、专业服务、管理支持、政企解决方案等四大类别&#xff0c;覆盖超300个岗位细分方向。值得一提的是&#xff0c;百…

vue3 + element-plus中el-dialog对话框滚动条回到顶部

对话框滚动条回到顶部 1、需要对话框显示后 2、使用 nextTick 等待 Dom 更新完毕 3、通过开发者工具追查到滚动条对应的标签及class“el-overlay-dialog” 4、设置属性 scrollTop 0 或者 执行方法 scrollTo(0, 0) // 对话框显示标识 const dialogVisible ref(false); //…

C++学习之游戏服务器开发十一DOCKER的基本使用

目录 1.多实例部署方案 2.容器的概念 3.docker初识 4.docker仓库 5.docker镜像 6.docker容器 7.docker和虚拟机的区别 8.docker命令解释 9.dockerfile构建镜像 10.离线分发镜像 1.多实例部署方案 redis 命令&#xff08; redis-cli XXXX &#xff09; set key value:…

2025.4.21总结

工作&#xff1a;开了一场关于大模型版本的会议&#xff0c;回归一个问题单&#xff0c;提了两个单&#xff0c;把用例都执行完。如今都四月中旬了&#xff0c;上班年快要结束了&#xff0c;该到了冲刺KPI的时候了。 今日思考&#xff1a;刷到了jack叔叔的视频&#xff0c;讲了…

vite安装及使用

没特殊要求的项目,还是怎么简单怎么来╮(╯▽╰)╭ 一、Vite 基础知识 1. 什么是 Vite? Vite 是一个前端构建工具,专注于开发服务器速度和优化构建过程。特点: 快速冷启动:利用 ES 模块的原生支持,实现快速的开发服务器启动。即时热更新:在开发过程中,修改代码后可以…

ubuntu下gcc/g++安装及不同版本切换

1. 查看当前gcc版本 $ gcc --version# 查看当前系统中已安装版本 $ ls /usr/bin/gcc*2. 安装新版本gcc $ sudo apt-get update# 这里以版本12为依据&#xff08;也可以通过源码方式安装&#xff0c;请自行Google&#xff01;&#xff09; $ sudo apt-get install -y gcc-12 g…

cdq 系列 题解

从二维数点&#xff08;二维偏序&#xff09;到三维偏序。 用 cdq 分治可以解决二维数点问题。 1.洛谷 P1908 逆序对 题意 求所有数对 ( i , j ) (i,j) (i,j) 的个数&#xff0c;满足 i < j i<j i<j 且 a i > a j a_i>a_j ai​>aj​。 1 ≤ n ≤ 5 1…

计算机组成与体系结构:内存接口(Memory Interface)

目录 什么是内存接口 &#xff1f; 为什么需要特别设计“接口”&#xff1f; 什么是 MIPS&#xff1f;为什么它和内存接口有关&#xff1f; 内存接口的两种访问方式 串行访问&#xff08;Serial Access Model&#xff09; 并行访问&#xff08;Parallel Access Model&…

Java面试(2025)—— Spring MVC

什么是Spring MVC Spring MVC 是 Spring 框架的一个 基于 Java 的 Web 开发模块&#xff0c;它实现了 MVC&#xff08;Model-View-Controller&#xff09;架构模式&#xff0c;用于构建灵活、松耦合的 Web 应用程序。 它是 Spring 生态的核心组件之一&#xff0c;通过简化 HTT…

天翼云手机断开连接2小时关机

2025-04-21 天翼云手机断开连接2小时自动 天翼云手机 4元1个月 天翼云手机永不关机 天翼云手机不休眠 天翼云手机断开连接时&#xff0c;界面显示&#xff1a;离线运行&#xff0c;2小时后自动关机 电脑每小时自动连接一次 手机每小时自动连接一次

Redis——数据结构

目录 1.动态字符串SDS 1.1SDS底层源码 1.2 SDS动态扩容 1.3动态字符串SDS优点 2.IntSet 2.1底层结构 2.2有序性 2.3.IntSet结构扩容 2.4总结 3.Dict 3.1底层结构 3.2.Dict扩容 3.3Dict收缩 3.4.Dict的rehash 1.分配空间 2. 设置 rehashidx 3. 渐进式 rehash…

C++ GPU并行计算开发实战:利用CUDA/OpenCL加速粒子系统与流体模拟

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

LeetCode算法题(Go语言实现)_54

题目 给你两个正整数数组 spells 和 potions &#xff0c;长度分别为 n 和 m &#xff0c;其中 spells[i] 表示第 i 个咒语的能量强度&#xff0c;potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药水的能量强度 相乘 如果 大于等于 success &a…

内网穿透快解析免费开放硬件集成SDK

一、行业问题 随着物联网技术的发展&#xff0c;符合用户需求的智能硬件设备被广泛的应用到各个领域&#xff0c;而智能设备的远程运维管理也是企业用户遇到的问题 二、快解析内网穿透解决方案 快解析是一款内网穿透产品&#xff0c;可以实现内网资源在外网访问&#xff0c;…