【Docker学习总结】7.Docker在容器中用Nginx部署静态网站

Nginx部署前端静态网站详细教学(一步步操作) 从零开始使用Xshell、Xftp、Nginx 简单部署静态网站,需准备云服务器(阿里云、腾讯云、华为云等都可) 阅读详情

我们将在Docker容器中使用Nginx搭建一个静态网站,通过这个部署,让大家对在前几节中学到的Docker容器知识,有进一步的熟悉和理解。

在开始部署之前,首先我们需要先了解一个概念,就是容器的端口映射。我们知道,网站服务通常是通过80端口来提供的,那么我们如何访问容器的80端口呢?这就需要在运行容器时,设置容器的端口映射。

一、指令介绍

设置容器的端口映射,可以使用run命令的两个选项(-P和-p)来实现:

run [-P][-p]

分别是一个大写的P和一个小写的p,其中,大写的P为“publish-all”的意思,可以指定为true或false,默认为false。
使用大写的P,将为容器暴露的所有端口进行映射。例如:

docker run -P -i -t centos /bin/bash

而小写的p则表示普通的“publish”动作,来指定需要映射容器的哪些端口。而指定容器端口的映射有四种模式,分别为:

(1)docker run -p 80 -i -t centos /bin/bash
该写法为“-p containerPort”,即仅指定容器的端口,在该情况下,宿主机的端口是随机映射的。
(2)docker run -p 8080:80 -i -t centos /bin/bash
该写法为“-p hostPort:containerPort”,即同时指定了宿主机的端口以及容器的端口。
(3)docker run -p 0.0.0.0:80 -i -t centos /bin/bash
该写法为“-p ip:containerPort”,即指定ip和容器的端口。
(4)docker run -p 0.0.0.0:8080:80 -i -t centos /bin/bash
该写法为“-p ip:hostPort:containerPort”,即指定ip、宿主机和容器的端口。

 

二、在容器中搭建Nginx服务、部署静态网页

下面我们就来看一下,如何在容器中部署Nginx服务。它需要以下步骤:
●创建映射80端口的交互式容器

 首先,打开我们之前的CentOS 7虚拟机,然后运行一个带端口映射的交互容器(系统依旧为centos),命名为“web”:



●在容器中安装Nginx

 进入容器中后,来安装Nginx。首先安装nginx的依赖lib库

yum install gcc-c++

yum install pcre pcre-devel

yum install zlib zlib-devel

yum install openssl-devel

  正式安装Nginx

 

cd /usr/local

yum -y install wget

wget http://nginx.org/download/nginx-1.7.4.tar.gz

tar -zxvf nginx-1.7.4.tar.gz

mkdir nginx

cd nginx-1.7.4

./configure --prefix=/usr/local/nginx

yum -y install gcc automake autoconf libtool make

make 

make install





●在容器中安装文本编辑器vim

 

yum install -y vim


●创建静态页面

mkdir /var/www/html

cd /var/www/html

vim index.html


●修改Nginx配置文件

 

cd /usr/local/nginx/conf

vim nginx.conf

 


●运行Nginx

我们使用Ctrl+P或者Ctrl+Q来退出容器


●验证网站访问

当然我们也可以使用容器的ip地址来访问,使用“docker inspect 容器ID/名”命令查看容器详情:

可以看到,docker容器的ip地址为172.17.0.2,我们使用curl来直接访问http://192.168.3.129(80端口无需指定):

 

当然,我们也可以在浏览器中访问该页面,首先通过ifconfig了解我们虚拟机的ip为多少:

 

三、有关重启的问题

我们再次使用docker ps,可以看到容器中的服务依然在运行中:

此时我们使用“docker stop 容器ID/名”来停止该容器:

当再次重启该容器的时候,我们可以发现,重新启动的容器并没有启动Nginx:

此时我们可以选择在容器中重新启动Nginx,这里和前面一样。或者选择在外面启动Nginx,首先依然使用Ctrl+P或者Ctrl+Q来退出容器,然后在外面(宿主机)启动容器,使用docker exec指令(docker exec 容器ID/名 服务命令):

可以看到我们的docker容器中的nginx服务已启动,此时需要注意的是,我们的ip映射发生了变化:

而虚拟机的ip暂时没有发生变化:

 

 

 

 

 

 

 

 

 

关于centos7.7 docker nginx容器部署静态网站css\js未加载解决 关于centos7.7 docker nginx容器部署静态网站css\js未加载解决 1、准备好需要部署的静态文件 2、上传文件到服务器 可以先在服务器根目录创建一个文件夹存放静态文件 创建文件夹命令:mkdir 名字 3、获取nginx容器名称并进入容器 查看容器id:docker ps 进入容器命令:docker exec -it 容器id或容器名称 /bin/bash 4、把文件拷进容器内 为了方便管理我们先在容器内创建一个文件夹 参考步骤二 宿主机文件拷进容器的命令:docker cp 阅读详情

相关推荐

Unity3d实现红外热成像效果

1.将需要在红外图像中高亮的物体设置到图层PostProcessing。 2.新建一个相机CameraHighLight,设置其Culling Mask为PostProcessing,也就是在这个相机中只有PostProcessing图层的物体可见。 3.新建一个RenderTexture,命名为HightLightRt,将CameraHighLight的Target Texture设HightLightRt。 4.新建一个相机Camera2,这个相机用于显示其他物体。 接下来将CameraHigh

zouxin_88的专栏 8330

当黑客就学Docker——个人入门笔记Day1:概念篇

Day1-认识相关概念 1.Docker:是开源应用容器引擎,轻量级容器技术。 2.Images 镜像:一个只读模板,可以用来创建容器,一个镜像可以创建多个容器 3.Container 容器 :容器是从镜像创建的运行实例,也就是镜像启动后的一个实例称为容器,是独立运行的一个或一组应用。 4.Resoisitory 仓库:仓库是集中存放镜像文件的场所,类似 git 代码仓库等。 仓库是集中存放镜像文...

Tuye的博客 386

主流算力卡性能对比分析

超大规模AI训练/HPC:优先选择NVIDIA H100或AMD MI300X,需关注显存带宽和多卡互联能力。企业级AI训练:NVIDIA A100性价比更高,生态成熟。国内自主可控需求:华为昇腾910B是首选,支持液冷和低功耗设计。本地AI推理/游戏:NVIDIA RTX 4090或RTX 5090性价比突出,但需注意显存容量限制。边缘计算/低功耗场景:华为昇腾310或清微智能TX536(能效比6.3TOPS/W@INT8)更合适。

m0_69867914的博客 7810

docker 上面安装 Nginx 以及设置访问 IP 就可以访问前端工程

记录下最近使用 docker 安装 nginx 之后,直接通过 IP 访问的时候踩过的坑,其实是比较简单的东西,就是有点儿生疏了,并且按照之前安装 nginx 报错,也一并处理了报错。

Wayfreem的博客 1141

【基金量化研究系列】基金绩效归因模型——Brinson多期归因模型

文章目录1. 引言2. Brinson单期归因模型2.1 模型框架2.2 公式推导3. Brinson多期归因模型3.1 模型框架3.2 公式推导4. Brinson模型的应用场景4.1 基金组合归因4.2 基金经理能力刻画4.3 大类资产配置应用5. 模型的实现与实证案例研究写在最后 1. 引言 在 2. Brinson单期归因模型 2.1 模型框架 wp wb rp 组合收益:wp rp 择股收益:wb rp rb 择时收益:wp rb 基准收益:wb rb 2.2 公式推

Mikey_Sun的博客 1万+

iOS反编译-hook微信之艾特所有人

all。

2501_90243249的博客 761

docker部署服务之docker部署nginx服务

nginx利用docker容器快速部署,配置文件和静态web可以修改

lws_163的博客 8388

RK3588 hdmiout调试(一)

RK3588 hdmiout调试(一)

目前从事linux驱动开发,多交流多学习吧 5174

docker(3)--docker网络

一、docker原生网络 docker的镜像是令人称道的地方,但网络功能还是相对薄弱的部分。 docker安装后会自动创建3种网络:bridge、host、none Docker在启动时会开启一个Linux bridge(虚拟网桥设备)docker0,默认的地址为172.17.0.1/16,容器启动后都会被桥接到docker0上,并自动分配到一个ip地址. 1.docker网络中的bridge网络模式 bridge模式下容器没有一个公有ip,只有宿主机可以直接访问,外部主机是不可见的,但容器通过宿主

m0_62885194的博客 1346

深度解析 Android 开发工程师岗位:技术栈、职责与面试全攻略

本文深度剖析Android开发工程师职位要求,从核心技术栈到面试准备进行全面解读。关键点包括:1)掌握Kotlin语言特性和Jetpack组件;2)具备UI开发、性能优化和逆向分析能力;3)理解MVVM架构和Room数据库;4)熟悉常用工具链和开发流程。文章提供了详细的面试题库及解析,涵盖基础概念、UI优化、架构设计等方向,并给出职业发展建议:夯实基础、拓展技术广度、培养工程素养。旨在帮助开发者系统性地准备Android岗位求职,把握移动开发领域的技术趋势。

郑伟强dev的专栏 176

【芯片设计- RTL 数字逻辑设计入门 番外篇6 -- 术语 Tile 介绍】

在系统级芯片(System on Chip, SoC)设计中,“tile” 是一个可以指代不同概念的术语,但通常它指的是芯片上的一个独立的功能单元或核心。一个 tile 可以包含一个或多个处理器核心、缓存、内存控制器、输入输出设备、外设接口或其他功能模块。在 SoC 上,多个 tile 可以被组合和连接起来,以形成一个完整的系统。

CodingCos的博客 3082

在centos docker中利用nginx部署静态网站

本文简单介绍在centos docker中利用nginx部署静态网站 我使用的是centos7系统,首先分析整个过程有如下步骤: 创建一个映射80端口的交互式容器 安装nginx 安装vim 创建静态网页 修改nginx配置 运行nginx 验证是否成功 (注意,nginx和vim都是安装在docker中) 1.创建一个名...

benarchen 的博客 3024

硬方案——几种实用的恒流源电路设计方案,敬请收藏(运放、三极管在手,让你玩出多种花样)

0 引言 我们在信号测量、供电等应用场景时常会涉及到使用恒流源,以前觉得恒流源挺神奇的,研究了下实现方案,其实也没有多么高深(这里讨论的仅限于用在信号测量中的小电流恒流源设计),这里给出几个实用的恒流源电路设计方案。 1 恒流源电路设计 (1)使用三极管搭建的恒流源 (2)使用运放搭建的恒流源 (3)使用恒流二极管搭建的恒流源 pt100恒流源测温电路图_电子技术_电工之家 ...

数字世界 万物互联 9525

docker中利用nginx部署静态网站

docker中利用nginx部署静态网站 1.创建一个名为web的交互式容器,端口为80 # docker run -p 80 --name web -it centos /bin/bash 2.在容器中安装nginx # rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.n...

jinliang1star的博客 676

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

在docker中部署静态网站

在docker中部署静态网站 docker ps -a 列出所有容器 2.docker ps -l 列出正在运行的容器 3.docker inspect node(容器名) 列出该容器的配置信息 docker run --name=container01 -i -t ubuntu /bin/bash 创建一个容器名为container01,环境为ubuntu的容器,并运行该容器 docker rm CONTAINER_ID(容器ID,通过docker pa -a可以查看) 通过容器ID删除容器,注意,如

tororo_cat的博客 1221

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【Docker学习总结】7.Docker在容器中部署静态网站

上一篇我们介绍了Docker守护式容器的启动方式,本篇我们来学习如何在Docker容器中部署静态网站。 这里我们将在Docker容器中使用Nginx搭建一个静态网站,通过这个部署,让大家对在前几节中学到的Docker容器知识,有进一步的熟悉和理解。 在开始部署之前,首先我们需要先了解一个概念,就是容器的端口映射。我们知道,网站服务通常是通过80端口来提供的,那么我们如何访问容器的80端口呢?这...

程序猿之洞 2788

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

使用docker部署静态网站(nginx)

文章目录创建映射80端口的交互式容器安装nginx创建静态页面修改nginx配置文件运行nginx验证网站访问 创建映射80端口的交互式容器 [root@localhost ~]# docker run -it -p 80 --name web centos /bin/bash 安装nginx 安装wget、vim、make以及一些所需要的库文件和语言环境 [root@ca453e479d0c...

lvbibir的博客 1778

docker中使用nginx镜像布置静态网站

本篇博客写的是使用docker镜像中的nginx来进行一个静态网站的部署 实验环境: docker1:rhel7.3系统 镜像包:nginx.tar 在之前的文章里面分享过,可以翻着找一下 1.导入nginx镜像 [root@docker1 images]# docker load -i nginx.tar 2.运行nginx容器 [root@docker1 images]# d...

橙汁Iter的博客 1036

在容器中部署静态网站

利用docker技术在容器中使用nginx部署一个静态网站。 容器的端口映射 在使用run的时候指定-p或-P来进行端口映射: -P:将为容器暴露的所有端口进行映射 eg:docker run -P -it centos /bin/bash -p:指定映射哪些容器的端口 eg:1、只指定容器端口(宿主机端口随机映射) docker run -p ...

lyzkks的博客 815

Nginx-Docker下安装Nginx并部署静态网站

一、Docker安装Nginx教程 Docker安装Nginx教程 二、Nginx部署静态网站 1. 把静态文件放到挂载的宿主机目录内: Docker nginx 容器内 /usr/share/nginx/html/ 挂载到了宿主机 /root/nginx/www/ camelia是我这个静态网站的项目文件夹,里面包含css/js/images等文件夹和html静态文件 2. 修改配置文件 ...

localhost 762

“基于 Docker + Nginx 搭建静态网站,并实现网站内容更新” 的流程

摘要: 本文介绍利用Docker+Nginx快速搭建静态网站的完整流程。通过Docker容器化技术确保环境一致性,配合Nginx高性能处理静态资源。核心步骤包括:安装Docker环境、配置Nginx服务规则、编写网站首页、构建Docker镜像,并通过Docker Compose统一管理。该方案支持一键更新网站内容(修改HTML后重新构建容器即可),具有部署快、环境统一、维护便捷等优势,特别适合个人博客、企业官网等静态场景。

2301_79274977的博客 1423

Docker容器学习总结(超全)

Docker容器学习总结(超全) 前言: 由于公司业务需求,所以最近才开始学之前一直想学的Dokcer容器 文章目录Docker容器学习总结(超全)前言:什么是容器?什么是Docker?Docker的目标Docker的使用场景Docker的基本组成Docker容器相关技术简介Docker依赖的Linux内核特性Namespaces 命名空间:Control groups (cgroups) 控制组:Docker容器的能力Docker的安装与部署Centos7上安装docker一、安装docker二、问题

jiege1123的博客 4099

从静态网站到容器化应用:一站式部署实战指南

部署是将本地代码转化为线上可访问服务的关键环节,其核心在于构建、传输、环境准备、服务启动、网络配置与监控验证的标准化流程。理解这一通用模型,能有效解决环境差异、依赖冲突等常见问题,提升应用交付的可靠性与效率。容器化技术(如Docker)通过封装应用及其运行环境,实现了“一次构建,处处运行”,极大简化了环境一致性难题。结合Nginx反向代理、PM2进程管理等工具,可以构建从静态页面到Node.js、Python、Java等动态应用的自动化部署流水线。本文聚焦于Docker和Nginx等热词,为你梳理出一条清晰

weixin_34293141的博客 411

在容器中部署静态网站----Nginx

在容器中部署静态网站----Nginx   步骤: 1.创建映射端口的交互式容器 docker run -p 80 --name web -i -t daocloud.io/ubuntu /bin/bash 2.安装Nginx apt-get install -y nginx 3.安装文本编辑器vim apt-get install -y vim

见证大牛成长之路的专栏 9378

docker 在容器中部署静态网站-Nginx部署流程

1.创建映射80端口的交互式容器  docker run -p 80 --name web -i -t ubuntu /bin/bash     注解:ubuntu  也可以用其他系统centos 2.安装Nginx   apt-get install -y nginx  可能会出现找不到nginx包,可以使用apt-get update 更新本地资源在安装 3.安装文本编辑器vim(如果...

怎么肥事 775

设置容器的端口映射和在容器中部署静态网站

在容器中部署静态网站 一、设置容器的端口映射 docker run -d -i -t -P 镜像名 [命令] [参数] -d:让容器在后台运行。 -P:将容器内部使用的网络端口映射到我们使用的主机上。 docker run -d -i -t -p 镜像名 [命令] [参数] -p : 是容器内部端口绑定到指定的主机端口 1.-p 80 容器端口80,主机端口随机 2.-p 80:80 容器端口80,主机端口80 3.-p 127.0.0.1:80:80 通过访问127.0.0.1:80来访问容器的8

zzy0520的博客 243
上一篇: 【Docker学习总结】6.Docker守护式容器
下一篇: 【Docker学习总结】8.Docker-查看和删除镜像
Rita楠神
博客等级 码龄9年 27粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值