标注项目docker部署

本文详细介绍了如何在Linux环境中安装Docker,然后部署包括Spring Boot应用、Vue前端、MySQL数据库在内的项目。涉及镜像构建、Dockerfile编写、数据导入以及前后端服务的配置与启动。同时,还涵盖了Redis的部署,以及通过Docker部署Vue应用的步骤。
摘要由CSDN通过智能技术生成

一、项目目录结构

/home
	/spring-boot-docker
		/bz_705.sql
		/Dockerfile
		/Hanlp
		/files
		/lt-main-0.0.1-SNAPSHOT.jar
	/vue-docker
		/Dockerfile
		/dist

二、安装docker

参考链接: CentOS7.6安装docker.

//下均为root账户操作,否则请在下边的命令前加sudo

//1.查看Linux核心版本,3.10版本及以上才可以安装docker。
uname -r
//2.更新yum包(可以不用)
yum update
//3.查看docker是否曾经安装过
whereis docker
//如果安装过,则删除之前的版本
yum remove docker docker-common docker-selinux docker-engine
//4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
//5.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//6.查看docker版本,一般使用稳定版
yum list docker-ce --showduplicates | sort -r
//7.安装docker   默认安装最新版本
yum install docker-ce
//安装某特定版本需增加版本号(如18.06.3.ce-3.el7)
yum install docker-ce-18.06.3.ce
//8.启动docker
systemctl start docker
//9.开机启动
systemctl enable docker
//10. 验证安装是否成功   存在Client和Server则成功
docker version

三、文件准备(忽略)

1、后端准备

1)修改配置文件

LabelingTool 后端 lt-main模块下的配置文件,修改hanlp.properties中

//linux  docker下hanlp路径
root=/usr/Hanlp

2)后端打成jar包

其中,注意在lt-main模块下的pom.xml里面申明打包插件和全局入口。

<plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
         <!-- 指定该Main Class为全局的唯一入口 -->
         <mainClass>cn.njust.label.main.LtMainApplication</mainClass>
         <layout>ZIP</layout>
     </configuration>
     <executions>
         <execution>
             <goals>
                 <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
             </goals>
         </execution>
     </executions>
</plugin>

打包完成,你将在lt-main的target目录下看到

lt-main-0.0.1-SNAPSHOT.jar

2、前端准备

// 在前端项目的根目录下执行
vue-cli-service build
//然后将dist文件夹打成zip压缩包

注意在前端源代码 vue.config.js里面最后一行的 “/”:"/"

publicPath:process.env.NODE_ENV==="production"?"/":"/"

会对Dockerfile里面

COPY dist/ /usr/share/nginx/html/

这一项产生影响 !

3、拷贝文件

1)后端文件

在/home下创建目录 spring-boot-docker

cd /home
sudo mkdir spring-boot-docker

PS:

//安装支持ZIP的工具
yum install -y unzip zip
//把文件解压到当前目录下
unzip data.zip
//如果要把文件解压到指定的目录下,需要用到-d参数。
unzip -d Hanlp data.zip

在目录 spring-boot-docker 复制四个文件 bz_705.sql 、 lt-main-0.0.1-SNAPSHOT.jar 、 Hanlp文件夹 和 Dockfile文件。

ls
//bz_0628.sql  data.zip  Dockerfile  Hanlp  lt-main-0.0.1-SNAPSHOT.jar

其中,后端的Dockerfile文件内容如下:

# 使用 JDK 8 环境为基础环境,如果镜像不是本地的将会从 DockerHub 进行下载
FROM openjdk:8-jdk-alpine
# 在宿主机的 /var/lib/docker 目录下创建一个临时文件并把它链接到 tomcat 容器的工作目录 /tmp目录
VOLUME /tmp
# 复制文件并重命名 lt-main-0.0.1-SNAPSHOT.jar 表示打包后的 jar 包名称
ADD lt-main-0.0.1-SNAPSHOT.jar app.jar
# 为了缩短Tomcat启动时间,添加 java.security.egd 的系统属性指向 /dev/urandom 作为ENTRYPOINT
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

2)前端文件

在/home下创建目录 vue-docker

cd /home
sudo mkdir vue-docker

向该文件夹里拷贝

dist.zip

和前端的Dockerfile

# 以官方的nginx镜像为基础进行构建
FROM nginx
# 将当前dockerfile所在目录下的dist目录的内容拷贝到容器的/usr/share/nginx/html/COPY dist/ /usr/share/nginx/html/

3)mysql文件

拷贝sql文件

bz_705.sql

到 /home/spring-boot-docker 目录下

四、部署mysql

1、拉取mysql镜像

//拉取镜像
docker pull mysql:5.7
//查看镜像
docker images
//REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
//mysql        5.7       09361feeb475   7 days ago   447MB

2、构建mysql容器

1)启动mysql容器

docker run -p 3306:3306 --name mysql0707 -e MYSQL_ROOT_PASSWORD=root -it mysql:5.7
//mysql容器开启后,该shell窗口会被占用
//重开一个shell  查看容器
docker ps -a

2)配置容器参数

参考链接: ubuntu18.04 安装 mysql5.7.

// 首先转入管理员权限,输入密码
su do

//进入mysql容器
docker exec -it mysql0707 bash
//root账号密码登录
mysql -uroot -proot
//使用mysql库的user表
use mysql;
select user, authentication_string,plugin from user;
//修改密码
update mysql.user set authentication_string=PASSWORD('root'), plugin='mysql_native_password' where user='root';
//刷新权限
flush privileges;
//退出mysql
exit


//容器内没有安装vim,需要先apt-get安装
apt-get update
apt-get install vim
//修改配置文件,注释掉bind-address = 127.0.0.1
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

//保存退出,然后进入mysql服务,执行授权命令:
$ mysql -uroot -proot
//允许访问
mysql> grant all on *.* to root@'%' identified by 'root' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
//刷新
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
//退出
mysql> exit
Bye

//退出容器
exit

3)导入sql数据到mysql容器

//复制bz_705.sql到mysql容器
sudo docker cp /home/spring-boot-docker/bz_705.sql mysql0707:/usr/bz_705.sql
//进入mysql容器
docker exec -it mysql0707 bash
//root账号密码登录
mysql -uroot -proot
//创建bz数据库
create database bz;
use bz;
//导入数据
source /usr/bz_705.sql;
//展示
mysql> show tables;
//略

PS:
从主机复制到容器sudo docker cp host_path containerID:container_path
从容器复制到主机sudo docker cp containerID:container_path host_path

五、部署jar包

1、部署

1)创建该jar包的镜像

// 首先跳转到jar包所在目录
cd /home/spring-boot-docker
//然后构建它的镜像,命名为spring0707,注意最后有一个点
docker image build -t spring0707 .
//查看镜像
docker images

2)构建并运行容器

使用上一步的镜像构建容器(容器名还是叫 spring0707),并将其和mysql容器(mysql0707)连接

// --link非必须
docker run -p 8080:8080 --name spring0707 --link mysql0707:localhost spring0707

只要后端配置文件里mysql的IP配置了

spring:
  datasource:
    url: jdbc:mysql://1.15.228.180:3306/bz?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai

也可以不用写 --link

docker run -p 8080:8080 --name spring0707 spring0707

3)往容器里拷贝Hanlp和files

上一步肯定会报错,因为该jar包依赖的Hanlp还没装到容器里

// 这里是从主机复制到容器
sudo docker cp /home/spring-boot-docker/Hanlp spring0707:/usr/Hanlp
sudo docker cp /home/spring-boot-docker/files spring0707:/usr/files

4)重启后端容器

重启spring0707容器,等待20秒,等sprig boot 启动完毕

docker restart spring0707
//查看容器
docker ps -a

2、运行

在浏览器输入

http://1.15.228.180:8081/swagger-ui.html#/

六、部署VUE

参考链接: Docker基本使用以及实战部署vue项目.

1、创建nginx镜像

// 从官方下载一个最新的nginx镜像
docker pull nginx

将dist.zip复制到vue-docker目录下,然后解压

cd /home/vue-docker
unzip dist.zip

根据Dockerfile构建出带有dist目录内容的nginx镜像,最后的点号不能少!

# 构建镜像,镜像名为vue0707
docker build -t vue0707 .

查看镜像

docker images

2、创建运行容器

创建好镜像之后,我们就可以基于该镜像创建并运行容器了,如:

# 基于vuenginx运行容器
docker run -itd --name vue0707 -p 8083:80 vue0707
# 查看容器信息
docker ps -a

3、结果

在浏览器内输入

 http://1.15.228.180:8083/

即可访问

七、部署redis

从官网获取镜像

docker pull redis:latest
//检查镜像
docker images

建立并运行容器

// redis默认端口是6379
docker run -d  --name redis0706 -p 6379:6379 redis:latest
//检查容器
docker ps -a

八、运行

浏览器输入

http://1.15.228.180:8083/#/home

即可访问

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值