Noreg

腾讯云服务器Ubuntu在docker部署springboot+mysql

记录docker部署项目操作

1.docker运行

启动

sudo systemctl start docker

验证docker正常

sudo docker run hello-world

 

2.开放端口

以上结果表示正常运行,不行就得自己配置了

ufw disable //关闭防火墙
ufw enable //开启防火墙
ufw status //查看状态

开放端口

ufw allow 80xx

如果这里不行的话可能需要自行用iptables命令去设置规则

 

 云服务器设置安全组

 

 

 开放你的数据库端口(mysql3306)和项目接口所在端口

 

3.docker安装mysql

docker pull mysql

运行mysql,开放的端口是3306,映射到3306(前者是映射的端口),密码是123456, -d是后台运行

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

可以用这个代码进入mysql查看是否运行成功

docker exec -it 容器的id /bin/bash

之后对数据库的操作可以用navicat进行远程连接

 

之后可以把已有数据库导入或者新建查询

 

4.项目打包

修改数据库地址为服务器所在ip

 

 

 

利用maven的package打包,生成target文件夹

 

 

里面有个xxxxx-0.0.1-SNAPSHOT.jar则是我们要的文件,名字可以改为XXX

 

在服务器里你的项目文件夹里

创建Dockerfile

FROM java:8
ADD XXX-0.0.1-SNAPSHOT.jar /XXX.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/XXX.jar"]

代码解释


#注意,docker命令全部大写,这是规定。 # From 关键字表示,jar包依赖的环境。java:
8 相当于jdk1.8 FROM java:8 #ADD命令 # XXX-0.0.1-SNAPSHOT.jar:这是你上传jar包的名称。 # /XXX.jar:这是自定义的名称。但是注意要有之前的/ ADD XXX-0.0.1-SNAPSHOT.jar /XXX.jar #MAINTAINER 作者名称。可以删除不写。 MAINTAINER zhangxiaosan #EXPOSE 项目暴露的端口号 EXPOSE 8080 #/blog.jar此处的名称要和ADD命令后面的一样。 ENTRYPOINT ["java","-jar","/XXX.jar"]

我用的SecureCRT 8.3链接服务器,按rz上传打包文件 XXX-0.0.1-SNAPSHOT.jar

目录结构为

Project{Dockerfile, XXX-0.0.1-SNAPSHOT.jar }

 

5.部署在docker

创建镜像

docker build -t XXX:1.0 . 
说明:
  XXX  代表要打包成的镜像名称。按照自己实际情况写。
  :1.0   代表版本号,可以不写则默认为latest
  .    代表为当前目录。这就是为什么一直在步骤一文件夹中进行操作,并且Dockerfile在此文件夹中的原因。
 
若之前Dockerfile不在步骤一的文件夹中 则需要指定到对应的地址。

查看镜像

docker images

运行镜像,创建容器

docker run --name XXXX -d -it -p 8080:8080 XXX:1.0
说明:
    XXXX:  自定义容器名字
    -d:    后台运行
    -i   表示交互式的,表示[cmd]是一个有用户输入的程序,比如/bin/bash  和     python 等等。
    -t     产生一个终端
    -p     映射端口 a:b,b映射到a
  XXX:1.0 镜像

查看容器

docker ps

如果容器退出了,用以下命令查看

docker ps -a

容器退出了,多半是代码有问题,可以用命令查看

docker logs 容器名字/容器id

 

要删除容器要先停止

docker stop XXX
docker rm XXX

再删除镜像

docker rmi XXX

 

查看容器正常运行就可以通过ip或者域名访问了

参考原文的链接:(40条消息) 使用docker部署springboot项目并连接上mysql数据库_hangao233的博客-CSDN博客

posted on 2022-03-09 15:19  Noreg  阅读(185)  评论(0编辑  收藏  举报