Docker系列之九巧用Nginx

news2024/11/29 10:52:00

前言

Nginx是个很棒的反向代理服务工具,之前我都是直接安装到服务器上去,过程繁琐也许不是难以接受,但是有更简单地Docker镜像服务,我自然没必要再次舍近求远。

一些配置是参考自我以前的文章Docker系列一安装DockerHexo历险记之十Nginx端口转发

安装Nginx

拉取镜像

访问链接https://registry.hub.docker.com/_/nginx/tags来寻找镜像的稳定版本。

现在查看后发现稳定版本为1.22.1,于是决定拉取这个版本的镜像。

docker pull nginx:1.22.1

创建外部挂载目录

先创建存储目录,保存容器中的数据和配置信息。

# 自定义新建的目录名
export Nginx=nginx

# 指定配置目录、数据目录
mkdir -p /home/keen/docker/$Nginx/conf
mkdir -p /home/keen/docker/$Nginx/log
mkdir -p /home/keen/docker/$Nginx/html

# 赋予权限
chmod -R 755 /home/keen/docker/$Nginx/conf

创建临时容器

如果现在直接运行正式容器,那么在映射文件夹的时候,就会导致正式容器中的文件夹也全是空的。

所以必须要先创建一个临时容器,将一些默认的配置文件拷贝到宿主机中,删除临时容器后,重新创建一个完整的正式容器。

docker run \
    -p 80:80 \
    --name temp \
    -d \
    nginx:1.22.1

接着进入容器,找到要复制的东西。

# 进入容器
docker exec -it temp  /bin/bash

将临时容器内的文件复制到挂载路径中。

  1. conf配置文件可以选择默认的配置文件,也可以将用过的历史配置文件复制进去,在Hexo历险记之十Nginx端口转发文章中有一些可参考的配置,有兴趣的可以去了解。

    : 将容器nginx.conf文件复制到宿主机
    docker cp nginx:/etc/nginx/nginx.conf /home/keen/docker/$Nginx/conf
    : 将容器conf.d文件夹下内容复制到宿主机
    docker cp nginx:/etc/nginx/conf.d /home/keen/docker/$Nginx/conf/conf.d
    
    : 或者是从本地用scp命令迁移历史配置文件到服务器
    scp  /Users/keen/Downloads/nginx/nginx.conf  root@39.96.12.167:/home/keen/docker/nginx/conf/nginx.conf
    scp  /Users/keen/Downloads/nginx/conf.d/cert4 root@39.96.12.167:/home/keen/docker/nginx/conf/conf.d/cert4
    

    注意!如果是嵌套类型的配置文件,那么在主配置文件中要写的是include /etc/nginx/conf.d/*.conf;

  2. html文件,直接将默认的文件复制过去就可以了,主要就是500之类的提示页面。

    docker cp temp:/usr/share/nginx/html/ /home/keen/docker/$Nginx/html/ 
    

  1. log文件夹初始是空的并没有影响。

现在可以销毁并删除临时容器。

export Chevereto=temp
docker stop $Chevereto && docker rm $Chevereto

启动容器

docker run \
    --name nginx1.22.1 \
    -p 80:80 \
    -d \
    --restart=always \
    --privileged=true \
 -v /home/keen/docker/$Nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v /home/keen/docker/$Nginx/conf/conf.d:/etc/nginx/conf.d \
 -v /home/keen/docker/$Nginx/log:/var/log/nginx \
 -v /home/keen/docker/$Nginx/html:/usr/share/nginx/html \
 -v /etc/localtime:/etc/localtime:ro \
    nginx:1.22.1
  • --name nginx1.22.1:容器名字为nginx1.22.1

  • -p 80:80 :映射宿主机的 80 端口到容器服务的 80 端口

  • -d:后台运行

  • --restart=always:Docker 重启的时候容器也会重启

  • –privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

  • -v : 从上到下分别是映射配置文件、映射配置文件目录、映射日志文件目录、映射资源目录以及映射时间

  • 使用镜像nginx的1.22.1版本

修改容器

如果在后面要重新映射端口,有两种方式,一个是修改映射的端口,一个是创建新的容器。

具体的可以参考我的其他文章:Hexo历险记之十Nginx端口转发。

感谢

感谢现在的好奇,为了能成为更好的自己。

  1. Docker 安装 Nginx 容器 (完整详细版)

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

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

相关文章

影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入

使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的“网盘”,简单理解就是搭建自己的“私有云”,但是硬件和网络成本都太高了,有点可望而不可及的意思。Alist开源库则可以满足我们&…

Docker+Nginx+KeepaLived实现Nginx一主一从高可用

系统版本 Centos7 IP:10.10.11.79 Master IP:10.10.11.81 Slave 虚拟ip:10.10.11.77 客户端发起一个请求 ,请求没有到Nginx的实际IP上,而是请求的虚拟IP(会和实际IP通过配置文件进行绑定) 如果有一台Nginx…

Linux进阶(Shell编程学习一)

由于shell脚本在java项目运维方面极其重要,比如服务的启动脚本,日志的分割脚本,文件的管理脚本大多都是shell脚本去实现的。所以作为java开发者懂linux的基本命令,会基本的shell编程是必要的。 Shell 是一个用 C 语言编写的程序&…

nodejs+vue学生考试成绩数据分析与可视化系统vscode

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.3 B/S结构 4 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:技术背景…

springboot 集成driud

druid官方文档导入jar包<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid-spring.version}</version></dependency>配置数据源spring:datasource:url: jdbc:m…

什么是销售管理?销售管理的五大职能

销售管理听起来很简单&#xff0c;似乎只是负责销售并确保客户满意&#xff0c;但事实上&#xff0c;它远不止于此。 销售管理的实际职能包括监督销售团队的工作&#xff0c;制定计划和设定目标&#xff0c;通常还包括确保销售流程的效率以获得最佳业务结果。 什么是销售管理…

千兆网口down/up偶发link成百兆问题

a. 软硬件环境&#xff1a;​NXP LS1043A IGB211&#xff08;pcie接口千兆网卡&#xff09;:linux 4.9.19 igb driver Nvidia Xavier NX RTL8211F: linux4.9​ ​NXP LS1043A -----(pcie)--- IGB211 <---(PCB走线代替网线)-----> RTL8211F&#xff08;phy&#xff09;…

剑指 Offer 56 - II. 数组中数字出现的次数 II

题目 在一个数组 nums 中除一个数字只出现一次之外&#xff0c;其他数字都出现了三次。请找出那个只出现一次的数字。 思路 这题是剑指 Offer 56 - I. 数组中数字出现的次数的变体&#xff0c;本题只有一个数num出现一次&#xff0c;其余的均出现三次 三次的话使用异或消无法…

云计算与 SaaS 有何区别?

云计算与 SaaS 有何区别&#xff1f;众所周知&#xff0c;SaaS是云计算的三种服务模式其中之一。 三种分别是&#xff1a; Iaas&#xff1a;基础设施即服务Paas&#xff1a;平台即服务SaaS&#xff1a;软件即服务 对于三者的区别&#xff0c;一起来吃顿烤肉&#xff0c;听我慢…

13_FreeRTOS消息队列

目录 队列简介 FreeRTOS队列特点 队列操作基本过程 队列结构体介绍 队列结构体整体示意图 队列相关API函数介绍 创建队列相关API函数介绍 往队列写入消息API函数 往队列写入消息函数入口参数解析 从队列读取消息API函数 实验源码 队列简介 队列是任务到任务、任务…

开发微服务电商项目演示(五)

登录方式调整第1步&#xff1a;从zmall-common的pom.xml中移除spring-session-data-redis依赖注意&#xff1a;本章节中不采用spring-session方式&#xff0c;改用redis直接存储用户登录信息&#xff0c;主要是为了方便之后的jmeter压测&#xff1b;2&#xff09;这里只注释调用…

如何使用ArcGIS转换坐标

1.概述大家都知道ArcGIS提供了坐标转换功能&#xff0c;在我们手里的数据坐标系千差万别&#xff0c;经常会遇到转换坐标的时候&#xff0c;那么是否可以用ArcGIS进行转换&#xff1f;答案是肯定的&#xff0c;但是转换的过程比较复杂&#xff0c;这里为大家介绍一下转换的方法…

微软 new Bing 通过 ChatGPT 加持后搜索体验暴增,国内该如何申请使用那?

就在近期微软公布了自家的 Bing 将加持 ChatGPT 推出新版&#xff0c;消息一出 Bing 的下载量直接翻了 10 倍以上&#xff0c;48小时内就已经有 100 万名新用户申请加入了 还可以申请试用 new bing 吗&#xff1f; 目前用户还无法直接访问新版 bing &#xff0c;还是要前往申…

从一次有趣的漏洞分析到一个有趣的PHP后门

起因 事情的起因很有趣&#xff0c;前几天我正对着电脑发呆的时候&#xff0c;突然有个安全交流群的群友来找我交流一个问题 大概的意思就是&#xff0c;他在挖SRC的时候&#xff0c;发现一处资产存在目录遍历漏洞&#xff0c;它通过这个漏洞&#xff0c;找到目标资产使用了一…

基于图像的相机定位:概述

虚拟现实、增强现实、机器人和自动驾驶最近引起了学术界和工业界的广泛关注&#xff0c;其中基于图像的相机定位是一项关键任务。然而&#xff0c;还没有关于基于图像的相机定位的完整评论。迫切需要映射这个主题&#xff0c;使个人能够快速进入该领域。在本文中&#xff0c;概…

【Airplay_BCT】Bonjour conformance tests苹果IOT

从Airplay开始&#xff0c;接触到BCT&#xff0c;这是什么&#xff1f;被迫从安卓变成ios用户和开发。。。开始我的学习之旅&#xff0c;记录成长过程&#xff0c;不定时更新 Bonjour 下面是苹果官网关于bonjour的解释 Bonjour, also known as zero-configuration networking, …

pinia实战 购物车(自定义插件实现pinia持久化)

目录 一、实例 二、需求 三. 代码解析 shop.vue shop.ts 四、持久化插件 插件介绍 持久化实现思路 一、实例 二、需求 单选全选功能&#xff0c;并且可以互相联动 小计功能 总计功能 商品加减&#xff0c;数量为零时不能在减 三. 代码解析 shop.vue 1.获取shop模块实…

AttributeError: module ‘lib‘ has no attribute ‘OpenSSL_add_all_algorithms

pip安装crackmapexec后,运行crackmapexec 遇到报错 AttributeError: module lib has no attribute OpenSSL_add_all_algorithms 直接安装 pip3 install crackmapexec 解决 通过 python3 -m pip install --upgrade openssl 或者 python3 -m pip install openssl>22.1.…

YOLOv5/v7 Flask Web 车牌识别 | YOLOv7 + EasyOCR 实现车牌识别

YOLOv7 Flask Web 车牌识别图片效果展示 本篇博文只包含源码以及使用方式,目前不同提供详细开发教程。 YOLOv7 Flask Web 车牌识别视频效果展示 YOLOv7 + EasyOCR 实现车牌识别 什么是Flask? 简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更…

【Opencv实战】几十年前的Vlog火了:黑白老照片如何上色?这黑科技操作一定要知道,复原度超高,竟美的出奇~(图像修复神级代码)

导语 哈喽大家好呀&#xff01;我是每天疯狂赶代码的木木子吖&#xff5e;情人节快乐呀&#xff01; 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 我们都知道&#xff0c;有很多经典的老照片…