当前位置:首页 » 《关注互联网》 » 正文

使用docker部署项目:docker的上手、部署mysql、部署spring boot后端_TracyCoder的博客

18 人参与  2022年01月17日 11:09  分类 : 《关注互联网》  评论

点击全文阅读


文章目录

  • 〇、安装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中引入插件依赖:

<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>${spring.version}</version>
				<configuration>
					<fork>true</fork>
					<mainClass>apijson.demo.DemoApplication</mainClass>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
</plugin>

step 2 打包:

在这里插入图片描述

step 3 报错了,解决方法:

https://blog.csdn.net/sunshine77_/article/details/102720041

step 4 再来一次step 2,成功:

在这里插入图片描述

在这里插入图片描述

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就可以访问项目了

三、部署前端

前端我偷懒,直接用了nodejs,没用docker。这部分留到以后再说吧。


点击全文阅读


本文链接:http://zhangshiyu.com/post/33418.html

容器  镜像  文件  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1