服务器项目部署

1. 云服务器相关

购买的是阿里云服务器, 最初使用的是阿里自研系统 Alibaba Cloud Linux 3 , 但是部署docker的时候有问题, 当时官方文档上也没有解决方案, 就将系统更换成了CentOS 8

2. 部署docker

文档之述备矣

centos 8 部署
alibaba cloud linux 3 部署
alibaba cloud linux 2 部署

3. docker命令简介

启动docker : systemctl start docker

停止docker :systemctl stop docker

重启docker :systemctl restart docker

查看docker状态 :systemctl status docker

开机启动 :systemctl enable docker

查看镜像 : docker images

搜索镜像 : docker search ${image_name}

删除镜像 : docker rmi ${image_name}

拉取镜像 : docker pull ${image_name}

推送镜像 : docker push ${image_name}

查询容器 : docker ps (-a …)

创建容器 : docker run (-v -name -p …)

进入容器 : docker exec -it ${container_name} /bin/bash

运行容器 : docker start ${container_name}

停止容器 : docker stop ${container_name}

重启容器 : docker restart ${container_name}

删除容器 : docker rm ${container_name}

拷贝文件 : docker cp /${master_location} ${container_name}:/{container_location} 可以颠倒,双向拷贝

查看容器ip : docker inspect ${container_name}

4. 部署mysql数据库

4.1 拉取数据库镜像
docker pull mysql:5.7
4.2 查看镜像是否拉取成功
dokcer images
4.3 创建mysql容器
docker run -di --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
4.4 开启远程访问
1. 进入mysql容器
docker exec -it mysql /bin/bash

2. 登录
mysql -uroot -p123456

3. 开启远程访问 (设置远程访问密码)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

4. 刷新配置
flush privileges;
4.5 使用navicat进行连接测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5T4pRSY0-1628836079668)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210813111653956.png)]

5. 部署后台项目

使用的是maven插件构建镜像

5.1 构建jdk1.8的镜像

整体流程是, 在centos7容器中添加jdk1.8的压缩包, 在其中解压后,配置运行环境 , 部署jdk成功后, 将该容器打包为镜像, 方便日后直接使用

1. 拉取centos7镜像
docker pull centos:7

2. 使用工具上传jdk安装包`jdk-8u171-linux-x64.tar.gz`到云服务器某个目录下

3. 构建一个 Dockerfile 脚本,命名 Dockerfile 内容如下:
FROM centos:7
MAINTAINER qiuming
WORKDIR /usr
RUN mkdir /usr/local/java
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

4. 将脚本文件和jdk的压缩包放在同一目录下,构建镜像
docker build -t="jdk1.8" ./

5. 查看镜像是否构建完成
docker images
5.2 开启Docker远程访问
1. 修改docker配置
vi /lib/systemd/system/docker.service 

2. 在ExecStart后添加配置
-H tcp://0.0.0.0:15675 -H unix://var/run/docker.sock

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kQmKgfA2-1628836079670)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210813114015149.png)]

3. 刷新配置,并且重启服务
systemctl daemon-reload 
systemctl restart docker 
5.3 在项目的maven中增加docker插件
<build>
    <finalName>upload</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!--docker的maven插件-->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <!--镜像名 upload:1.0-->
                <imageName>${project.artifactId}:${project.version}</imageName>
                <!--基础镜像-->
                <baseImage>jdk1.8:latest</baseImage>
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}
                        </directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
                <!--docker远程主机,需要换成云服务器配置的docker远程连接端口-->
                <dockerHost>http://12...40:15675</dockerHost>
            </configuration>
        </plugin>
    </plugins>
</build>
5.4 构建项目镜像
mvn clean package -Dmaven.test.skip=true docker:build
5.5 等待构建镜像完成后 查看镜像
docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aMyQl0gr-1628836079672)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210813132400582.png)]

5.6 启动容器命令
  1. 没有额外配置文件
docker run -id --name=upload -p 8888:8888 upload:1.0-SNAPSHOT
  1. 存在配置文件
docker run -id --name=upload -v /usr/qiu/upload/cloud:/usr/qiu -p 8888:8888 upload:1.0-SNAPSHOT

6. 部署前端项目

6.1 拉取Nginx镜像
docker pull nginx
6.2 创建配置文件及日志文件夹

nginx是支持热部署的,因此在部署前端项目无需每次都重新创建容器, 因此可以将配置文件, 前端页面 , 日志文件都使用路径映射到宿主机上, 直接修改宿主机的配置, 即可修改nginx容器内部的配置和页面信息, 将日志也可以导出到宿主机上, 方便查看日志

  1. 创建日志文件夹
mkdir /usr/qiu/nginx/log
  1. 创建存放前端页面文件夹
mkdir /usr/qiu/nginx/location
  1. 创建配置文件夹和文件
mkdir /user/qiu/nginx/conf.d

vim /user/qiu/nginx/conf.d/defualt.conf
6.3 创建nginx容器
docker run -d --name nginx -v /usr/qiu/nginx/log:/var/log/nginx -v /usr/qiu/nginx/location:/usr/qiu/nginx -v /usr/qiu/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -p 80:80 nginx
6.4 引入页面,修改配置

直接将打包好的页面拖到/usr/qiu/nginx/location文件夹中

将配置文件替换到 /usr/qiu/nginx/conf.d/default.conf 文件中

7. 测试

访问首页

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mq3IAAPm-1628836079673)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210813142512089.png)]

登录系统
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值