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

一、先部署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.rhkb.cn/news/117222.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏思考30(补充版):关于逆水寒铁牢关副本、白石副本和技能的一些注释(2023/0902)

前期介绍 我是一名逆水寒的玩家,做一些游戏的笔记当作攻略记录下来,荣光不朽-帝霸来源视频连接 传送门 一、旧版铁牢关(非逆水寒老兵服) (1)老一:巨鹰 1)机制一:三阵风…

Bert和LSTM:情绪分类中的表现

一、说明 这篇文章的目的是评估和比较 2 种深度学习算法(BERT 和 LSTM)在情感分析中进行二元分类的性能。评估将侧重于两个关键指标:准确性(衡量整体分类性能)和训练时间(评估每种算法的效率)。…

TDesign在按钮上加入图标组件

在实际开发中 我们经常会遇到例如 添加或者查询 我们需要在按钮上加入图标的操作 TDesign自然也有预备这样的操作 首先我们打开文档看到图标 例如 我们先用某些图标 就可以点开下面的代码 可以看到 我们的图标大部分都是直接用tdesign-icons-vue 导入他的组件就可以了 而我…

LabVIEW计算测量路径输出端随机变量的概率分布密度

LabVIEW计算测量路径输出端随机变量的概率分布密度 今天,开发算法和软件来解决计量综合的问题,即为特定问题寻找最佳测量算法。提出了算法支持,以便从计量上综合测量路径并确定所开发测量仪器的测量误差。测量路径由串联的几个块组成&#x…

Flutter启动页

效果图 import dart:async; import package:flutter/cupertino.dart; import package:flutter/material.dart; import jumpPage.dart;class TransitPage extends StatefulWidget {const TransitPage({super.key});overrideState<TransitPage> createState() > _Trans…

【项目 计网8】4.23 TCP状态转换 4.24半关闭、端口复用

文章目录 4.23 TCP状态转换关于三次握手四次挥手 4.24半关闭、端口复用端口复用 4.23 TCP状态转换 2MSL(Maximum Segment Lifetime) 主动断开连接的一方&#xff0c;最后进入一个TIME_WAIT状态&#xff0c;这个状态会持续&#xff1a;2msl msl&#xff1a;官方建议&#xff1a;…

Private market:借助ZK实现的任意计算的trustless交易

1. 引言 Private market&#xff0c;借助zk-SNARKs和以太坊来 隐私且trustlessly selling&#xff1a; 1&#xff09;以太坊地址的私钥&#xff08;ECDSA keypair&#xff09;2&#xff09;EdDSA签名3&#xff09;Groth16 proof&#xff1a;借助递归性来匿名交易Groth16 proo…

NCCoE发布“向后量子密码学迁移”项目进展情况说明书

近日&#xff0c;NIST下属的国家网络安全中心&#xff08;NCCoE&#xff09;发布了一份向后量子密码学迁移&#xff08;Migration to Post-Quantum Cryptography&#xff09;项目情况说明书。该文档简要概述了向后量子密码学迁移项目的背景、目标、挑战、好处和工作流程&#x…

flutter plugins插件【三】【Flutter Intl】

3、 Flutter Intl 多语言国际化 在Android Studio中菜单Tools找到flutter intl创建多语言配置。 创建后会在pubspec.yaml出现 flutter_intl:enabled: true 在工程的lib会生成l10n与generated文件夹 l10n包含 intl_en.arb intl_zn.arb 我们在intl_en.arb添加 { home: &quo…

说说HTTP 和 HTTPS 有什么区别?

分析&回答 http协议 超文本传输协议&#xff0c;是互联网上应用最多的协议&#xff0c;基于TCP/IP通讯协议来传递信息&#xff0c;用于从WWW服务器传输超文本到本地浏览器的传输协议。 https协议 我们可以将其看作是以安全为目标的http协议。在http协议的基础上增加了S…

stm32 iap sd卡升级

参考&#xff1a;STM32F4 IAP 跳转 APP问题_stm32程序跳转_古城码农的博客-CSDN博客 app程序改两个位置 1.程序首地址&#xff1a; 2.改中断向量表位移&#xff0c;偏移量和上面一样就可以 然后编译成bin文件就可以了

K-Means(K-均值)聚类算法理论和实战

目录 K-Means 算法 K-Means 术语 K 值如何确定 K-Means 场景 美国总统大选摇争取摆选民 电商平台用户分层 给亚洲球队做聚类 ​编辑 其他场景 K-Means 工作流程 K-Means 开发流程 K-Means的底层代码实现 K-Means 的评价标准 K-Means 算法 对于 n 个样本点来说&am…

五、高并发内存池--Thread Cache

五、高并发内存池–Thread Cache 5.1 Thread Cache的工作原理 thread cache是哈希桶结构&#xff0c;每个桶是一个按桶位置映射大小的内存块对象的自由链表。每个线程都会有一个thread cache对象&#xff0c;这样每个线程在这里获取对象和释放对象时都是无锁的。 每一个线程…

查询优化器内核剖析之查询的执行与计划的缓存 Hint 提示

本篇议题如下: 查询的执行与计划的缓存 Hint 提示 首先看到第一个议题 查询的执行与计划的缓存 一旦查询被优化之后&#xff0c;存储引擎就使用选中的执行计划将结果返回&#xff0c;而被使用的这个执行 计划就会被保存在内存中一个被称之为“计划缓存”的地方&#xff0c;从…

MyBatis多表查询

1. 多表关系回顾 在项目开发当中一对一关系的表不常见&#xff0c;因为一对一关系的两张表通常会合并为一张表。 2. 一对一查询 一张表对应一个实体类&#xff0c;一个实体类对应一个Mapper接口。 例如&#xff1a;查询菜品&#xff0c;同时查询出该菜品所属的分类。 分析&…

F5服务器负载均衡能力如何?一文了解

但凡知道服务器负载均衡这个名词的&#xff0c;基本都知道 F5&#xff0c;因为负载均衡是 F5 的代表作&#xff0c;换句话来说&#xff0c;负载均衡就是由 F5 发明的。提到F5服务器负载均衡能力如何&#xff1f;不得不关注F5提出的关于安全、网络全面优化的解决方案&#xff0c…

07:STM32----ADC模数转化器

目录 1:简历 2:逐次逼近型ADC 3:ADC基本结构 4:输入通道 5:规则组的4种转换模式 1:单次转化,非扫描模式 2:连续转化,非扫描模式 3:单次转化,扫描模式 4:单次转化,扫描模式 6:触发控制 7:数据对齐 8:转化时间 9:校准 10:ADC的硬件电路 A: AD单通道 1:连接图 2:函…

水果库存系统(SSM+Thymeleaf版)

不为失败找理由&#xff0c;只为成功找方法。所有的不甘&#xff0c;因为还心存梦想&#xff0c;所以在你放弃之前&#xff0c;好好拼一把&#xff0c;只怕心老&#xff0c;不怕路长。 文章目录 一、前言二、系统架构与需求分析1、技术栈1.1 后端1.2 前端 2、需求分析 三、设计…

JavaWeb_LeadNews_Day10-Xxljob, Redis实现定时热文章

JavaWeb_LeadNews_Day10-Xxljob, Redis实现定时热文章 xxl-job概述windows部署调度中心docker部署调度中心 xxl-job入门案例xxl-job分片广播热点文章定时计算思路分析具体实现热文章计算定时计算 查询文章接口改造来源Gitee xxl-job概述 windows部署调度中心 运行 xxl-job\do…

字节美团题库之重排链表

文章目录 题目详情题目分析完整实现Java代码总结 题目详情 注&#xff1a;面试真实遇到&#xff0c;对于面试遇到算法时要冷静分析 LCR 026 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为&am…