docker部署springboot项目

接上一篇继续通过docker来正式部署一个springboot后端项目
1.查看Docker 是否安装成功并确认服务是否已经启动

docker version
image.png

如果未安装,自行百度安装

systemctl status docker

查看docker 运行状态,已启动


image.png

如果检查未启动执行一下

sudo systemctl start docker

2.安装git
只有输入命令git,如果没有会提示你下载,我已经下载好了


image.png

3.安装mysql
拉取 MySQL 镜像

docker pull mysql:latest
image.png

使用以下命令来查看是否已安装了 mysql

docker images
image.png

这是已经安装的状态
安装完成后,我们可以使用以下命令来运行 mysql 容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
image.png

参数说明:
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
安装成功
通过 docker ps 命令查看是否安装成功


image.png

至此,使用docker 安装mysql 的工作就已经完成了。
4.Docker 中mysql 简单交互,导入mysql文件
导入mysql数据库中的sql文件


image.png

把sql文件上传到Linux目录
image.png

我是放在了/tmp里面
然后把文件复制到docker容器,因为我们的mysql是安装在docker容器中
sudo docker cp /tmp/rbac.sql mysql-test:/tmp/

登入容器内MYSQL执行sql文件

docker exec -it bteye-mysql mysql -uroot -p123456
image.png

先创建数据库

create database rbac

查看数据库

show databases
image.png

需要先指定数据库,不然会报错


image.png
use rbac
image.png

查看mysql容器

docker images
image.png

至此,mysql环境就部署好了
5.Dockerfile文件
在项目根目录中新建Dockerfile文件


image.png

Dockerfile中的内容

FROM openjdk:8-jdk-alpine #基于哪个jdk
ARG JAR_FILE=target/*.jar  # jar包位置
ADD biz-rbac-service-0.0.1-SNAPSHOT.jar /biz-rbac-service.jar
ENTRYPOINT ["java","-jar","/biz-rbac-service.jar"]
ENV TIMEZONE Asia/Shanghai

6.项目打包


image.png

我是直接把项目放在服务器目录中,也可以直接自己部署,我的Dockerfile一直不生效,所以我也放在了项目部署路径下
var->www->myapp自己创建的文件夹


image.png

到对应目录下,执行命令
docker build -t biz-rbac-service:0.0.1 .

再通过 docker images 可以发现,镜像已经存在


image.png

7.再次编写 docker-compose.yml
在之前的 docker-compose.yml加上:

  biz-rbac-service:
    image: biz-rbac-service:0.0.1
    ports:
      - 8002:8002
    restart: always

iamge:连接的对应的镜像名字,必须和你生成的镜像一模一样,版本号也一定要加上(默认latest,因为之前我们加了0.0.1,没有latest)
ports: 就是暴漏端口映射。保持一致,不易混淆
重新更新docker-compose.yml文件,然后重新执行命令

docker-compose up -d

成功后docker ps查看


image.png

访问主机id+8002就能看见我们部署的项目了


image.png

上传git重新构建也不会报错了
image.png

至此,后端项目就部署好了,然后通过git上传代码,通过github的Webhooks回调,drone就能自动触发,部署项目

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容