其他工具|使用docker部署项目(docker的上手、部署mysql、部署spring boot后端)


文章目录

  • 〇、安装vmware、搭建docker
    • 1.安装虚拟机
    • 2.搭建docker
    • 3.常用命令
  • 一、部署mysql
    • 1.从网络拉取镜像
    • 2.创建mysql的容器
    • 3.访问mysql容器
    • 4.导入sql文件到mysql容器中
  • 二、部署spring boot后端
    • 1.打包spring boot 项目
    • 2.在docker中部署jar包
  • 三、部署前端

参考教程:https://www.bilibili.com/video/BV1eo4y1k7Qx?p=3
〇、安装vmware、搭建docker 1.安装虚拟机 先在自己的windows系统的电脑上装一个虚拟机,方便后续学习。
安装教程:https://blog.csdn.net/m0_46680639/article/details/106018321
2.搭建docker Docker官方文档:https://docs.docker.com/
Docker镜像仓库:https://hub.docker.com/search?type=image
Docker镜像仓库国内版:http://hub.daocloud.io/
默认安装路径:/var/lib/docker
安装docker可视化:
3.常用命令
切换到root用户:
在终端输入su然后回车
查看正在运行的docker容器有哪些:
docker ps -a
查看当前操作系统的环境:
cat /etc/redhat-release
查询容器:
docker ps
停止某容器:
docker stop 容器id
删除某容器:
docker rm -f 容器id
删除某镜像:
docker rmi 镜像名
设置容器开机自启动(创建时可能忘了设置):
docker update --restart=always 容器id
安装VM tools用来给虚拟机传入文件:
https://blog.csdn.net/panjiansheng123/article/details/69870211/
安装好之后就可以直接从windows系统中把文件拖到虚拟机桌面里面去了
进入文件:
vim 文件名
修改:
a或i
保存退出:
按esc然后:wq回车
删除文件:
rm 文件名
删除目录:
rm -r 文件名
解压zip:
https://www.sohu.com/a/328563822_120047065
创建文件:
vi 文件名
步骤一:卸载旧的docker以及常用的docker命令
查看docker版本:
docker version或者docker info
查看正在运行的docker容器有哪些(查看是否已经安装了docker):
docker ps -a
或者docker ps
停止docker的运行:
systemctl stop docker
停止某个docker的运行:
docker stop 容器的id
删除某个docker容器:
docker rm -f 容器的id
查看docker的镜像:
docker images
删除docker的镜像:
docker rmi 容器名称
卸载原来的docker:
yum remove -y docker docker-client docker-client-latest docker-common
docker-latest docker-latest-logrotate docker-logrotate
docker-selinux docker-engine-selinux docker-engine
查看端口占用:
https://jingyan.baidu.com/article/656db9183861cde381249c87.html
上面的命令好像没有卸载掉docker,彻底卸载docker的方法:
https://blog.csdn.net/weixin_42294060/article/details/106188759
步骤二:安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
配置yum源:
sudo yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
步骤三:安装并启动docker
安装:
yum -y install docker-ce docker-ce-cli containerd.io
设置docker开机自启动:
systemctl enable docker
查看docker运行状态:
systemctl status docker
启动docker:
systemctl start docker
一、部署mysql 教程参考: https://blog.csdn.net/xsj34567/article/details/80940238
1.从网络拉取镜像
先进入Docker镜像仓库国内版网站:http://hub.daocloud.io/
搜索所需要的镜像,比如mysql
点击进入mysql镜像,点击版本
点击所需要的版本后面的拉取,并复制拉取命令daocloud.io/library/mysql:8.0.20
执行命令时要在拉取命令前面加上docker pull,静静地等待
完成后可以通过docker images命令查看镜像是否拉取成功
2.创建mysql的容器
创建一个目录:
mkdir -p /home/nlp/文档/mysql8020/
容器创建命令(运执行时删掉换行):
docker run -itd -p 3309:3306 --name mysql8020 -v /usr/local/mysqlData/conf:/etc/mysql/conf -v /usr/local/mysqlData/data:/etc/mysql/data -e MYSQL_ROOT_PASSWORD=root --lower-case-table-names=1 mysql:8.0.20
docker run -d --name mysql8020 -h mysql8020
-p 3309:3306
-e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai
-d mysql:8.0.20 --lower-case-table-names=1
解释:
第一行–name后面是容器名字,-h后面是容器的host名字(进去容器之后也相当于一个操作系统)
第二行是端口映射,里面的3306映射到外面宿主是3309
第四行配置mysql密码为root,时区为上海的时区
第五行设置表名忽略大小写,一定要配这个,不配后面是个大坑!
3.访问mysql容器
进入容器:
docker exec -it mysql8020 bash
登录mysql:
mysql -h 127.0.0.1 -u root -p回车再输入前面配置好的密码
或者试试mysql -h localhost -u root -p
远程访问:
mysql -uroot -proot -h172.16.48.93 -p --port=3309
如何修改配置:
坑1:表名大小写问题
https://blog.csdn.net/sinat_36765345/article/details/108769802
坑2:远程访问1251报错
https://blog.csdn.net/u012604745/article/details/80632860
4.导入sql文件到mysql容器中 方法一(强推):
用windows电脑远程连接服务器的mysql容器,然后本地navicat操作,更简单也更不容易出错。
方法二(挺麻烦的):
首先通过u盘等途径将sql文件拷贝至本地文件夹,然后按以下教程执行:https://www.cnblogs.com/denghb/p/12309831.html
我在主目录下新建了文件夹tracy,然后把我的一堆sql文件导入了进去
然后j进入tracy文件夹中,把tracy文件夹中的内容挨个复制到mysql容器中去:
docker cp base1.sql mysql8020:/base1.sql
docker cp tables2.sql mysql8020:/tables2.sql
docker cp grower_info3.sql mysql8020:/grower_info3.sql
docker cp score_handle3.sql mysql8020:/score_handle3.sql
docker cp tech_score3.sql mysql8020:/tech_score3.sql
进入容器:
docker exec -it mysql8020 bash
查看是否成功复制到了mysql容器中:
ls
按顺序执行每个sql文件:
mysql -uroot -proot -D apijson1 < base1.sql
mysql -uroot -proot -D apijson1 < tables2.sql
mysql -uroot -proot -D apijson1 < grower_info3.sql
mysql -uroot -proot -D apijson1 < score_handle3.sql
mysql -uroot -proot -D apijson1 < tech_score3.sql
二、部署spring boot后端 1.打包spring boot 项目 step 1 首先,在pom.xml中引入插件依赖:
org.springframework.boot spring-boot-maven-plugin ${spring.version} true apijson.demo.DemoApplication repackage

step 2 打包:
其他工具|使用docker部署项目(docker的上手、部署mysql、部署spring boot后端)
文章图片

step 3 报错了,解决方法:
https://blog.csdn.net/sunshine77_/article/details/102720041
step 4 再来一次step 2,成功:
其他工具|使用docker部署项目(docker的上手、部署mysql、部署spring boot后端)
文章图片

其他工具|使用docker部署项目(docker的上手、部署mysql、部署spring boot后端)
文章图片

step 5 可以尝试运行下jar包:
在jar包目录下运行cmd命令:java -jar cigarette-1.0.0.jar然后回车,可能会遇到端口被占用的问题,pom.xml中配置换个端口就好了。
2.在docker中部署jar包
先把jar包从U盘拷贝到任意一个目录:
我是拷贝到:/home/nlp/文档/中,完整目录为:/home/nlp/文档/cigarette-1.0.0.jar
拉镜像:
docker pull java:8
在/home/nlp/文档/下创建目录cigar:
mkdir /home/nlp/文档/cigar/
复制jar包到cigar中:
cp /home/nlp/文档/cigarette-1.0.0.jar /home/nlp/文档/cigar/cigarette-1.0.0.jar
在cigar中创建dockerfile文件:
cat>>dockerfile回车
>紧接着键入以下内容后按ctrl+D保存:
FROM java:8
MAINTAINER springboot
ADD cigarette-1.0.0.jar cigarette-1.0.0.jar
EXPOSE 9000
ENTRYPOINT [“java”,"-jar",“cigarette-1.0.0.jar”]
解释:
FROM: 基础镜像,通过jdk8镜像开始
MAINTAINER: 维护者
ADD: 复制jar包到镜像内,名字也为cigarette-1.0.0.jar
EXPOSE: 声明端口
ENTRYPOINT: docker启动时运行的命令,这里就是容器运行就启动jar服务
创建容器:
在cigar文件夹中运行docker build -t springboot .
springboot是我取的容器名,最后的点不能忘了
启动容器:
docker run -d -p 8086:9000 springboot
8086是外部端口,映射到容器中的9000端口去,我们通过ip:8086就可以访问项目了
三、部署前端 【其他工具|使用docker部署项目(docker的上手、部署mysql、部署spring boot后端)】前端我偷懒,直接用了nodejs,没用docker。这部分留到以后再说吧。

    推荐阅读