【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

Lua 复制代码
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

  1. 检查安装结果

docker --version

Docker version 1.13.1, build 7d71120/1.13.1

4 启动 Docker 后台服务

service docker start

5 配置docker镜像加速器

‌修改Docker配置文件‌

创建或编辑/etc/docker/daemon.json文件,添加镜像加速器地址:

Lua 复制代码
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

Lua 复制代码
# 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

  1. 创建目录

mkdir /mnt/data/mysql/conf

mkdir /mnt/data/mysql/data

mkdir /mnt/data/mysql/log

mkdir /mnt/data/mysql/mysql-files

  1. 创建文件

touch my.cnf

  1. 修改文件
php 复制代码
[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 退出容器

10 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/bash
    su root
    apt-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" != "" ] ; then
    docker stop $container
    docker rm $container
fi
image=`docker images |grep mochat | awk '{print $3}'`
echo image
if [ "$image" != "" ] ; then
    docker rmi $image
fi
docker build -t helloworld:v1 .
docker run -d --name helloworld -p 8081:8081 mochat-app:v1
docker image prune -f

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

相关推荐
HLC++2 分钟前
Linux的进程间通信
android·linux·服务器
白露与泡影1 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙2 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码2 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
C^h3 小时前
python函数学习
人工智能·python·机器学习
生活爱好者!3 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
Fanta丶3 小时前
4.Python set()集合、dict(字典、映射)、 数据容器的通用功能
python
决战灬3 小时前
langgraph之interrupt(理论篇)
人工智能·python·agent
兜客互动3 小时前
2026年AI关键词拓展挖掘软件,高效助力内容创作精准获流
人工智能·python
weixin_538601973 小时前
智能体测开Day30pytest测试框架
python