【Docker】通过dockerfile构建Nginx镜像部署多Web应用

news2025/1/16 2:50:33

【Docker】Docker安装

docker打包镜像

  • Dockerfile构建镜像
    • 编写Dockerfile脚本
    • 构建镜像前的准备
    • 执行Dockerfile脚本 构建镜像
    • 镜像导入
  • 配置nginx.conf文件
  • Docker操作
    • 查询index.html的路径
    • 修改web1下ProjectConfig-72e0c4f7dd.json配置文件
    • 修改nginx配置文件nginx.conf

Dockerfile构建镜像

编写Dockerfile脚本

# 基于 nginx:latest 镜像而构建
FROM nginx:latest

COPY ./web1/ /var/app/web1/
COPY ./web2/ /var/app/web2/
COPY ./assets/ /var/app/assets/
COPY ./default.conf /etc/nginx/conf.d/default.conf
COPY ./nginx.conf /etc/nginx/nginx.conf

EXPOSE 80
# 添加daemon off;配置可以让nginx在前台启动
# RUN echo "daemon off;" >> /etc/nginx/nginx.conf

CMD [ "nginx", "-g", "daemon off;" ]

构建镜像前的准备

根据上方的Dockerfile脚本在E:**\DockerImage文件夹下准备好所需内容
在这里插入图片描述
web1、web2、assets代表三个web应用
default.conf、nginx.conf代表nginx配置文件

执行Dockerfile脚本 构建镜像

1、Win + R 打开运行框 输入cmd 打开命令窗口
2、输入E:进入E盘符 输入 cd E:**\DockerImage 进入

// 打包镜像
docker build -t service:1.0 . 

// 镜像导出
docker image save service:1.0 -o E:\**\DockerImage\service.taz

镜像导入

// 镜像导入
docker image load -i E:\**\DockerImage\service.taz

配置nginx.conf文件


    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /var/app/web1;
            index  index.html index.htm;
        }

        location /web2 {
            root   /var/app;
            index  index.html index.htm;
        }

        location /assets {
            root   /var/app/;
            index  index.html index.htm;
        }
        
        location /app {
            proxy_pass http://xx.x.xx.xx:xxxx/;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
  	}

访问路径 xxxx为端口
http://location:xxxx/
http://location:xxxx/web2/
http://location:xxxx/assets/
http://location:xxxx/app/ 代理

Docker操作

查询index.html的路径

// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 index.html 的路径
find / -name index.html

修改web1下ProjectConfig-72e0c4f7dd.json配置文件

// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 "Project*.json" 的路径
find / -name "Project*.json"
// 输出内容
/var/app/web1/ProjectConfig-72e0c4f7dd.json
/var/app/web2/ProjectConfig-a877352052.json
// 退出容器
exit   
// 将配置文件拷贝到当前文件夹
docker cp 容器ID:/var/app/web1/ProjectConfig-72e0c4f7dd.json ./
// 将修改后的配置文件拷贝容器中web1文件夹下
docker cp ./ProjectConfig-72e0c4f7dd.json  容器ID:/var/app/web1/ 
// 重启容器
docker restart 容器ID

修改nginx配置文件nginx.conf

// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 "nginx.conf" 的路径
find / -name "nginx.conf"
// 输出内容
/etc/nginx/nginx.conf
// 退出容器
exit   
// 将配置文件拷贝到当前文件夹
docker cp 容器ID:/etc/nginx/nginx.conf ./
// 将修改后的配置文件拷贝容器/etc/nginx/文件夹下
docker cp ./nginx.conf  容器ID:/etc/nginx/
// 重启容器
docker restart 容器ID

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

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

相关文章

GIS空间数据格式简介

Gis数据存储零、前言一、基础概念二、矢量数据1、定义2、基础3、WBT/WKB4、坐标系5、Geometry6、要素 / 要素集7、存储格式8、图层三、栅格数据1、定义2、基础3、存储格式零、前言 1、首先该篇文档主要是针对刚入坑的朋友,如果你对gis的存储结构谙熟于心&#xff0…

【python】计算机视觉~舌象图片中舌体倾斜判别(四)

返回至系列文章导航博客 1 简介 在智能舌诊时,需要判断舌头的胖瘦,这需要舌头在图片中处于近似垂直的位置才方便判断,不能过于倾斜。那么如何让计算机智能地知道舌体是否倾斜呢?这是这篇文章讨论的重点! 首先也是最重…

一种轻量的“虚拟机”——Windows 沙盒模式

Windows 沙盒模式Windows沙盒的好处操作步骤Windows沙盒的好处 相比虚拟机和第三方的沙盒软件,Windows Sandbox启用后仅占用100MB硬盘空间,还能与物理机安全地共享部分内存空间。简单来说就是易用、免费、不卡机! 由于要保证沙盒内的数据不…

表面弛豫、重构以及覆盖效应

目录 1表面弛豫 2表面能的计算 3对称和非对称板块模型 4 表面重构 5表面上的吸附质 6表面覆盖效应 1表面弛豫 在上述例子中,为了建立五层原子的板块模型,将原子放置在了板块模型中。原子的位置是理想的,是 材料中的体相原子位置。在体相的 金属中,任何两个相邻原子的间…

burpsuite 插件编写基础

文章目录一、什么是扩展 / 插件?二、burp 的扩展三、开发步骤一、什么是扩展 / 插件? 关于这个话题,知乎有一个回答题不错,主要也是引用了wikipedia 插件/扩展,是向现有的计算机程序添加特定功能的软件组件。 主程序…

3.2.2队列的顺序存储实现

队列是一种操作受限的顺序表(只能在队头删除,在队尾插入)。 所以依旧使用静态数组的形式去存储队列。 (1)创建(初始化) 现定于(顺序队列)的结构体 初始化队列时&#x…

CentOS7---Nginx安装并配置虚拟主机

1、源码安装nginx,并提供服务脚本 源码包的获取:官网下载 实验环境:和企业环境类似,关闭防火墙,禁用selinux,使用静态IP地址 安装步骤: 步骤一:安装Nginx所需的pcre库 [rootnode01 ~…

openvpn (用户名密码模式)

目录 一、介绍 1、定义 2、原理 3、加密和身份验证 二、在centos 7.5上搭建openvpn 1、安装openvpn 和easy-rsa(该包用来制作ca证书) 2、配置/etc/openvpn/ 目录 3、创建服务端证书及key 4、创建客户端证书 5、把服务器端必要文件放到etc/openvpn/ 目录下…

LeetCode 785. Is Graph Bipartite【DFS,二分图】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

[牛客101] 二叉树的层序遍历

这道题会考察很多知识点,这里专门进行详解 文章目录题目描述二. 题目分析完整代码题目描述 二. 题目分析 首先,我们会想到存储方式为二维数组.数组每一行存储一层的结点.怎么确定每一行要存储几个结点呢.由于节点与节点之间存在父子关系,所以,在存储某一层的结点时,就可以通过…

使用Process Explorer和Dependency Walker排查C++程序中dll库动态加载失败问题

目录 1、exe主程序启动时的库加载流程说明 2、加载dll库两种方式 2.1、dll库的隐式引用 2.2、dll库的动态加载 3、本案例中的问题描述 4、使用Process Explorer和Dependency Walker分析dll库加载失败的原因 4.1、Process Explorer工具介绍 4.2、使用Process Explorer工…

Mysql日志系统-mysql serve层

Mysql日志系统-服务层的日志 mysql给我们提供了很多有用的日志有mysql服务层提供的,有innodb引擎层提供的,下表是mysql服务层给我们提供的: 日志类型写入日志的信息二进制日志记录了对MySQL数据库执行更改的所有操作慢查询日志记录所有执行…

【JavaScript】2.JavaScript函数

JavaScript 函数 1. 函数的概念 函数&#xff1a;就是封装了一段可被重复调用执行的代码块 通过此代码块可以实现大量代码的重复使用 2. 函数的使用 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta na…

定点乘法器优化---华为杯

一. 简介 在本篇文章开始之前&#xff0c;先对上篇文章中的一个错误进行指正一下。在部分积生成的时候&#xff0c;需要计算-2A和2A的值&#xff0c;我的做法就是直接左移了一位&#xff0c;这样就会有一个问题&#xff0c;符号位被移掉了&#xff0c;为什么我的计算结果还是对…

Java Stream API 操作完全攻略:让你的代码更加出色 (三)

前言 Java Stream 是一种强大的数据处理工具&#xff0c;可以帮助开发人员快速高效地处理和转换数据流。使用 Stream 操作可以大大简化代码&#xff0c;使其更具可读性和可维护性&#xff0c;从而提高开发效率。本文将为您介绍 Java Stream 操作的所有方面&#xff0c;包括 gro…

c++中的类继承

面向对象编程的主要目的是之一是提供可重用的代码。开发新项目&#xff0c;尤其是当项目十分庞大时&#xff0c;重用经过测试的代码比重新编写代码要好得多。使用已有的代码可以节省时间&#xff0c;由于已有的代码已被使用和测试过&#xff0c;因此有助于避免在程序中引入错误…

在Github中77k星的王炸AutoGPT,会独立思考,直接释放双手

文章目录1 前言1.1 什么是AutoGPT1.2 为什么是AutoGPT2 AutoGPT部分实例2.1 类似一个Workflow2.2 市场调研2.3 自己写播客2.4 接入客服3 安装和使用AutoGPT3.1 安装3.2 基础用法3.3 配置OpenAI的API3.4 配置谷歌API3.5 配置Pinecone API4.讨论1 前言 迄今为止&#xff0c;Gith…

枚举类注解

一、枚举类&#xff1a; 1.枚举类的使用 类的对象只有有限个&#xff0c;确定的。比如&#xff1a;星期、性别、季节 当需要定义一组常量时&#xff0c;强烈建议使用枚举类。 定义枚举类的方法&#xff1a; 一&#xff1a;jdk5.0之前&#xff0c;自定义枚举类 package com.ypl…

https访问fastdfs图片

引用&#xff1a;https://blog.csdn.net/love8753/article/details/128872320 配置nginx 的SSL模块&#xff1a;https://www.cnblogs.com/ghjbk/p/6744131.html 获取ssl证书 将ssl证书&#xff0c;拷贝到服务器的一个目录下 nginx添加 http_ssl_module 最开始安装的nginx只有 …

Spimes x5.0主题模板全开源源码/Typecho主题模板

☑️ 品牌&#xff1a;Typecho ☑️ 语言&#xff1a;PHP ☑️ 类型&#xff1a;主题模板 ☑️ 支持&#xff1a;PCWAP &#x1f389;有需要的朋友记得关赞评&#xff0c;底部分享获取&#xff01;&#xff01;&#xff01; &#x1f389; ✨ 源码介绍 Spimes x5.0主题模板全开…