Docker学习日志-Docker容器配置、Nginx 配置与文件映射

理解Docker中的文件系统映射:主机与容器间目录的双向映射 在使用Docker进行应用部署和管理时,本地文件系统和容器中的文件系统之间的交互是一项必不可少的功能。在许多情况下,我们需要在主机和容器之间共享数据或保持数据的持久性。那么,如何实现这种互动?实际上,Docker允许我们通过目录映射(也被称为volume映射或挂载)来处理这些问题。在这篇博客中,将讲解如何实现主机上的 A 目录映射到容器 B,以及容器内的 C 目录映射到主机 D。 阅读详情

Docker学习日志-Docker容器配置、Nginx 配置与文件映射

docker run 之后能否再次修改卷映射或端口映射?

不能直接修改已创建容器的卷映射或端口映射。
Docker 的设计原则是 **容器是不可变的 **,也就是说:
一旦容器通过 docker run 创建完成,它的配置(如卷映射、端口映射、网络等)不能直接修改。如果你需要更改这些配置,有以下几种方法:

方法一:删除容器并重新创建

my-nginx是容器名

docker stop my-nginx
docker rm my-nginx
重新运行并添加卷映射和端口映射
docker run -d --name my-nginx \
  -p 8080:80 \
  -v D:/dockerFils/nginx/nginx_html:/usr/share/nginx/html \
  nginx

方法二:使用 Docker Compose 管理配置

由于docker的设计原则是“容器是不可变的”,所以Docker Compose不是修改现有容器,而是先删除旧容器,再根据新的 compose 文件新建一个配置更新后的容器。
创建一个 示例: docker-compose.yml 文件:

version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    container_name: my-nginx

然后使用启动:

docker-compose up -d

修改配置后并启动:

version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - D:/dockerFils/nginx/nginx_html:/usr/share/nginx/html
    container_name: my-nginx
docker-compose down
docker-compose up -d

nginx配置文件

  1. Nginx 容器内的核心配置文件
    • /etc/nginx/nginx.conf (主配置文件)
      • 作用: 定义 Nginx 的全局设置。
      • 包含内容示例: 工作进程数、错误日志路径、事件模型、HTTP 模块的全局设置(如 MIME 类型、默认日志格式、连接超时)、包含其他配置文件的指令(如 include /etc/nginx/conf.d/*.conf;)。
    • /etc/nginx/conf.d/ 目录下的 *.conf 文件 (站点配置文件 / 虚拟主机配置)
      • 作用: 定义具体的网站(虚拟主机)的行为。每个文件通常对应一个域名(站点)。
      • 核心结构: 基于 server { ... } 块进行配置。
      • 配置项示例:
        • listen: 监听的端口(如 80)。
        • server_name: 绑定的域名(如 www.example.com, blog.example.com)。一个物理服务器可以通过配置多个 server 块绑定多个域名(虚拟主机)。
        • location: 定义如何处理特定请求路径的规则。
        • root: 指定该站点网页文件的根目录。
        • index: 指定默认索引文件。
        • try_files: 尝试查找文件的顺序。
        • proxy_pass: 配置反向代理(常见于应用后端)。
    • 网页文件默认目录: /usr/share/nginx/html
/etc/nginx/
├── nginx.conf
└── conf.d/
    ├── default.conf         # 站点1:www.example.com
    ├── blog.example.com.conf # 站点2:blog.example.com
    └── api.example.com.conf  # 站点3:api.example.com

示例的站点配置,只有server块

server {
    listen 80;
    server_name blog.example.com;

    location / {
        root /data/blog;
        index index.html;
        try_files $uri $uri/ =404;
    }
}

在这里插入图片描述

在这里插入图片描述

自定义运行 Nginx 容器的文件映射

在docker中使用卷映射会让容器中的配置消失,所需要先拷贝出容器中的配置文件然后再进行卷映射。

文件复制

# 创建临时的nginx用于复制文件
docker run -d --name temp-nginx -p 8080:80 nginx

# 复制主配置文件到本地:
docker cp temp-nginx:/etc/nginx/nginx.conf D:/dockerFils/nginx/nginx_mainConf/nginx.conf

# 复制站点配置文件:
docker cp temp-nginx:/etc/nginx/conf.d D:/dockerFils/nginx/nginx_defaultConf

#复制网页文件目录:
docker cp temp-nginx:/usr/share/nginx/html D:/dockerFils/nginx/nginx_html

# 停止临时容器:
docker stop temp-nginx 

# 删除临时容器
docker rm temp-nginx

进行卷映射

只替换主配置文件 + 自定义网页内容。
docker run -d --name my-nginx \
  -p 8080:80 \
  -v D:/dockerFils/nginx/nginx_mainConf/nginx.conf:/etc/nginx/nginx.conf \
  -v D:/dockerFils/nginx/nginx_html:/usr/share/nginx/html \
  nginx
映射 default.conf(站点配置) + html(网页文件)
docker run -d --name my-nginx \
  -p 8080:80 \
  -v D:/dockerFils/nginx/nginx_defaultConf/default.conf:/etc/nginx/conf.d/default.conf \
  -v D:/dockerFils/nginx/nginx_html:/usr/share/nginx/html \
  nginx
映射 nginx.conf + default.conf + html
docker run -d --name my-nginx \
  -p 8080:80 \
  -v D:/dockerFils/nginx/nginx_mainConf/nginx.conf:/etc/nginx/nginx.conf \
  -v D:/dockerFils/nginx/nginx_defaultConf/default.conf:/etc/nginx/conf.d/default.conf \
  -v D:/dockerFils/nginx/nginx_html:/usr/share/nginx/html \
  nginx

如果你挂载的是文件(如 nginx.conf、default.conf),那么容器中的对应文件会被你的本地文件完全替换。
如果你挂载的是目录(如 html),那么整个目录内容都会被替换。
如果你挂载了卷(volume),即使容器被删除并重建,只要你不删除卷本身,数据仍然是安全的。

切换到docker中的nginx文件夹内查看
docker exec -it my-nginx /bin/bash

my-nginx 为 容器名称,执行命令的shell: /bin/bash

docker elasticsearch单机映射文件到宿主机 docker 安装elasticsearch并映射配置文档到宿主机 1.安装docker docker pull elasticsearch:7.9.3 2.宿主机创建映射目录 sudo mkdir -p /mydata/elasticsearch/config/elasticsearch.yml sudo mkdir -p /mydata/elasticsearch/data sudo mkdir -p /mydata/elasticsearch/plugins 3. 映射 docker run -- 阅读详情

相关推荐

Docker+Nginx镜像部署 Vue 项目

@Docker + Nginx 镜像部署 Vue 项目 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助...

soapy2010的博客 1231

docker部署nginx并映射目录

docker stop 容器id #停止当前正在运行的容器。docker kill 容器id #强制停止当前容器。# 将容器nginx.conf文件复制到宿主机。# 将容器conf.d文件夹下内容复制到宿主机。docker rm 容器id #删除指定容器。# 将容器中的html文件夹复制到宿主机。docker restart 容器id。停止容器(name)

weixin_60843873的博客 1652

Docker 安装与配置 Nginx

1、本文全面介绍了如何在 Docker 环境中安装和配置 Nginx 容器。2、文中详细解释了如何设置 HTTPS 安全连接及配置 Nginx 以实现前后端分离的代理服务。2、同时,探讨了通过 IP 和域名两种方式访问 Nginx 服务的具体配置方法3、此外,文章还涵盖了 Docker 的基本操作,包括镜像创建、数据卷管理及容器的常规使用。

m0_74825502的博客 3962

docker部署文件映射关系

docker部署文件映射关系

weixin_42082686的博客 3212

从信号到振镜:STM32F103 + XY2-100协议 + AM26LS31芯片的激光打标/雕刻系统信号链搭建指南

本文详细介绍了基于STM32F103微控制器和XY2-100协议的激光打标/雕刻系统信号链搭建方法。从数字振镜控制协议解析、AM26LS31差分驱动电路设计到信号完整性优化,提供了一套完整的解决方案,帮助工程师实现高精度激光控制系统的开发与调试。

weixin_42536058的博客 235

在 Linux 虚拟机中手动安装 VMware Tools

对于 Linux 虚拟机,您可以从命令行手动安装 VMware Tools。对于 Linux 的较高发行版,请使用集成的 open-vm-tools 版本。 前提条件 有关 open-vm-tools 的操作系统兼容性的详细信息,请参见《VMware 兼容性指南》,网址为VMware Compatibility Guide - System Search。 开启虚拟机。 确认客户机操作系统正在运行。 因为 VMware Tools 安装程序是使用 Perl 编写的,请确认已在客户机操作系统中安..

m0_62526815的博客 1755

docker-快速部署nginx并映射当前目录静态文件及配置文件

一个小公司也用上了docker,经常需要部署nginx服务,我通常都会把他们上传到一个目录,大概就是下面的样子。这条命令是用于在Docker中运行一个名为“nginx”的容器。就是一个简单的nginx配置(因为经常需要配置代理不想进入容器和拷贝),和指定一个静态文件目录,(静态文件需要经常更新也不想进入容器和拷贝)下面是默认的nginx配置文件default.conf。

qqRZL的博客 2477

STM32CubeIDE入坑指南

一 前言 在科技日新月异的今天,作为从事效率为先的苦逼 IT 行业,秉承着我不入地狱谁入地狱的伟大革命精神,我决定再一次做第一个吃螃蟹的人,通过自身的入坑过程,为大家测试STM32CubeIDE这款新式工具。(其实是为了我能省点时间,快点做完项目,多挣点钱买几瓶肾气丸) 二 看一看别人是如何入坑的 二 手把手带你入坑 三 相关资料 ...

CH的博客 1万+

Docker下如何优雅的部署Nginx服务器

拉取镜像 $ docker pull nginx 创建映射文件 比如,我希望在/etc/web-project目录下实现对nginx的日志、配置、html网页进行文件映射,需要创建对应的本地映射文件; 创建映射主目录 ## 关于nginx容器映射文件,都保存在/etc/web-project/nginx下 $ mkdir nginx 创建对应子文件目录 /etc/web-project...

Rong姐姐好可爱 644

智能循迹小车之PID控制算法

从光电传感器获取信号确认小车和黑线的偏离角度,通过PID算法算出左右车轮速度,控制小车前进或者后退。

yzj199921的博客 4639

内存预取黑科技:__builtin_prefetch在数据库和游戏开发中的高阶用法

本文深入探讨了GCC内置函数`__builtin_prefetch`在数据库和游戏开发中的高阶应用。通过LevelDB的SSTable文件读取优化和UE5引擎场景数据流式加载的实战案例,详细解析了预取参数调优的艺术,并借助perf工具量化分析了不同策略的性能提升效果。文章还介绍了与`__builtin_expect`等内置函数的协同优化技巧,帮助开发者最大化缓存命中率。

weixin_29019241的博客 415

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

Docker 安装 (完整详细版) Docker 日常命令大全(完整详细版) 说明: Docker如果想安装软件 , 必须先到Docker镜像仓库下载镜像。 1、寻找Nginx镜像

Touch 22万+

Ubuntu22.04下,用Fast-LIVO2+3DGS重建桌面小物件:从点云到高清模型的保姆级避坑实录

本文详细介绍了在Ubuntu22.04环境下,使用Fast-LIVO2与3DGS技术进行桌面小物件三维重建的完整流程。从环境配置、数据采集到点云-图像对齐和3DGS训练,提供了针对小物件优化的参数设置和避坑指南,帮助用户实现媲美商业扫描仪的高清模型重建效果。

weixin_30897233的博客 398

Docker配置nginx

我们在使用容器的过程中需,有时候需要对容器中的文件进行修改管理,如果不做文件映射的化,我们使用docker exec -it 容器ID/容器名 /bin/bash 才能进入nginx中的文件里面如图。架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将原本要直接发送到web服务器上的http请求发送到代理服务器中。A想要组C的房子,但是A并不认识C所以租不到,但是B认识C,A找B帮忙租到了C的房子。客户端代理服务器服务器。

qq_45031509的博客 2万+

OpenClaw小白使用全攻略

OpenClaw全能技能解锁指南:从基础到进阶 摘要: 本文提供OpenClaw AI智能体的完整使用教程,帮助用户从安装后"不知道如何用"到熟练掌握核心功能。教程包含:1)控制台5大区域详解和3个必做初始化设置;2)文件管理、浏览器自动化、文档生成等5大基础功能实操,每个功能配有详细操作步骤、指令模板和效果演示;3)10+高频场景解决方案,如整理文件、搜集资料、写总结等;4)进阶技巧和常见问题解答。通过清晰的图文指引,即使电脑小白也能快速上手,实现办公自动化、提升工作效率。

通俗易懂学IT 3059

179、瑞芯微RK3588在边缘盒子中的多摄同步架构——基于PLL的帧同步与曝光同步的实测调优

第一,RK3588的多摄同步,硬件上确实支持,但软件配置的坑比想象的多。第三,传感器的tPD差异是最大的不确定因素,选型时尽量选同一批次,而且要在量产前做全温测试——我遇到过低温下tPD变化超过3微秒的情况,直接导致同步失效。我遇到过一批IMX415,tPD差异达到±8微秒,直接超出SYNC控制器的补偿范围,最后只能挑芯片,把差异小的装到同一台设备里。别用100MHz,虽然分辨率更高,但高频信号在PCB走线上更容易引入EMI,边缘盒子的结构件往往没有很好的屏蔽,实测100MHz下同步信号边沿抖动明显增大。

zzfmlxs的博客 36

docker 安装 Nginx 并配置反向代理

1.安装nginx docker镜像 获取nginx官方镜像 docker pull nginx 查看镜像库 docker images 使用nginx镜像来创建nginx容器实例 docker run --name nginx-test -p 80:80 -d nginx run 创建容器实例 -- name 容器命名 -v 映射目录 -d 设置容器后台运...

李虹柏的博客 5万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

基于Docker的Nginx的安装与配置

将主机上的 /path/to/nginx/conf 目录挂载到 Nginx 容器的 /etc/nginx/conf.d 目录后,在主机的 /path/to/nginx/conf 目录中编辑 Nginx 的配置文件,容器内的 /etc/nginx/conf.d 目录会实时看到这些更改。:是设定重启策略,意味着无论容器的退出状态码是什么,Docker都会自动重启这个容器。(1)在Nginx容器中,这个配置文件通常会被映射到宿主机的某个文件,以便于在容器外部进行编辑和管理。不支持定制的软件,不是好软件:)

南七行者的博客 1615

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Docker】docker安装nginx及端口映射相关配置

最近,在一台新服务器上准备运行一个前端vue项目,服务器上安装了docker,想要尝试试通过docker安装nginx的并运行项目,以下是操作步骤。

weixin_43977226的博客 8543

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Docker 安装nginx并且配置文件的映射

Docker 安装nginx并且配置文件的映射 1.默认已经有了docker的环境,如果没有的话请查看链接 https://docs.docker.com/get-started/ 2.首先将nginx的镜像下载到服务器上docker pull nginx [root@VM_0_2_centos opt]# docker pull nginx Using default tag: latest l...

养码一生 1万+

【docker系列】使用docker安装nginx提供web服务

一般学习一项技术,会先用一个最简单的例子或最典型的例子来向大家讲解入门内容,所以此文为大家介绍使用docker安装nginx容器服务。从基础使用的角度来讲,此文几乎涵盖了docker最核心的内容:镜像拉取、容器运行、端口映射、文件映射,虽然基础但很重要,所以对于初学者还是很有必要认真看的。

字母哥博客 7062

docker部署nginx并映射本地目录

将服务器本地的三个文件夹和nginx容器中的三个文件夹相对应上,要求你要有一定的nginx和docker基础,处理思路是1.随便起一个nginx容器;2.将容器中的配置文件复制到本地;3.删掉容器重建,并映射本地路径,难点在于conf目录。

u011243918的博客 7016

Docker安装nginx并把配置文件挂载出来

文章目录1:Docker pull 安装 Nginx2:最后总结(想了解更多就多看下) 1:Docker pull 安装 Nginx 使用 docker search 命令搜索存放在 Docker Hub 中的镜像docker search nginx(小知识:OFFICIAL:[ok] (代表这个镜像是官方镜像)) 选定需要pull到系统中的官方 Nginx 镜像(如果不选择版本,默认选择最新版(latest)) # docker pull nginx -------- nginx 为选定需

qq_38215042的博客 8706

记录用玩客云的海纳斯系统,部署Docker + nginx环境搭建web服务的项目,多nginx容器运行

本文介绍了使用海纳斯安装Docker并部署Nginx的完整流程。首先通过install-docker.sh和install-portainer.sh安装Docker及管理面板,然后拉取Nginx镜像并启动容器,配置端口映射。重点讲解了文件映射方法,将容器内的网页目录、配置文件和日志目录映射到宿主机,避免重启后数据丢失。最后详细说明了如何重新启动配置好的容器,并解决时区问题。通过docker run命令实现容器持久化运行,完成Web项目部署。整个教程步骤清晰,适合初学者学习Docker容器化部署。

weixin_45539766的博客 2474

Docker之部署Nginx容器及Nginx配置文件讲解

前言: 一开始接触Docker时,公司使用Rancher来运行管理docker容器,但后来随着自己对Docker理解加深和对Docker命令熟悉以及在工作之余练习Docker服务器内存的限制,我现在一般都是使用命令行来部署Docker容器。通过本文,读者可以学习到Docker部署Nginx容器的方法以及nginx.conf的配置。 1.Docker部署Nginx容器: step1: 部署N...

hanxiaozhang的博客 6407

docker中配置nginx容器,并挂载配置文件、数据文件、日志文件

docker中配置nginx容器,并挂载配置文件、数据文件、日志文件

pengpm的博客 3009
上一篇: window下MySQL安装(三)卸载mysql
下一篇: Docker常用命令详解:以Nginx为例
先生沉默先
博客等级 码龄6年 920粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值