Docker部署nginx+springboot-web项目

部署方案一

前期准备

  1. 拉取mysql

docker pull mysql

  1. 拉取nginx

docker pull nginx

  1. 更改web数据源
 url: jdbc:mysql://business-db:3306/business?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true

注意:此处使用即将定义的mysql容器名代替ip+端口号

4.打包web项目

在项目根目录下执行mvn clean package进行打包(在项目target目录下生成business-0.0.1-SNAPSHOT.jar)

5. 上传至安装docker的linux虚拟机

  • 在linux的/usr/local目录下创建business文件夹
  • 使用sftp将上面的jar包上传至此文件夹
  1. 构建Dockerfile
  • business文件下下创建Dokerfile文件, 命令:vi Dokerfile,内容如下

  1. 构建Docker镜像
  • /usr/local/business目录下执行docker build -t business-image .,使用docker images查看,生成名为business-image的镜像
  1. 准备nginx配置文件
  • /usr/local/business下新建名为nginx的文件夹
  • /usr/local/business/nginx下创建nginx.conf文件,写入内容如下

  1. 创建网络

    执行docker network create --subnet=172.18.0.0/16 business-net 子网为172.18.0.0/16网络

  2. 创建mysql挂载卷持久化mysql数据

    docker volume create business-volume

  3. 创建mysql容器指定网络与ip

    docker run -d --name business-db -v business-volume:/var/lib/mysql -p 3301:3306 -e MYSQL_ROOT_PASSWORD=123456 --net=business-net --ip 172.18.0.2 mysql

    这里的容器名就是第三步数据源中的配置

  4. 创建数据库 business
  5. 搭建服务集群
[[email protected] business]# docker run -d --name business-service1 -p 8081:8080  --net=business-net --ip 171.18.0.3 credit-facility-image
4ffc98a8c73a4a7afe3737a8ace18d4d053cf8573ab61179963942f3b01104cb
[[email protected] business]# docker run -d --name business-service1 -p 8082:8080  --net=business-net --ip 172.18.0.4 business-image
a01e3613ac2a9e995fad644c29a5fd991e762008ff0dc8a3e5b1ab2e86d52924
[[email protected] business]# docker run -d --name business-service1 -p 8083:8080  --net=business-net --ip 172.18.0.5 business-image
9dc0ba15542ed29501a0d8540f0f226814e29ffb93c9ab9e06461c01b9f7c049

这里的容器名即为nginx upstream中指定的容器名

13. 创建nginx容器

[[email protected] nginx]# docker run -d --name business-nginx -p 80:80 -v /usr/local/credit-facility/nginx/nginx.conf:/etc/nginx/ningx.conf --network=business-net --ip 172.18.0.6 nginx
60fc13c1a8d425263d6a90eb34a309ad5e5d3d5517598b8026d7326e9925b9f7
  1. 查看宿主机IP地址

    因为我们的主机无法直接通过ip+port访问容器的服务,但是我们可以通过创建容器时映射到宿主机的端口号进行访问服务。这里我们配置了nginx反向代理,所以我们访问宿主机+nginx端口号就可以访问提供的服务了。这里我们通过ip addr命令查看虚拟机ip地址,我的是10.10.10.202

  2. 消费服务

    浏览器输入10.10.10.202/users回车,得到下面的效果。

    这里点击两次,收到了两个进程发送过来的消息。

原文地址:https://www.cnblogs.com/yiweiblog/p/12652563.html

时间: 2024-11-08 13:21:50

Docker部署nginx+springboot-web项目的相关文章

Nginx 部署多个 web 项目(虚拟主机)

1,创建 www 目录 2,在 www 目录下创建 test1 和 test2 目录,表示两个项目 3,test1 下创建 test1.html 4,test2 下创建 test2.html 5,配置虚拟主机(部署多个 web 项目) 6,测试 实现多个虚拟主机的方式,三种方式: 1)多个网卡,这样可以有多个 IP 地址,每个项目的 IP 不一样: 2)更改端口,每个项目的端口不一样: 3)域名不一样 域名解析过程: host 文件 ----> DNS 原文地址:https://www.cnbl

如何使用Docker部署一个Go Web应用程序

熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版和配置文件.而当一个项目中有很多文件的时候,由于很多文件没有同步就会导致错误的发生并且产生很多的问题. 在本教程中,你将学习如何使用Docker部署一个Go web应用程序,并且认识到Docker将如何改进你的开发工作流及部署流程.各种规模的团队都会从这里所介绍的设置中受益. 目标 在本文结束后,你

在docker中用Tomcat运行web项目

本文旨在用最通俗的语言讲述最枯燥的基本知识 上一篇文章<为什么要用docker>已经讲述了什么是docker以及我们要用docker的原因,并且讲解了如何安装docker.这时候很多读者磨拳擦脚跃跃欲试但却发现安装好docker之后就无从下手了,那么,接下来,小编会从以下方面讲述docker的一些基础知识,当然,理论都是生硬的,所以小编选取了javaweb项目中最常用的一个软件--tomcat的安装和使用来引导学习一些docker相关的知识,借此让读者能够从实战的角度去理解docker为什么会

使用docker部署nginx+tomcat架构(2):访问mysql数据库

上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进入正题. 首先拉取mysql镜像: docker pull mysql:5.7 创建本地mysql目录: mkdir -p ~/mysql/data ~/mysql/conf ~/mysql/logschmod -R 777 ~/mysql/logs 在mysql/conf目录下创建配置文件my.c

使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构(2):访问mysql数据库 不过,整个部署过程中需要手动输入很多的docker命令,稍显繁琐并且容易出错.那么有没有一种相对简洁优雅的方式来完成这些部署工作呢?答案是有的,docker-compose(一下简称“compose”)正是为此而生. 关于docker-compose(了解更多:https://docs.docker.c

Centos7 下面安装docker 部署Nginx

实验 环境 Centos 7 操作系统 安装docker yum install docker -y 查看docker 是否安装成功 docker -v Docker version 1.12.6, build 3a094bd/1.12.6 启动docker systemctl start docker 部署Nginx 获取基础镜像 docker pull nginx:1.10.3 查看 镜像 1.直接启动容器 docker run -d -p 8080:80 nginx:1.10.3 解释:

docker 部署nginx+weblogic集群

测试一段时间,再来报告 docker 部署nginx+weblogic集群

Apache httpd(apache2)服务配置详解,Mac下设置虚拟主机部署多个web项目,及反向代理部署Java项目

Apache httpd服务配置详解 查看版本:httpd -v Server version: Apache/2.4.33 (Unix) Server built:   Apr  3 2018 17:54:07 文件路径:/etc/apache2/httpd.conf # 服务目录(全局配置)用于指定Apache的安装路径,# 此选项参数值在安装Apache时系统会自动把Apache的路径写入ServerRoot "/usr" # 设置互斥对象的目录# Mutex default:/

.NET ----记Docker部署asp.net mvc项目

.net 部署到docker容器 1.部署到windows容器 项目添加一个Dockerfile构建镜像 FROM microsoft/aspnet EXPOSE 80 ARG source WORKDIR /inetpub/wwwroot COPY . . 进入目录打包镜像 cd C:\Users\Desktop\asp.net //cd进入目录 docker build -t web . //构建镜像 docker images //查看镜像 docker run -d -p 7653:80