docker部署nginx,部署springboot项目,并实现访问

news2024/11/15 12:59:35

一、先部署springboot项目

1、安装docker:

 yum install docker -y

2、启动docker:

service docker start

重启:

service docker restart

3、查看版本:

docker -v

4、使设置docker.service生效(路径:/usr/lib/systemd/system/docker.servic):

sudo systemctl enable docker

5、查看docker状态:

systemctl status docker

编写Dockerfile

FROM java:8
VOLUME /tmp
ADD CmdbAddBackend.jar CmdbAddBackend.jar
RUN echo "Asia/Shanghai" > /etc/timezone
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/CmdbAddBackend.jar"]

7、Dockerfile文件要与jar包文件在同一文件夹下

8、构建镜像(点不要忘记):

 docker build -t cmdbdocker .

9、要启动cmdbdocker:

大写-P表示随机分配端口  docker run -d -P cmdbdocker

小写-p 表示指定端口,主机端口:docker容器端口  docker run -d -p 8086:8080 cmdbdocker

查看正在运行的容器         docker ps
停止正在运行的容器        docker stop 容器id
启动容器        docker start 容器id
启动多个容器:docker start container1 container2 container3

13、查看镜像

docker images

14、删除镜像

# 根据id删除单个镜像

docker rmi -f 镜像id

# 根据条件删除所有none的镜像

docker rmi -f $(docker images -f "dangling=true" -q)

15、linux查看jdk安装路径:

which java

二、部署nginx服务

1.安装的命令

sudo docker search nginx
docker pull nginx

2.查看是否安装

docker images

 3.运行测试nginx 

docker run --name nginx-test -p 9091:80 -d nginx
--name  #给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p #映射端口,将docker宿主机的9091端口和容器的80端口进行绑定
-v #挂载文件用的
-d #表示启动的是哪个镜像。

4.浏览器访问nginx服务,服务器ip:端口号

 5.Nginx服务的配置和部署
为什么需要做文件的映射?
我们在使用容器的过程中需,有时候需要对容器中的文件进行修改管理,如果不做文件映射的化,我们使用docker exec -it 容器ID/容器名 /bin/bash 才能进入nginx中的文件里面如图

如果把关键文件映射到主机上,那么就可以在主机中进行修改而不必进入文件当中才进行修改了。

 需要在主机上建立相应的关键文件目录
在home下创建一个docker文件夹,用来专门存docker容器的映射文件。
在docker下创建一个nginx的文件夹,用于存nginx的映射文件。
在nginx下创建三个关键的映射文件。
www文件映射www目录,也就是网页目录。
logs文件映射日志目录。
conf文件映射配置目录

cd /home/nginx

mikdir www

mikdir logs

mikdir conf

6.先在容器中拷贝配置文件
docker cp 容器ID:/etc/nginx/nginx.conf /home/docker/nginx/conf
#注意此时的容器必须是运行的


docker中nginx与主机文件映射规则如下
主机                                              docker
/home/docker/nginx/www                           /usr/share/nginx/html #网页文件
/home/docker/nginx/conf/nginx.conf               /etc/nginx/nginx.conf#配置文件
/home/docker/nginx/logs                          /var/log/nginx#日志文件

关闭之前运行的容器
docker stop 容器ID
docker rm 容器ID

运行nginx,同时进行文件挂载:
docker run -d -p 9091:80  --name nginx_cmdb -v /home/docker/nginx/www:/usr/share/nginx/html -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/nginx/logs:/var/log/nginx nginx

7.在www目录下建立一个html文件

8.访问nginx

 9.修改nginx.conf文件

sudo gedit /home/docker/nginx/conf/nginx.conf 

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  192.****;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/docker/nginx/www/;
            index  index.html index.htm;
        }
        
        location /api/  {
           proxy_pass http://192.***:8085/backend/;
           #proxy_set_header Host $http_host;
           proxy_connect_timeout 15;
           proxy_send_timeout 15;
           proxy_read_timeout 15;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}
}

10.server中的配置解释参考如下:

11.重启docker

docker ps#获取容器的ID
docker restart 容器ID

浏览器通过ip端口访问 ,可以正常访问:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/948029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据分析,附源码】MATLAB R2022b安装教程

软件下载 软件:MATLAB版本:2022b语言:简体中文大小:19.37G安装环境:Win11/Win10硬件要求:CPU2.6GHz 内存8G(或更高)下载通道①百度网盘丨64位下载链接:https://pan.baidu.com/s/1R1…

ssm高校教师科研信息展示网站源码和论文

ssm高校教师科研信息展示网站源码和论文095 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面…

Mybatis1.9 批量删除

1.9 批量删除 1.9.1 编写接口方法1.9.2 编写SQL语句1.9.3 编写测试方法 如上图所示,用户可以选择多条数据,然后点击上面的 删除 按钮,就会删除数据库中对应的多行数据。 1.9.1 编写接口方法 在 BrandMapper 接口中定义删除多行数据的方法。…

Mysql高阶语句 (一)

一、常用查询 (增、删、改、查) 对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。 例如只取 10 条数据、对查询结果进行排序或分组等等 1、按关键字排序 PS:类比于windows 任务管理器 使用 SELECT 语句…

成都瀚网科技有限公司:抖店精选联盟企业是什么?

我很高兴为您提供有关如何加入抖店特色联盟企业以及加入的好处的信息。在这篇文章中,我将为大家详细介绍如何申请加入抖店精选的关联公司,并讲解加入的好处。希望能够帮助您更好地了解和使用抖店精选联盟企业平台。 1、如何加入抖店精选联盟企业&#xf…

亚马逊鲲鹏系统是怎么操作测评的

亚马逊鲲鹏系统可以注册亚马逊买家号、养号、下单留评等,是一款功能比较齐全的测评软件,具体操作如下: 首先我们需要先准备好买家账号,账号可以直接去购买已经注册好了的账号,也可以准备好账号所需要的一些邮箱、ip、…

做邮件营销前,这些注意事项一定要知晓

邮件营销是一种有效的网络营销手段,可以帮助企业与潜在客户建立长期联系,促进销售和品牌认知。相比于其他的营销手段,邮件营销针对性更强,可以根据不同类型用户所具有的特征和属性进行营销。其次,邮件营销的覆盖范围较…

EPICS asyn连接测试例程

1) 用makeBaseApp.pl新建一个EPICS IOC的目录结构: rootorangepi5:/usr/local/EPICS/program/testConnect# ls configure iocBoot Makefile testConnectApp2) 编辑configure目录下的RELEASE文件,定义asyn模块所在的路径: ... SUPPORT/us…

Java“牵手”1688拍立淘接口数据,图片搜索1688商品,图片识别商品接口,1688API申请指南

1688商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取1688商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问1688商城的网页来获取商品详情信息。以下是两种常用方法的介绍&…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序,动态数组(重点推荐))七(129)

需求:前端根据后端的返回数据:画统计图; 说明: 1.X轴为地域,Y轴为地域出现的次数; 2. 动态展示(有地域展示,没有不展示,且高低排序) Demo案例: …

使用卷积操作实现因子分解机

本文将介绍如何使用卷积操作实现因子分解机器。卷积网络因其局部性和权值共享的归纳偏差而在计算机视觉领域获得了广泛的成功和应用。卷积网络可以用来捕获形状的堆叠分类特征(B, num_cat, embedding_size)和形状的堆叠特征(B, num_features, embedding_size)之间的特征交互。 …

【C++】C++11的新特性(上)

引入 C11作为C标准的一个重要版本,引入了许多令人振奋的新特性,极大地丰富了这门编程语言的功能和表达能力。本章将为您介绍C11的一些主要变化和改进,为接下来的章节铺垫。 文章目录 引入 一、列表初始化 1、1 {} 初始化 1、2 std::initiali…

问道管理:macd参数改良设置?

MACD目标是一种广泛应用的技能剖析目标,其特色在于能够同时反映趋势和动量改变。可是,很多买卖者感到困惑的是,怎么设置MACD的参数才能更好地指导买卖。 1. MACD目标参数解析 MACD目标是依据两个移动平均线的穿插来判别商场的趋势与动量改变…

解压jar包并导入库环境

背景 因为各种历史原因,当初的maven依赖环境已下载不了了,所以需要从生产环境的jar包里,获取库环境来本地运行。 但是网上很多方法都是用mvn install命令,一个个jar包导入的,不符合我的需求(需要导入280多…

Linux 虚拟机同步时间crontab以及crond详解

目录 一 Linux 虚拟机同步时间设置 1. 检查是否安装cron服务(即时间同步器) 2. 下载时间同步器 3. 编辑crontab 内容 4. 同步更新电脑网络时间 5.设置 reload 6. 查看 crond 状态 二 crond 详解 1. 启动/关闭cron服务 2. crontab命令格式 3. …

VK1616是LED显示控制驱动电路/LED驱动IC、数显驱动芯片、数码管驱动芯片

产品品牌:永嘉微电/VINKA 产品型号:VK1616 封装形式:SOP16 产品年份:新年份 概述:VK1616是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁存器、LED 驱动等电路。SEG脚接LED阳极&a…

mysql存储过程之遍历设置表中某些字段值

缘起 ​ mysql数据库中有用到分表,大概300张表,都是以geo_data_xxxxxx来命名,之前测试过程中,有给300张表中的一个字段设置过值,但是想重新生成一遍数据。那么后面是做了一个数据清洗,给300张表is_turnout…

Prometheus监控(三)架构

文章目录 Prometheus架构图Prometheus生态圈组件Prometheus Serverclient librariesPushgatewayexporterAlartmanager Prometheus架构理解存储计算层采集层应用层 Prometheus架构图 Prometheus生态圈组件 Prometheus Server 主服务器,负责收集和存储时间序列数据 …

SAP_ABAP_BDC录屏案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、实施步骤 1.1 SHDB --> 新建记录-->输入录制的tcode :BP,-->执行录屏操作-->录制结果封装成函数 1.2 SHDB …

大数据到底是好是坏?_光点科技

近年来,随着科技的不断发展和互联网的普及,大数据已经成为一个备受关注的话题。它带来了许多机遇和挑战,引发了人们对于其是好是坏的争议。大数据究竟是一把双刃剑,需要我们从多个角度来审视。 大数据的好处无疑是显而易见的。首先…