前言

小编环境:

  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:端口/ 访问测试

阿里云CentOS7.3服务器通过Docker安装Nginx的更多相关文章

  1. 阿里云CentOS7.2服务器的安装

    第一步:下载服务器系统ISO安装文件 我使用的是阿里云的镜像:因为阿里云的服务在国内相对比较成熟 服务器镜像下载如下:http://mirrors.aliyun.com/centos/7/isos/x ...

  2. 在阿里云Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_84 一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更 ...

  3. 阿里云centOS7.4上MySql5.6安装

    最近一个项目要部署在阿里云上,为了开发团队方便,我自费买了个ECS,先装个数据库给开发用. 因为之前都是在真机安装,与这次阿里云上的部署比起来,还是有点区别的. Mysql 1 安装mysql版本包 ...

  4. 尝试在阿里云的Linux服务器器上安装拥有图形界面的Pycharm

    在Linux服务器上跑Python项目发现每次从本地上传文件太过麻烦,于是打算在服务器上安装Pycharm直接写Pycharm代码.   去Pycharm的官网下载Linux版本(支持正版于是我下载了 ...

  5. 阿里云centos7搭建php+nginx环境

    阿里云Centos搭建lnmp(php7.1+nginx+mysql5.7) https://jingyan.baidu.com/article/215817f7a10bfb1eda14238b.ht ...

  6. 【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  7. 阿里云Centos7使用yum安装MySQL5.6的正确姿势

    阿里云Centos7使用yum安装MySQL5.6 阿里云Centos7使用yum安装MySQL5.6 前言:由于某些不可抗力,我要在自己的阿里云服务器上搭建hadoop+hive+mysql+tom ...

  8. 阿里云CentOs7上安装Tomcat

    一.下载安装tomcat8 cd /usr/ #创建tomcat目录 mkdir tomcat #从网上download 压缩包 wget tomcat8 url #解压 tar -zxvf apac ...

  9. 阿里云centos7成功安装和启动nginx,但是外网访问不了的解决方案

    问题环境: 阿里云centos7.4.1708 问题描述:成功配置,启动成功,外网访问不了 解决方案: 经过查阅文档,去阿里云后台查看,原来是新购的服务器都加入和实例安全组. (OMG)立即去配置.加 ...

随机推荐

  1. LoRaWAN_stack移植笔记 (二)_GPIO

    stm32相关的配置 由于例程使用的主控芯片为STM32L151C8T6,而在本设计中使用的主控芯片为STM32L051C8T6,内核不一样,并且Cube库相关的函数接口及配置也会有不同,所以芯片的驱 ...

  2. Jesus Is Here[递推]2015沈阳online

    题目链接https://nanti.jisuanke.com/t/41175 自从百度之星初赛一上自己做出来一道打表找规律的题之后,这种膨胀的感觉让我近乎丧失理智,今天这道题我死死盯了两三个小时硬是没 ...

  3. vscode 代码补全工具之aiXcoder

    突然发现了一个好用的代码补全工具,与人工智能相关,具有自学习能力,据说用的越久补全效果越好,可以帮助我们节省掉好多敲代码的时间,所以这么好的工具当然要分享给大家了.废话不多说,直接上vscode的安装 ...

  4. 【入门】广电行业DNS、DHCP解决方案详解(一)——历史及现状篇

    广电发展历史 单项网络 双向网络 智能网络 广电网络现状 广电网络典型特征 接入技术混杂 承载业务多样化 业务终端错综复杂 其他 网络现状模型 总结 广电发展历史 广电就是广播电视,广电发展可以分为三 ...

  5. 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

    0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...

  6. Codeforces 1004D

    题意略. 思路: 有两个点要注意一下: 1.这个菱形矩阵是8对称的,也即可以是沿45°对角线对称. 2.菱形矩阵上的数字表明了这个点到中心0点的距离,这对于确定位置有帮助. 这个题目简直刷新人生观,这 ...

  7. ‎CocosBuilder 学习笔记(2) .ccbi 文件结构分析

    ccbi总体结构 CCBReader按字节读取.ccbi内容,每个字节8位二进制. .ccbi总体结构分为4个部分: Header 第0-3字节:ibcc .ccbi文件的标志.readHeader方 ...

  8. switch语句(上)(转载)

    switch语句是C#中常用的跳转语句,可以根据一个参数的不同取值执行不同的代码.switch语句可以具备多个分支,也就是说,根据参数的N种取值,可以跳转到N个代码段去运行.这不同于if语句,一条单独 ...

  9. 《阿里巴巴Java开发手册1.4.0》阅读总结与心得(五)

    笔者作为一名有数年工作经验的Java程序员,仔细研读了这份手册,觉得其是一份不可多得的好材料.阿里巴巴在发布时所说,“阿里巴巴集团推出的<阿里巴巴Java开发手册(正式版)>是阿里巴巴近万 ...

  10. 你真的了解Mybatis的${}和#{}吗?是否了解应用场景?

    转自:https://www.cnblogs.com/mytzq/p/9321526.html 动态sql是mybatis的主要特性之一.在mapper中定义的参数传到xml中之后,在查询之前myba ...