【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.pswp.cn/pingmian/77616.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77616.shtml
英文地址,請注明出處:http://en.pswp.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;…