阿里云(云服務器)上搭建項目部署環境

目錄

安裝docker

docker安裝MySQL5.7.37

安裝MySQL

方式一:docker中MySQL時區調整

方式二:docker中MySQL時區調整

docker安裝MySQL8.0.27

docker安裝redis5.0.14

云服務器上安裝jdk1.8


安裝docker

1、先卸載docker,因為有一些服務器上存在已經安裝好的docker

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

如果之前沒有安裝過,出現的內容如下:

2、執行安裝yum-utils指令

sudo yum install -y yum-utils

3、配置docker的地址,就是指定repo所在地

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、安裝docker,中途遇到的讓你輸入y/n的,都輸入 y 就行。

sudo yum install docker-ce docker-ce-cli containerd.io

5、啟動docker

sudo systemctl start docker

6、查看docker版本號

docker -v

查看目前有哪些鏡像: docker images

說明目前是空的。

7、設置docker開機自動啟動

systemctl enable docker

8、重啟docker

sudo systemctl restart docker

9、配置阿里鏡像加速

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://e515yx9g.mirror.aliyuncs.com"]
}
EOF

10、重啟docker后臺運行線程以及重啟容器服務:

sudo systemctl daemon-reloadsudo systemctl restart docker

這樣一來,后續拉取一些軟件的鏡像,就是從阿里云鏡像中拉取的了,速度也會非常快。

11、其他指令

# 查看鏡像
docker images# 刪除鏡像
docker rmi 7614ae9453d1
或者是
docker rmi redis:latest# 刪除容器中的鏡像
docker rm 容器id

docker安裝MySQL5.7.37

安裝MySQL

先拉取鏡像:

docker pull mysql:5.7.37

然后這里估計需要等待很長一段時間,看自己網速。

安裝完畢之后,使用docker images 查看鏡像。

0、添加初始化配置文件:(這一步可用,可不用,看自己需求)

# 創建文件夾
mkdir -p /docker/mysql/conf
# 編輯/填加配置文件
vim /docker/mysql/conf/my.cnf
# 在配置文件中加入以下語句
[client]
default_character_set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8

1、運行掛載MySQL:

docker run -p 3306:3306 \
--privileged=true \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
--name mysql \
-d mysql5.7.37

指令解釋:

  • docker run: 運行一個容器,每個容器相互隔離,是獨立的運行環境,是一個完整的實例。

  • -p 3306:3306:把mysql容器自己的端口映射到虛擬主機,這樣我們才能訪問,這是端口映射。(左側是本地端口:右側是docker容器里的端口)

  • –name mysql:為MySQL容器取名。

  • -v:文件路徑的掛載。(數據庫文件,日志,配置文件)

2、啟動MySQL服務:docker start mysql

3、登錄MySQL實例 或者是 直接使用navicat連接查看是否可以連接成功也行。

docker exec -it mysql /bin/bash # 進入MySQL實例
mysql -uroot -proot # 登錄MySQL

方式一:docker中MySQL時區調整

注意:使用鏡像安裝的MySQL,可能MySQL的時區會與自己本地的時區不一致,所以需要自己檢查一下,一般來說,可能會被上海時間慢8個小時。

1、先查看目前MySQL的時間,是否與本地電腦一致

# 查看MySQL的容器Id
docker ps# 查看指定容器的當前時間,如果與上海時間一致,就不用管了,如果不一致的話,那就需要調整
docker exec -it 2剛剛查詢出來的MySQL容器id date

2、查看宿主機的時間是否正確

timedatectl

發現宿主機的時區是正常的,所以我們就可以直接讓MySQL的時間按照宿主機的時間來。

如果宿主機不是上海時區,那么就需要先調整宿主機的時區:使用 timedatectl 查看時區

使用指令修改為上海時區:

sudo timedatectl set-timezone Asia/Shanghai

再次查看宿主機的時區:timedatectl

3、調整MySQL的時區

# 進入MySQL容器中  mysql容器id可以使用 docker ps進行查詢
docker exec -it MySQL容器id bash# 使用 ln 命令創建時區鏈接,比如對于上海時區:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 退出容器
exit# 重新查詢MySQL容器的時間是否設置成功
docker exec -it  mysql容器id  date# 然后再navicat中關閉這個數據庫的連接,然后重新連接,然后就可以了

方式二:docker中MySQL時區調整

直接在容器啟動的時候設置時區。

# 先查看MySQL的容器Id
docker ps # 設置時區
docker run -e TZ=Asia/Shanghai MySQL容器id# 停止MySQL容器
docker stop MySQL的容器Id或者是MySQL容器的名稱# 重新啟動
docker start MySQL的容器Id或者是MySQL容器的名稱# 驗證時區是否正確設置
docker exec -it  MySQL的容器Id或者是MySQL容器的名稱 date

docker安裝MySQL8.0.27

1、docker pull mysql:8.0.27

2、檢查鏡像是否存在:docker images

3、創建準備掛載的文件夾,-p 選項,該選項的作用是當目錄已經存在時不報錯,而是以靜默方式跳過。

mkdir /home/mysql8/log -p
mkdir /home/mysql8/data -p
mkdir /home/mysql8/conf -p
mkdir /home/mysql8/mysql-files -p

4、啟動MySQL容器,這里自己指定自己的密碼,我們就指定為 root就行。

docker run -p 3306:3306 --name mysql \
-v /home/mysql8/log:/var/log/mysql \
-v /home/mysql8/data:/var/lib/mysql \
-v /home/mysql8/conf:/etc/mysql \
-v /home/mysql8/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.27 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

5、修改MySQL的配置文件

vim /home/mysql8/conf/my.cnf

添加如下內容:

[client]
port=3306
default_character_set=utf8mb4[mysql]
default_character_set=utf8mb4[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake  #  忽略客戶端的字符集,使用服務器的設置

6、重啟MySQL容器

docker restart mysql

7、使用navicat進行連接MySQL

docker安裝redis5.0.14

1、拉取鏡像,提前創建配置文件,進行數據掛載

# 拉取指定版本的redis鏡像
docker pull redis:5.0.14# 提前創建配置redis配置文件存放處
mkdir -p /home/redis5.0.14/conf
touch /home/redis5.0.14/conf/redis.conf# 執行redis數據掛載
docker run -p 6379:6379 --name redis \
-v /home/redis5.0.14/data:/data \
-v /home/redis5.0.14/conf/redis.conf:/etc/redis/redis.conf \
-d redis:5.0.14 \
redis-server /etc/redis/redis.conf

如圖:

指令解釋:

  • 用6379做好端口映射,用redis作為服務容器的名字

  • data和conf做好目錄映射

  • -d 后臺運行

  • 指定配置文件運行redis-server

2、修改redis.conf? ?這里的redis.conf的位置就是我們第一步創建的redis.conf的位置

vim /home/redis5.0.14/conf/redis.conf

目前redis.conf中配置為空,所以數據無法持久化,我們可以使用aof或者rdb來進行持久化。添加如下內容:root是我們設置的密碼

requirepass root
appendonly yes

然后重新啟動:docker restart redis

如果不小心都創建了一個實例,可以使用下面的方式進行刪除:

3、為redis服務設置跟隨docker重新啟動:

docker update redis --restart=always

重新啟動容器:systemctl restart docker

然后使用docker ps -a 查詢容器中服務啟動狀態,看 status這個時間就知道了。

4、使用redis客戶端進行連接測試

云服務器上安裝jdk1.8

官網下載,但是需要有oracle賬號才可以進行下載,或者是從其他地方獲取到這個 jdk的Linux安裝包也行。

Java Downloads | Oracleicon-default.png?t=N7T8https://www.oracle.com/java/technologies/downloads/#java8

1、把下載好的jdk安裝包上傳到服務器上,自己選擇一個文件夾上傳.gz的jdk文件,比如你把jdk上傳到 /user/java/ 文件夾下,然后你需要進入到/user/java/ 這個文件夾執行下面的解壓指令,解壓到指定的目錄/home/jdk/

tar -zxvf jdk-8u341-linux-x64.tar.gz -C /home/jdk/

2、使用 which java 可以查看java可執行文件的路徑,我們需要的是bin的上一級路徑,/home/jdk/jdk1.8.0_341

3、配置環境變量

# 配置環境變量
vim /etc/profile #輸入指令編輯etc/profile文件# 向文本最后插入以下幾行
export JAVA_HOME=/home/jdk/jdk1.8.0_341  # 剛剛使用which java獲取到的bin的上級路徑
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/Lib:${JRE_HOME}/Lib
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}# 保存這個profile文件  按esc進入指令模式  輸入 :wq 然后回車進行保存,如果不想保存可以使用 q! 然后回車# 刷新配置
source /etc/profile

?3、# 測試是否安裝成功? ?java -version

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211048.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211048.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211048.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

西南科技大學C++程序設計實驗十(函數模板與類模板)

一、實驗目的 1. 掌握函數模板與類模板; 2. 掌握數組類、鏈表類等線性群體數據類型定義與使用; 二、實驗任務 1. 分析完善以下程序,理解模板類的使用: (1)補充類模板聲明語句。 (2)創建不同類型的類對象,使用時明確其數據類型? _template<typename T>__…

c-語言->數據在內存的存儲

系列文章目錄 文章目錄 系列文章目錄前言 前言 目的&#xff1a;學習整數在內存的儲存&#xff0c;什么是大小端&#xff0c;浮點數的儲存。 1. 整數在內存中的存儲 在講解操作符的時候&#xff0c;我們就講過了下?的內容&#xff1a; 整數的2進制表??法有三種&#xff0…

設計模式之觀察者模式(主題對象發生變化,通知各個觀察者)

當涉及到電商場景時&#xff0c;觀察者模式可以用于處理多種情況&#xff0c;比如訂單狀態更新、庫存變化、用戶積分變化等。下面是一個簡化的訂單狀態更新的觀察者模式案例。 1.首先&#xff0c;定義一個主題接口 OrderSubject /*** Description:主題&#xff0c;用于管理觀察…

基于Java會員管理系統

基于Java會員管理系統 功能需求 1、會員信息管理&#xff1a;該系統需要提供會員信息管理功能&#xff0c;包括會員的姓名、性別、年齡、聯系方式等基本信息。同時&#xff0c;還需要提供會員的消費記錄、積分、優惠券等信息的管理。 2、會員注冊和登錄&#xff1a;系統需要…

動手學習深度學習-跟李沐學AI-自學筆記(3)

一、深度學習硬件-CPU和GPU 芯片&#xff1a;Intel or AMD 內存&#xff1a;DDR4 顯卡&#xff1a;nVidia 芯片可以和GPU與內存通信 GPU不能和內存通信 1. CPU 能算出每一秒能運算的浮點運算數&#xff08;大概0.15左右&#xff09; 1.1 提升CPU利用率 1.1.1 提升緩存…

自動駕駛學習筆記(十六)——目標跟蹤

#Apollo開發者# 學習課程的傳送門如下&#xff0c;當您也準備學習自動駕駛時&#xff0c;可以和我一同前往&#xff1a; 《自動駕駛新人之旅》免費課程—> 傳送門 《Apollo 社區開發者圓桌會》免費報名—>傳送門 文章目錄 前言 匹配關聯 軌跡記錄 狀態預測 總結 前…

【文件上傳系列】No.2 秒傳(原生前端 + Node 后端)

上一篇文章 【文件上傳系列】No.1 大文件分片、進度圖展示&#xff08;原生前端 Node 后端 & Koa&#xff09; 秒傳效果展示 秒傳思路 整理的思路是&#xff1a;根據文件的二進制內容生成 Hash 值&#xff0c;然后去服務器里找&#xff0c;如果找到了&#xff0c;說明已經…

【智能家居】七、人臉識別 翔云平臺編程使用(編譯openSSL支持libcurl的https訪問、安裝SSL依賴庫openSSL)

一、翔云 人工智能開放平臺 API文檔開發示例下載 二、編譯openSSL支持libcurl的https訪問 安裝SSL依賴庫openSSL(使用工具wget)libcurl庫重新配置&#xff0c;編譯&#xff0c;安裝運行&#xff08;運行需添加動態庫為環境變量&#xff09; 三、編程實現人臉識別 四、Base6…

12.4每日一題(備戰藍橋杯順序結構程序設計)

12.4每日一題&#xff08;備戰藍橋杯順序結構程序設計&#xff09; 題目1000: 【入門】AB Problem題目描述輸入輸出樣例輸入樣例輸出來源/分類 題解 1000: 【入門】AB Problem題目 2124: 計算(ab)c的值題目描述輸入輸出樣例輸入樣例輸出來源/分類 題解 2124: 計算(ab)c的值題目…

UML案例分析

首先需要花大約20分鐘來思考解決這個問題&#xff0c;如果對問題不是很熟悉&#xff0c;也可以在完成題目之后&#xff0c;找相關的資料翻閱&#xff08;例如看UML類圖的基本情況&#xff0c;UML狀態圖的基本情況&#xff0c;然后結合這些信息 做一個自我評價&#xff0c;看這個…

matlab 最小二乘擬合空間直線(方法三)

目錄 一、算法原理1、算法過程2、參考文獻二、代碼實現三、結果展示四、相關鏈接博客長期更新,GPT與爬蟲自重,你也未必能爬到最新版本。 一、算法原理 1、算法過程 空間直線的點向式方程為:

poe與chatgpt那個功能更強大

在當前的人工智能領域&#xff0c;Poe Al Chat以其卓越的聊天能力和實用的功能&#xff0c;受到了大家的廣泛關注和喜愛。本文好為您個紹Poe Al Chat的功能&#xff0c;以及我們國內用戶如何進行充值訂閱。Poe Al Chat是一個基于OpenAl的GPT模型開發的人工智能聊天工具。它能夠…

基于Springboot的校園失物招領系統(有報告)。Javaee項目,springboot項目。

演示視頻&#xff1a; 基于Springboot的校園失物招領系統&#xff08;有報告&#xff09;。Javaee項目&#xff0c;springboot項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系結構…

Docker鏡像和容器的簡單操作

1.鏡像管理 搜索鏡像&#xff1a; 這種方法只能用于官方鏡像庫 搜索基于 centos 操作系統的鏡像 # docker search centos 按星級搜索鏡像&#xff1a; 查找 star 數至少為 100 的鏡像&#xff0c;默認不加 s 選項找出所有相關 ubuntu 鏡像&#xf…

為 setTimeout 或 setInterval 提供一個字符串作為第一個參數(js的問題)

首先&#xff0c;需要知道的是為 setTimeout 或 setInterval 提供一個字符串作為第一個參數&#xff0c;這本身并不是一個錯誤。它是完全合法的JavaScript代碼。這里的問題更多的是性能和效率的問題。很少有人解釋的是&#xff0c;如果你把字符串作為setTimeout或setInterval的…

46.0/基本的 HTML 標簽(詳細版)

目錄 46.1 標題 46.2 段落 Paragraph, 46.3 換行 46.4 HTML 注釋 46.5 空格 46.6 水平線 46.7 控制網頁中文字的標記 46.8 居中標記 46.9 預格式化文本 46.10 網頁背景 46.1 標題 標記解釋 標題使用 <h1> 至 <h6> 標簽進行定義。 <h1> 定…

uniapp如何制作一個收縮通訊錄(布局篇)

html&#xff1a; <view class"search"><view class"search_padding"><u-search change"search" placeholder"請輸入成員名稱" v-model"keyword"></u-search></view></view> <view…

C語言有哪些預處理操作?

C語言的預處理是在編譯之前對源代碼進行處理的階段&#xff0c;它主要由預處理器完成。預處理器是一個獨立的程序&#xff0c;它負責對源代碼進行一些文本替換和處理&#xff0c;生成經過預處理的代碼。以下是C語言預處理的一些重要特性&#xff1a; 1&#xff0c;頭文件包含 #…

Ansible中執行流控制

1.ansible中的迭代循環 創建目錄和文件 vim createfile.yaml - name: create file playbook hosts: all tasks: - name: create file file: path: "/mnt/{{item[name]}}" state: …

Unity 自定義窗口

放在Editor文件夾下&#xff1b; #if UNITY_EDITORusing System; using UnityEditor; using UnityEngine;namespace EditorCustumTool {/// <summary>/// 自定義窗口/// </summary>public class CustomWindow : EditorWindow{public enum FlagType{Flag1 101,Fl…