文档章节

阿里云CentOS7.3服务器通过Docker安装Nginx

郑清
 郑清
发布于 07/15 15:01
字数 1389
阅读 12
收藏 0

前言

小编环境:

  1. 阿里云CentOS7.3服务器
  2. docker

下面分享一次小编在自己的阿里云CentOS7.3服务器上使用Docker来安装Nginx的一次全过程

温馨小提示:
如果只是希望单纯使用docker安装nginx能跑静态资源项目不管一些配置文件所放位置的话,可直接执行如下2条命令即可
1. docker pull nginx # 拉取nginx镜像
2. docker run -d -p 80:80 --name nginx  nginx #运行nginx
然后浏览器输入访问地址测试:         http://ip地址:端口/

在这里插入图片描述

一、拉取nginx镜像

docker pull nginx

二、创建宿主机目录nginx -> 用于挂载下面在容器中找到的配置文件

温馨小提示: -p:保证目录名称存在,如果不存在则重新创建一个 html: 映射容器中的静态资源目录 logs: 日志文件目录 conf: 配置文件目录 conf.d: 配置文件子目录

mkdir -p /IT_zhengqing/soft/nginx/html /IT_zhengqing/soft/nginx/logs /IT_zhengqing/soft/nginx/conf /IT_zhengqing/soft/nginx/conf/conf.d

三、找到nginx镜像容器里面的配置文件、日志文件等位置

-> 目的:运行启动nginx时,将宿主机中的配置文件映射到容器中的配置文件(将nginx容器中的配置文件挂载到宿主机上) -> 即nginx启动后,使用的是宿主机中的配置

(1)以交互模式启动nginx容器,并在容器内执行/bin/bash命令 -> 进入到nginx容器中

docker run -it --name nginx -p 81:80 nginx:latest /bin/bash

(2)找到容器中需要的配置文件位置

①nginx.conf配置文件路径: /etc/nginx/nginx.conf

cd /etc/nginx/
ls -l 

②default.conf配置文件路径: /etc/nginx/conf.d/default.conf

conf.d:为子目录,容器走完nginx.conf配置文件后,会走conf.d子目录下的配置文件

cd /etc/nginx/conf.d/ 

③存放静态资源文件夹html路径: /usr/share/nginx/html

cd /usr/share/nginx/ 

④日志文件路径: /var/log/nginx

cd /var/log/nginx

(3)最后按Ctrl+P+Q快捷键或输入exit命令退出容器终端~

 exit

四、拷贝容器内nginx默认配置文件到宿主机中,容器名或容器ID:执行docker ps命令查看

docker cp fb5de6e5638d:/etc/nginx/nginx.conf /IT_zhengqing/soft/nginx/conf
docker cp fb5de6e5638d:/etc/nginx/conf.d/default.conf /IT_zhengqing/soft/nginx/conf/conf.d

温馨小提示: 从容器中拷贝文件到宿主机中: docker cp 容器名或容器ID:容器中要拷贝的文件所在路径 要拷贝到宿主机中的对应路径 从宿主机中拷贝文件到容器中: docker cp 宿主机中要拷贝的文件路径 容器名或容器ID:要拷贝到容器中的对应路径

五、部署nginx

温馨小提示: 上面在容器中找配置文件以交互模式启动的nginx容器如果端口和下面要使用的端口冲突的话,需要停止相应进程、容器运行哦!!! 检查端口被哪个进程占用: netstat -lnp|grep 端口号 杀掉进程【ex:强制杀掉编号为10001的进程】:kill -9 10001 停止以启动的容器: docker stop nginx 删除容器: docker rm -f nginx 然后执行docker ps查看运行的容器,如果成功删除端口会冲突的容器,再部署,走下面的流程!!!

执行如下命令部署 -> 启动运行nginx容器

docker run -d -p 81:80 --name nginx -v /IT_zhengqing/soft/nginx/html:/usr/share/nginx/html -v /IT_zhengqing/soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /IT_zhengqing/soft/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /IT_zhengqing/soft/nginx/logs:/var/log/nginx nginx

-d: 以后台模式启动容器 -> 后台运行该容器 -p 81:80: 将容器的 80 端口映射到宿主机的 81 端口 注:部分服务器需要手动去放行端口哦 --name nginx: 将容器命名为nginx -v /IT_zhengqing/soft/nginx/html:/usr/share/nginx/html: 将宿主机中创建的 html 目录挂载到容器的 /usr/share/nginx/html 目录 注意一定要找到容器中配置文件所在的准确路径,否则这里运行会报错!

六、测试访问

(1)到宿主机 /IT_zhengqing/soft/nginx/html 目录下创建 index.html 静态资源

cd /IT_zhengqing/soft/nginx/html

touch index.html # 创建文件

echo '<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>nginx容器运行中...</title>
</head>
<body>
    <h1> Hello World </h1>
    <p> If I were you. </p>
</body>
</html>' > index.html          # echo:如果没有这个文件则创建。如果有这个文件,那么新内容将会代替原来的内容。

这里也可以使用vi编辑器创建文件,命令如下:

vi index.html  # 然后按i插入 , 之后输入内容,按Esc退出编辑模式,切换到英文输入法按shift + : 再输入 wq 退出并保存
最后通过 cat index.html 命令查看文件内容

在这里插入图片描述

小编这里说下使用vi命令和echo命令去创建文件写入内容的区别: 在部署nginx运行时如果没有设置只读的情况下, (只读是挂载目录时后面加上:ro 如:-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro)

echo 命令 -> 修改内容,宿主机和容器配置文件都会改变;
vi 命令 -> 修改内容,宿主机和容器配置互不影响。

(2)浏览器输入 http://ip:端口/ 访问测试

在这里插入图片描述

© 著作权归作者所有

郑清
粉丝 1
博文 13
码字总数 11379
作品 0
成都
私信 提问
如何基于 Docker 在服务器上部署 Seafile Community 版本

如何基于 Docker 在服务器上部署 Seafile Community 版本 软硬件环境 BCC Ubuntu 16.04 Seafile Community v6.3.4 Docker v18.09.1 什么是 Seafile 安全、可靠、快速的企业云盘 Seafile 是一...

老码
03/23
0
0
centos7 安装Kubernetes 1.7.1

配置环境说明 主服务器 腾讯云,广州二区,1核1G,centos7.3 64bit 节点服务器 腾讯云,广州二区,1核1G,centos7.3 64bit 主服务器安装配置 关闭防火墙 关闭selinux 安装docker 安装k8s 修改...

yubang
2017/11/13
0
0
宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用

目录   一,安装宝塔面板(V 6.8)   二,使用宝塔安装 Docker,配置阿里云容器服务   三,安装 Rancher (Server)   四,管理 Rancher、添加集群   五,添加 Rancher 应用、服务,...

燕小范
02/23
0
0
阿里云centos7 LNMP开发环境搭建

最近新买了阿里的云服务器,准备自己搞点事情,分享一波阿里云的红包. 阿里云的购买入口 我购买的阿里云是centos7.3的.在Linux下,搭建服务最好当然是LNMP了,毕竟PHP是世界上最好的语言(开玩笑了...

紫葡萄0
01/17
0
0
aspnetcore 容器化部属到阿里云全过程记录

第一次写博客,作为一个全栈er,记录一下从阿里云到产品运维上线的全过程 一、阿里云上的设置 购买阿里云ECS后: 进控制台查看实例公网IP 在控制台、网络与安全-》安全组,配置规则 点击进去...

周SIR
08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
今天
6
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
今天
9
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
今天
5
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
今天
7
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
7
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部