使用docker部署 java web项目完整记录

这篇具有很好参考价值的文章主要介绍了使用docker部署 java web项目完整记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述:基于java及vue开发的前后端web应用, 整套系统由 一个后端服务+一个管理端前端vue+一个用户端前端vue项目组, 涉及的中间件及第三方应用有 mysql、redis、nginx, 采用docker方式部署整套系统

一、docker 安装

1、参考文档:https://docs.docker.com/engine/install/centos/
2、安装步骤详细说明:
1)、清理或卸载旧的或已安装的docker版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
2)、设置仓库
sudo yum install -y yum-utils
			sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3)、安装docker 其中需要输入命令 一直输 y
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4)、启动docker 至此 docker已安装完成
sudo systemctl start docker

二、mysql安装

基于docker容器安装mysql;注意:启动容器时需要把mysql的数据存储及配置文件挂载到宿主机
1、拉取mysql镜像 这里使用的mysql版本为5.7.+ 所以拉取时 指定版本为5.7
docker pull mysql:5.7
2、使用docker iamges 命令可以查看刚拉下来的mysql镜像

docker部署java项目,docker,java,前端

3、处理需挂载的目录
使用挂载卷的方式 将mysql的 conf data log 文件夹挂载到宿主机
# 创建需要挂载的目录
mkdir -p /opt/docker/mysql5.7/data
mkdir -p /opt/docker/mysql5.7/log
4、运行mysql镜像
docker run -p 3306:3306 --name mysql5.7 --restart=always --privileged=true  -v /opt/docker/mysql5.7/log:/var/log/ -v /opt/docker/mysql5.7/data:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=BYHZ-2019@root.inc -d mysql:5.7
上述运行命令详解
参数 说明
-p 3306:3306 指定宿主机端口与容器端口映射关系
–name mysql 创建的容器名称
–restart=always 总是跟随docker启动
–privileged=true 获取宿主机root权限
-v /opt/docker/mysql5.7/log:/var/log/ 映射日志目录,宿主机:容器
-v /opt/docker/mysql5.7/data:/var/lib/mysql 映射数据目录,宿主机:容器
/opt/docker/mysql5.7/conf:/etc/mysql/mysql.conf.d 映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro 让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读
-e MYSQL_ROOT_PASSWORD=BYHZ-2019@root.inc 指定mysql环境变量,root用户的密码为BYHZ-2019@root.inc
-d mysql:5.7 后台运行mysql容器,版本是5.7
5、通过 docker ps 查看容器是否启动成功

三、redis安装

1、拉取redis镜像
docker pull reids
2、处理redis挂载文件
	mkdir -p /opt/docker/redis
	mkdir -p /opt/docker/redis/data
根据redis版本去官网下载对应的redis.conf文件 官网地址:https://redis.io/docs/management/config/
3、启动redis容器
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /opt/docker/redis/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 123456

上述命令详解

命令 说明
–restart=always 总是开机启动
–log-opt max-size=100m --log-opt max-file=2 日志方面配置
-p 6379:6379 6379端口挂载
–name 容器名称
-v /opt/docker/redis/redis.conf:/etc/redis/redis.conf redis配置文件挂载到宿主机
-v /opt/docker/redis/data:/data redis数据文件
-d redis 后台启协redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件
–appendonly yes 开启redis 持久化
–requirepass 123456 设置redis密码

四、后端应用服务部署

1、创建后端服务包后所在目录
mkdir -p /opt/yunxiao/yx-projcet-server
2、在/opt/yunxiao/yx-projcet-server目录下 创建Dockerfile,dockerfile内容如下
FROM maven:3.8.4-openjdk-11 AS builder
COPY settings.xml /usr/share/maven/conf/settings.xml

# jdk 是一个已有的包含 jdk 的镜像
FROM openjdk:8-jdk-alpine

#  作者签名
MAINTAINER sgs
LABEL yx-server=1.0

#  简化 jar 的名字路径 (#:表示注释掉)
COPY  ./yx-server.jar /yx-server.jar

#  执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
CMD java  -Xms256m -Xmx512m -jar yx-server.jar
3、通过命令查看mysql 及 redis的内网ip 修改 项目的yml文件中mysql 及redis的ip,
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器id

docker部署java项目,docker,java,前端文章来源地址https://www.toymoban.com/news/detail-700860.html

然后将打成yx-server.jar包 上传至 /opt/yunxiao/yx-projcet-server目录下
4、在/opt/yunxiao/yx-projcet-server目录下 执行构建镜像命令
docker build -t yx-server .	
5、因为存上文件上传功能 需把上传的文件挂臷到宿主机
mkdir -p /home/adds/uploadPath
6、启动后端服务容器
docker run -p 9888:9888 -v /home/adds/uploadPath:/home/adds/uploadPath --name yx-server -d yx-server
7、查看日志相关命令
	a、查看容器实时日志   
		docker logs -f 容器id
	b、查看历史日志  
		进入容器
		docker exec -it 容器id /bin/sh
		然后进入logback配置的日志路径
			cd /logs/yx-server

五、前端部署

1、docker 拉取nginx镜像
docker pull nginx 
2、创建前端包路径 及nginx配置文件路径及日志路径
mkdir /opt/yunxiao/yx-front
		mkdir -p /opt/docker/nginx/conf.d
		mkdir -p /opt/docker/nginx/log
注意: 需要先使用docker run -itd --name testnginx nginx 命启动一个nginx容器 然后将对应文件夹的内容复制到宿主机挂载卷下
docker cp 容器id:/etc/nginx/conf.d /opt/docker/nginx
然后再删除之前前面的nginx
3、 启动nginx容器
docker run -itd --name yx-nginx -v /opt/docker/nginx/conf.d:/etc/nginx/conf.d -v /opt/yunxiao/yx-front:/etc/nginx/html -v /opt/docker/nginx/log:/usr/log/nginx -p 8900:8900 -p 8901:8901 nginx
4、修改/opt/docker/nginx/conf.d 下的配置文件 将请求代理到正确的后端服务 及前端资源路径
5、上传打包好的前端资源至对应的路径下 重启nginx容器即可
6、后续更新部署前端资源时 只需将打包好的前端资源替换掉对应路径下的前端资源即可

到了这里,关于使用docker部署 java web项目完整记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 8.idea 使用 docker 构建 java web 项目

    docker 构建 java web 项目 和 docker 构建 spring boot 项目,除了 Dockerfile 不同,其他是都一样的。其他步骤参考:idea 使用 docker 构建 spring boot 项目,构建 Java Web 项目的 Dockerfile示例如下: 因为 java web 项目打的是 war 包,docker 需要依赖的基础镜像是 tomcat 附一个 Dockerfile 示例: 本文

    2024年02月07日
    浏览(31)
  • Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新

    安装Docker。 为Zabbix创建专用网络 zabbix-net 。 创建数据库用户 zabbix 和数据库 zabbix 。 172.20.240.0【Zabbix 专用网络的 Gateway IP 下边有查询方法】 172.17.0.8【云服务器的内网IP】 开启JAVAGATEWAY服务: 2.1 agent 其他启动命令: 踩坑记录: 2.2 agent2 Zabbix agent 2 是新一代的 Zabbix agent,可以

    2024年02月02日
    浏览(17)
  • Docker 快速部署Springboot项目(完整详细版)

    Docker 安装 (完整详细版) Docker 日常命令大全(完整详细版)  1、项目准备 1.1 新建一个springboot项目 1.2 打包 2、编写Dockerfile文件 将jar包和 Dockerfile 文件放在上传到同一空目录下  3、执行镜像打包 查看镜像 java8镜像:启动springboot需要jdk的支持,所以直接拉取 java8 镜像即可 dock

    2024年02月11日
    浏览(25)
  • 【ubuntu】ubuntu 20.04安装docker,使用nginx部署前端项目,nginx.conf文件配置

    docker 官网:Install Docker Engine on Ubuntu 1.将apt升级到最新 2.使用apt安装 docker 和 docker-compose (遇到提示输入 y ) 3.将当前用户添加到docker用户组 4.运行hello-world 运行成功 1.修改配置文件 修改conf/nginx.conf 2.重新挂载 给容器设置自启动(如果提示就去掉sudo) 给docker设置开机自启动

    2024年01月20日
    浏览(35)
  • 深入Docker5:安装nginx部署完整项目

    目录 准备 为什么要使用nginx mysql容器构建 1.删除容器 2.创建文件夹 3.上传配置文件 4.命令构建mysql容器 5.进入mysql容器,授予root所有权限 6.在mysql中用命令运行sql文件 7.创建指定数据库shop 8.执行指定的sql文件 nginx安装与部署         1.拉取镜像 2.创建并运行nginx容器 3.新建

    2024年01月19日
    浏览(24)
  • 项目打包并部署到Docker环境的完整流程

    使用前端构建工具(例如Webpack、Vue CLI、Create React App)将前端项目打包成静态文件。 创建一个名为 Dockerfile 的文件,内容如下: 3.使用以下命令构建Docker镜像: 4.运行以下命令启动前端容器: 5.现在可以通过浏览器访问 http://localhost 来查看部署的前端应用。 1.确保你的后端

    2024年02月14日
    浏览(27)
  • Linux 环境下使用 Docker 部署 Java 项目教程

    1. 安装 Docker:首先在 Linux 系统上安装 Docker,可以参考 Docker 官方文档进行安装。 2. 构建 Docker 镜像:将 Java 项目打包成 Jar 文件,并编写 Dockerfile 文件,使用 Dockerfile 文件构建 Docker 镜像。 dockerfile 文件内容如下:    FROM openjdk:8-jdk-alpine    VOLUME /tmp    ADD your-project-name

    2024年02月09日
    浏览(16)
  • java web(后端+前端) 学习路线记录---1.Java(更新中)

    资源:狂神说 1.注释、标识符、 (1) 建立空项目来建立java项目: (2) 单行注释://注释 (3) 多行注释:/* Djandjan / (4) 文档注释: / * */ 2标识符(类名,变量名,方法名) (5) (6) 标识符注意点: 2.数据类型 (1) 要求变量严格符合规范,所有变量先

    2024年02月20日
    浏览(21)
  • Docker 部署 web 项目

    本篇文章主要介绍将一个完整的 Web 项目(包括数据库、后端、前端)部署到 Docker 中的详细步骤 项目是前后端分离的,后端使用 SpringBoot + JKD17 + MySQL 8;前端使用 Vue + webpack。服务器是跑在 WSL2 上的 Ubuntu 20.04.5 💡 Docker 部署 Web 项目(优化篇) 注意: MySQL 版本要和项目中使

    2024年02月08日
    浏览(11)
  • Docker | Docker+Nginx部署前端项目

    = ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容:Docker | Docker+Nginx部署前端项目 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/blogs/),欢迎大家

    2024年02月04日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包