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

2023-12-13 16:35:45

目录

安装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/docker


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

10、重启docker后台运行线程以及重启容器服务:

sudo systemctl daemon-reload

sudo 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

文章来源:https://blog.csdn.net/weixin_53142722/article/details/134802377
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。