docker实战之通过nginx镜像来部署静态页
本章我们主要讲解如何通过docker构建一个nginx容器,这里我们以部署一个静态html为素材来进行演示。
首先我们通过【docker search nginx】命令来查找Docker Hub上的nginx镜像:

这里我们拉取官方的镜像就可以了,通过【docker pull nginx】命令。
拉取完以后,我们查看一下本地的镜像列表【docker images】:

nginx已经有了,其他的几个镜像不用管,是我做别的demo时用过的。
好了,有个nginx镜像以后,我们就可以通过这个镜像来构建一个包含nginx的容器,通过这个容器,我们可以运行我们的demo项目。
在构建容器之前,我们先准备好我们的素材,也就是静态html和nginx相关配置,我这边在centos上建了一个home目录,里面有application和config两个文件夹,一个存放网站发布文件,一个存放配置。各自的路径和文件如图:

demo.html里面没内容,只是一个标准的html文件,default.conf文件则是nginx部署网站的配置:

listen是端口,默认80就可以了,这个是网站在服务器的内部端口,外网通过这个端口是访问不到站点的。到时候容器运行时会做端口映射,重新指定端口供外网访问。server_name后面写localhost表示本地即可,location里面的root表示nginx部署站点所在文件路径,由于我们是容器部署,所以这里的/app路径其实是容器的目录。index是启动项,我们设置为我们的demo.html即可。
网站文件和nginx配置准备好了以后我们就可以开始通过nginx镜像来构建我们的容器了,容器都有自己的目录的,但是为了方便操作以及做持久化,我们会通过docker运行容器的-v参数来做目录挂载。
运行容器的命令【docker run -d -p 8086:80 -v /home/application/demo:/app -v /home/config:/etc/nginx/conf.d --name demo nginx】
首先我来说一下这几个参数,docker run 是运行一个容器的意思,-d 表示后台运行 -p 8086:80表示将内部的80端口映射到外网8086端口上,-v表示挂载目录,格式是 -v 宿主机目录:容器目录。上面的命令中我们指定了网站资源文件路径和nginx配置,分别对应我们之前在宿主机的home文件里面放好的两个文件夹。
执行完上面的命令以后会出现一行字符串,即表示运行成功:

紧接着我们通过【docker ps】命令来查看我们正在运行的容器:

可以看到一个名为demo的容器已经在运行了,从左往右我们依次可以看到容器id、基于的镜像、执行的命令、创建时间、状态、端口、容器名称。
最后,我们通过IP+端口的形式即可打开我们部署的页面了:

Remarks:
以上教程需要注意的地方:如果是新购的服务器,或者对服务器不熟悉的同学,实践以后发现ip+端口打不开部署好的网站,那么多数情况下就要检查服务器上是否开发了相应端口,以博主为例,使用的是阿里云服务器,在安全组规则里,相关端口都是打开的。另外,本文提到了一个挂载目录的操作, 这个操作可以将宿主机目录挂载到容器目录,从而实现容器的可持续化,一般像容器内的日志啊,产生的数据文件啊,都可以通过挂载的方式挂到宿主机,这样即便容器没了,宿主机也会有记录文件。还有一点就是,如果你不喜欢挂载这个操作,觉得以后删除容器以后还得再删宿主机下的文件夹比较麻烦,而且自己的业务场景不需要做可持续,那么在创建容器的时候,可以不使用-v命令,而是直接创建,等创建成功以后,通过docker cp命令来实现宿主机文件到容器目录的拷贝操作,命令格式是 docker cp 宿主机目录:容器目录,具体用法我这里就不多讲了,大家线下多实践。
docker实战之通过nginx镜像来部署静态页的更多相关文章
- Docker 实战—使用 Dockerfile 构建镜像
Dockerfile 指令详解请访问:https://www.cnblogs.com/cloudfloating/p/11737447.html 使用 Alpine Linux 作为基础镜像 Alpi ...
- 详解docker实战之搭建私有镜像仓库 - kurbernetes
1.实战目的 搭建企业私有的镜像仓库,满足从开发环境推送和拉取镜像.当我们使用k8s来编排和调度容器时,操作的基本单位是镜像,所以需要从仓库去拉取镜像到当前的工作节点.本来使用公共的docker hu ...
- docker安装并修改Nginx镜像
1.安装nginx镜像,命令:docker pull nginx 2.创建nginx容器,并启动,命令:docker run --name webserver -d -p 192.168.51.227 ...
- docker学习之路-nginx镜像(翻译)
本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...
- Docker学习のDocker中部署静态页网站
前言:部署一个静态页网站,我们需要 常见映射80端口的交互式容器 安装Nginx(或其他服务器) 安装文本编辑器vim 创建静态页面 修改Ngnix的配置文件 运行Ngnix 验证网站的防高温 一.设 ...
- Nginx部署静态页
简答说一下如何用Nginx部署静态网页,并绑定域名访问 1.通过FTP上传静态页到服务器指定目录 2.编写nginx的.conf文件 3.重启nginx 如图,这是centos上传文件路径 nginx ...
- docker制作cenos+php56+nginx镜像
首先你环境要安装好docker 1 获取centos镜像. docker search centos 选取第一个官方镜像. docker pull docker.io/centos 新建镜像挂载目录 ...
- [Docker] 制作并运行 Nginx 镜像
环境 操作系统(cat /etc/redhat-release):CentOS Linux release 7.6.1810 (Core) Docker:18.09.6 文件 Dockerfile F ...
- Docker实战(七)之为镜像添加SSH服务
1.基于commit命令创建 Docker提供了docker commit命令,支持用户提交自己对制定容器的修改,并生成新的镜像.命令格式为docker commit CONTAINER [REPOS ...
随机推荐
- TeamCity安装和配置
目录 TeamCity安装和配置 前言 持续集成(CI) TeamCity 环境 安装 配置TeamCity 项目构建 效果展示 TeamCity自动构建项目及集成IDEA(待更新......) 结束 ...
- MySql8.0 安装重要的两步。
1.去官网下载mysql社区版 windows安装包. 2.在安装包 安装的过程中,有一步就是启动mysql 会失败: 然后修改服务后,再次回到安装界面点击:execute,就会成功了. 先去配置一下 ...
- ORACLE 存储过程提高
1.SQLCODE和SQLERRM 2.%TYPE和%ROWTYPE的使用 3.sql%rowcount的作用 1.SQLCODE和SQLERRM SQLCode:数据库操作的返回码,其中 --成功: ...
- nohub
nohup command > myout.file 2>&1 & nohup command > /dev/null 2>&1 &
- 怎么制作电脑系统安装U盘?
现如今U盘安装电脑系统已经是非常普遍的一种方式,这种方式简单好用,能应对大多数情况,受到很多用户的欢迎. 雨后清风U盘启动是一款可将普通U盘制作为系统引导启动工具的软件,其制作的U盘启动盘融合了雨后清 ...
- 【已解决】如图,说我磁盘不够,看到var目录下有的个隐藏文件夹占了46G,不知道怎么删除
后来发现不是隐藏目录,是其中的log目录,然后一步一步往下,找到jenkins.log文件,已经有40+G的log了.
- H5中的requestAnimationFrame
这两天做一个公告展示轮播的动画,刚开始是用setinterval写的,后来发现做出来的动画效果有抖动的现象,动画不流畅,遂决定试试requestAnimationFrame,之前也只是耳闻,没有用过, ...
- webpack中配置eslint
首先安装eslint npm install eslint --save-dev 安装好这个工具后,初始化eslint npx eslint --init 这个时候会自动生成.eslintrc.js ...
- 大数据之路week02 Collection 集合体系收尾(Set)
1.Set集合(理解) (1)Set集合的特点 无序,唯一. (2)HashSet集合(掌握) A: 底层数据结构是哈希表(是一个元素为链表的数组) B: 哈希表底层依赖两个方法: hashCode( ...
- re模块中的非贪婪匹配
python的re模块中有贪婪匹配和非贪婪匹配之分,当使用*时会匹配零个或多个,使用+时会匹配一个或多个.当使用?在前边特殊符号前时会进行非贪婪匹配,匹配零个或者一个,今天主要讨论非贪婪匹配中存在的坑 ...