阿里云(云服务器)上搭建项目部署环境

目录

安装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.mzph.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…

动手学习深度学习-跟李沐学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;三层体系结构…

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…

【基于ESP32无线蓝牙上传电脑Excel透传数据】

【基于ESP32无线蓝牙上传电脑透传数据】 1. 引言2. 环境搭建2.1 硬件准备:2.2 软件准备:2.3. 配置Excel端口接收功能3. 测试代码4. 连接电脑和 ESP324.1 烧录程序4.2 启动蓝牙服务4.3 测试数据透传5. 总结1. 引言 随着物联网技术的发展,越来越多的设备开始支持无线通信,其…

fl studio2024官方体验版如何破解?

fl studio2024全称Fruity Loops Studio2024&#xff0c;这款软件也被人们亲切的称之为水果&#xff0c;它是一款功能强大的音乐创作编辑软件&#xff0c;拥有全功能的录音室&#xff0c;大混音盘以及先进的音乐制作工具&#xff0c;用户通过使用该软件&#xff0c;就可以轻松制…

轻量封装WebGPU渲染系统示例<43>- 材质组装流水线(MaterialPipeline)之灯光和阴影(源码)

目标: 数据化&#xff0c;模块化&#xff0c;自动化 备注: 从这个节点开始整体设计往系统规范的方向靠拢。之前的都算作是若干准备。所以会和之前的版本实现有些差异。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sa…

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(2020)

文章目录 -Abstract1. Introductiondiss former methodour method 2. Related Work3. Compound Model Scaling3.1. 问题公式化3.2. Scaling Dimensions3.3. Compound Scaling 4. EfficientNet Architecture5. Experiments6. Discussion7. Conclusion 原文链接 源代码 - 本文中…

LeNet

概念 代码 model import torch.nn as nn import torch.nn.functional as Fclass LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__() # super()继承父类的构造函数self.conv1 nn.Conv2d(3, 16, 5)self.pool1 nn.MaxPool2d(2, 2)self.conv2 nn.Conv2d(16…