Docker基础教程 - 12 常用容器部署-Nginx

更好的阅读体验:点这里 ( www.doubibiji.com

12 常用容器部署-Nginx

下面介绍一下常用容器的部署。可以先简单了解下,用到再来详细查看。

在 Docker 中部署 Nginx,并通过挂载方式将 Nginx 的配置文件和站点目录挂载到宿主机上。

12.1 下载镜像

docker pull nginx

默认下载的就是最新的镜像文件。

12.2 创建挂载目录

在宿主机上创建挂载目录,自己自定义放在哪里。

# 配置文件目录
mkdir -p /home/doubi/docker_dir/nginx/conf
# 站点目录
mkdir -p /home/doubi/docker_dir/nginx/html
# nginx日志目录
mkdir -p /home/doubi/docker_dir/nginx/log# 递归赋予文件夹读写执行权限
chmod -R 777 /home/doubi/docker_dir/nginx

12.3 复制配置文件

如果我们此时使用如下指令直接运行容器会存在一个问题。

docker run -d -p 8080:8080 --name nginx --restart=always \-v /home/doubi/docker_dir/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /home/doubi/docker_dir/nginx/conf/conf.d:/etc/nginx/conf.d \-v /home/doubi/docker_dir/nginx/log:/var/log/nginx \-v /home/doubi/docker_dir/nginx/html:/usr/share/nginx/html \nginx

宿主机不存在不存在 nginx.conf 文件,会把 /home/doubi/docker_dir/nginx/conf/nginx.conf 当成文件夹来处理,那么把宿主机的 /home/doubi/docker_dir/nginx/conf/nginx.conf 文件夹映射到容器的 /etc/nginx/nginx.conf 就会报错。


怎么处理呢?

我们首先通过 nginx 镜像运行一个简单的容器,将简单的容器中的配置文件复制到宿主机中,然后删除简单的容器,重新使用上面的命令运行我们的容器。

运行一个简单的容器

# 启动容器
docker run --name nginx -p 8080:80 -d nginx

复制配置文件到宿主机

# 将容器中nginx.conf文件复制到宿主机的挂载目录中
docker cp nginx:/etc/nginx/nginx.conf /home/doubi/docker_dir/nginx/conf/nginx.conf
# 将容器中conf.d文件夹下内容复制到宿主机的挂载目录中
docker cp nginx:/etc/nginx/conf.d /home/doubi/docker_dir/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机的挂载目录中,后面没有html
docker cp nginx:/usr/share/nginx/html /home/doubi/docker_dir/nginx

删除简单的容器

docker rm -f nginx

12.4 运行容器

现在有配置文件了,可以运行容器,并进行挂载了:

docker run -d -p 8080:80 --name nginx --restart=always \-v /home/doubi/docker_dir/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /home/doubi/docker_dir/nginx/conf/conf.d:/etc/nginx/conf.d \-v /home/doubi/docker_dir/nginx/log:/var/log/nginx \-v /home/doubi/docker_dir/nginx/html:/usr/share/nginx/html \nginx

参数说明:

  • -d:后台运行
  • -p: 端口映射(宿主机端口:容器端口),nginx配置文件中默认使用的是80端口,所以容器的端口使用的是80,除非修改配置文件。
  • –name 创建容器的名称
  • –restart=always 容器停止后自动重启
  • -v 目录挂载(宿主机目录:容器目录)
  • 最后的nginx表示镜像的名称

12.5 访问首页

现在通过 http://IP:8080 就可以访问了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

12.6 部署vue项目

首先将 vue 项目中打包生成 dist 文件夹中的内容,全部拷贝到与nginx的html相映射的文件夹中,然后重启docker内的 nginx。

或者将 dist 解压到 html 文件夹,然后修改 conf.d 文件夹中的 default.config 文件,修改根目录映射 html 下的 dist。

location / {root   /usr/share/nginx/html/dist;try_files  $uri $uri/ /index.html;
}

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

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

相关文章

python 字典 集合 基础内容

‘’‘1. 字典的长度是多少 2. 请修改’java’ 这个key对应的value值为98 3. 删除 c 这个key 4. 增加—个key-value对, key值为 php, value是90 5. 获取所有的key值,存储在列表里 6. 获取所有的value值,存储在列表里 7. 判断 javascript 是否在字典中 8. 获得字典里所有value 的…

开发指南006-后端配置文件

后端配置文件分为两层,一是部署目录中的内容如下: 这里最重要的是端口号,同一个目录下可以是一个jar包多个配置文件,启动批处理中,按一个配置文件启动一个程序的方式启动多个服务。例如上面目录里的启动批处理文件可以…

Asp .Net Web Forms 系列:配置图片防盗链的几种方法

通过 URL Rewrite Module 组件 URL Rewrite Module 是一个用于在 ASP.NET Web Forms 或其他基于 IIS 的 Web 应用程序中重写 URL 的强大工具。这个模块允许你将复杂的、不易于记忆或不利于搜索引擎优化的 URL 转换为更简洁、更友好的格式。通过 URL 重写,你可以提高…

【存储】ZYNQ+NVMe小型化全国产存储解决方案

文章目录 1、背景2、基础理论3、设计方案3.1、FPGA设计方案3.1.1、NVMe控制器实现3.1.2、NVMe控制器实现 3.2 驱动软件设计方案3.2.1 读写NVMe磁盘软件驱动3.2.2 NVMe磁盘驱动设计3.2.3 标准EXT4文件系统设计 3.3 上位机控制软件设计方案 4、测试结果4.1 硬件测试平台说明4.2 测…

同步通信与异步通信

同步通信:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步通信:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 像IIC 、SPI这类是同步通信(凡是带有时钟信号的基本上…

ava开发从入门到精通(一):Java日志

目录: Slf4j Log4j LogBack ELK 1、Slf4j slf4j 的全称是 Simple Loging Facade For Java,即它仅仅是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如 JDBC 一样,只是一种规则而已。所以…

解码人工智能的幽默:理解其背后的误解与挑战

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

个人职业规划的制定方法

在竞争激烈的职场环境中,一个明确的职业规划对于个人发展至关重要。本文将探讨我的个人职场规划,包括短期和长期目标,以及实现这些目标所需的策略和行动。 一、自我评估 1.1 职业兴趣:我对市场营销和数据分析领域充满热情&#xf…

C# 面向对象

在 C# 中,面向对象编程(Object Oriented Programming,OOP)是一种编程范式,它将软件系统分解为多个相互关联的对象,每个对象都具有自己的属性和行为。下面是一些 C# 中面向对象编程的基本概念和特性&#xf…

Day36:安全开发-JavaEE应用第三方组件Log4j日志FastJson序列化JNDI注入

目录 Java-项目管理-工具配置 Java-三方组件-Log4J&JNDI Java-三方组件-FastJson&反射 思维导图 Java知识点: 功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方库使用…

VB 短发送系统 VB开启系统服务-150-(代码+程序说明)

转载地址: http://www.3q2008.com/soft/search.asp?keyword150 VB程序作为服务,定期的将库里的数据更新,当然VB写服务程序,服务的是导数据,里面有很强的数据关系 做了几个ASP页面 供他们存储数据 添加信息界面 (网页) 数据库 (发送表sendqu…

day41 动态规划part3

343. 整数拆分 中等 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 但是dp[0] 和 dp[1]为什么是0值得讨论,或者说不用讨论,压根…

log 查询

zgrep -a xxx folder_name/*gz 查询folder_name 文件下 以gz结果的压缩文件中包含 xxx 关键字的 数据

加密与安全_PGP、OpenPGP和GPG加密通信协议

文章目录 PGPOpenPGPGPG工作原理工作流程用途案例说明过程 代码实现pom依赖PgpEncryptionUtilPgpDecryptionUtilCommonUtilsPgpEncryptionTest 小结 PGP PGP (Pretty Good Privacy) 是一种加密通信协议,用于保护电子邮件和文件的安全性和隐私。它通过使用加密、数字…

uni-app开发特点和开发流程

uni-app是一个基于Vue.js框架的跨平台应用开发框架,通过一套代码可以同时运行在多个平台上,包括iOS、Android、H5等。它采用了基于流布局的页面渲染机制,可以自动适配不同平台的屏幕尺寸和分辨率。uniapp官网:https://uniapp.dclo…

qt 汉字输出 中文输出 显示乱码 qDebug() 乱码 解决

要正确显示汉字,必须要先了解计算机文字编码相关知识,参考:unicode ucs2 utf16 utf8 ansi GBK GB2312 互转 及 渲染_ucs2编码转换-CSDN博客 1、汉字输出到 应用程序输出面板 qt 自定义的输出类qDebug() 、QDebug对象、QMessageLogger默认输…

用眼精星票证识别系统,轻松将户口本转成结构化Excel

眼精星票证识别系统是一款革命性的软件,它以高度的精准性和效率为特点,为用户提供了一个简单便捷的工具,将纸质户口本转化为结构化数据。这一创新技术不仅改变了传统数据录入的方式,还大大提高了工作效率,为用户节省了…

【区块链】讲解

区块链 区块链是一种分布式数据库技术,其主要特点是去中心化和不可篡改性。这种技术最初是为了支持比特币这种数字货币而开发的,但如今已经被广泛地应用在其他许多领域。 以下是对区块链技术的详细讲解: 去中心化: 传统的数据库如银行记录或…

从SPI协议学习PX4源码

一、SPI类 SPI类的参数:设备名称,devname设备节点名称,总线,device片选信号线,SPI模式,时钟频率,中断。SPI类继承VDev类。 SPI协议在spi.cpp文件中,涉及到了cdev和device的操作。c…

pg_dump导出数据时报错no PostgreSQL user name specified in startup packet

pg_dump版本号:14.9 远程pgsql版本:12.13 (通过select version()语句查看) 报错信息: no PostgreSQL user name specified in startup packet pg_dump(72846,0x1dc7b6100) malloc: *** error for object 0x6f: pointer being freed was no…