系统环境:centos7.7 (VMware中)

 images版本:nginx:latest (截止2020.01.10最新版)

 1、拉取镜像 docker pull nginx

  

 2、启动nginx容器。  

docker run --name my_nginx_2020 -d -p : --restart=always -e TZ="Asia/Shanghai" nginx:latest

  

 3、访问80站点。

  

 4、挂载nginx配置文件到宿主机。以上访问正常,但如果要配置自己的项目文件,或者修改访问路径文件需要登录到容器中去,还需要安装vi等,所以我们下面使用挂载文件挂载到宿主机,一切修改在宿主机操作,还可以避免配置丢失。

  A、登录nginx容器。docker exec -it my_nginx_2020 bash。进入/etc/nginx 查看文件列表,其中nginx.conf 配置nginx的全局基础属性配置。conf.d 存放访问路径的配置文件,本文不介绍nginx相关使用介绍,请自行搜索配置参数含义~~

    

  B、more nginx.conf 查看配置内容。通过文件内容可以看到日志是存储在容器的 /var/log/nginx 文件夹下。更多配置要去conf.d 文件夹下查看。

    

  C、查看conf.d文件夹内文件配置。看到conf.d文件夹下只有一个default.conf文件,more default.conf 查看其内容,也可看到日志文件存储在/var/log/nginx文件夹下,而项目html和静态文件保存在/usr/share/nginx/html下。

    

  D、退出容器,并复制配置文件等。

    

  E、修改nginx.conf 和conf.d 中的默认文件,然后绑定到各自对应的容器文件。后来我转念一想,其实可以将两者内容合并到nginx.conf文件,那么只需要修改/www/my_nginx/nginx.conf 并挂载即可。以下是对nginx.conf的一个简单配置。

# user root;
worker_processes ; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream; log_format main '$host "$request" $remote_addr $remote_user [$time_local] $status $request_time $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; # 这个地址竟然可以是docker里面的绝对路径!!!,因为-v挂载到了此处
    keepalive_timeout  ;
fastcgi_connect_timeout ;
fastcgi_send_timeout ;
fastcgi_read_timeout ;
send_timeout ; client_max_body_size 200m;
sendfile on;
#tcp_nopush on;
#gzip on; limit_req_zone $binary_remote_addr zone=req_limit_per_ip_second:1m rate=10r/s;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip_minute:10m rate=100r/s; #server配置
server{
listen ;
server_name mytest; location ~ .*\.(php|php5|jsp)$ {
deny all;
} #
location / { root /usr/share/nginx/html; # 这个地址竟然可以是docker里面的绝对路径!!!,因为-v挂载到了此处
index index.html index.htm;
} }
}

  F、修改/www/my_nginx/html/index.html 文件。通过上面的第三步我们知道首页显示的内容,现在我们收到修改成显示Hello World

    

    

  G、删除原来启动的nginx容器,重新运行一个挂载文件的容器。

    

docker run --name my_nginx_2020 -d -p : --restart=always -e TZ="Asia/Shanghai" -v /www/my_nginx/html:/usr/share/nginx/html -v /www/my_nginx/log:/var/log/nginx -v /www/my_nginx/nginx.conf:/etc/nginx/nginx.conf:ro nginx:latest
参数解析:
-d 后台运行容器,并返回容器ID;
--name 为容器起一个容易区分且容易书写的名字
-p 映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always 机器重启时自动启动容器
-e       设定一些必须的环境变量。
          -e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
-v       挂载宿主机文件到容器。
          -v /www/my_nginx/html:/usr/share/nginx/html  挂载html等静态文件
          -v /www/my_nginx/log:/var/log/nginx        挂载日志文件
          -v /www/my_nginx/nginx.conf:/etc/nginx/nginx.conf:ro  挂载配置文件

原文地址:https://www.cnblogs.com/jying/p/12182715.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

  H、再次访问80站点。发现已经显示我们的新内容。

    

    

  G、重启nginx容器。以上页面最后显示的是中文叹号!,默认的html应该是编码不对,我们将“!”其去掉,然后重启容器。这里我推荐stop再start,因为如果用restart,有时候配置内容有错后nginx不会被重启,而还是原来的配置,docker ps发现也在运行,但其实是没有重启,会对排错造成很大的困扰。

    

    

 5、配置完成~~

  

centos7一步一步搭建docker nginx 及重点讲解的更多相关文章

  1. centos7一步一步搭建docker tomcat 及重点讲解

    系统环境:centos7.7 (VMware中) image版本:tomcat:8-jdk8-openjdk (截止2020.01.10该系列版本) 安装步骤参考文章:https://www.jian ...

  2. 搭建 docker + nginx + keepalived 实现Web应用的高可用(亲测)

    1. 环境准备     下载 VMware : https://www.vmware.com/go/getplayer-win        下载 Centos : https://mirrors.a ...

  3. 在CentOS7下从0开始搭建docker并发布tomcat项目

    一切从0开始,我也是个小白: 1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14 #uname -a 2.CentOS7下安装docker #yum -y in ...

  4. CentOS7下使用Sonatype Nexus3搭建Docker私有仓库

    相关资料: Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype Sonatype Nexus3 Docker Hub地 ...

  5. 一步一步配置docker(tomcat+jenkins+phpmyadmin+nginx)

    经过半个月的docker学习实践,今天对自己的学习成果做个总结. 貌似官方推荐的是docker compose使用DockerFile 来配置,但目前还没学习使用docker compose,先学习通 ...

  6. 一步一步搭建Jenkins环境

    Jenkins使用经验谈1(一步一步搭建Jenkins环境)在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下.我们来一起搭建Jenkins环境.首 ...

  7. 【Linux】一步一步学Linux——Centos7.5安装图解(08)

    00. 目录 参考博客:https://mp.csdn.net/mdeditor/95031775# 01. Centos7.5简介 CentOS(Community Enterprise Opera ...

  8. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

  9. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

随机推荐

  1. IIS-URL重写模块配置参考

    本文提供了URL重写模块的概述,并解释了该模块使用的配置概念. 功能概述URL重写模块将请求URL重写为显示给用户或Web应用程序的简单,用户友好和搜索引擎友好的地址.URL重写使用定义的规则进行评估 ...

  2. AtCoDeer and Election Report

    问题 G: AtCoDeer and Election Report 时间限制: 1 Sec  内存限制: 128 MB[提交] [状态] 题目描述 AtCoDeer the deer is seei ...

  3. php自动读取文件夹下所有图片

    $path = 'xxxxx';///当前目录$handle = opendir($path); //当前目录while (false !== ($file = readdir($handle))) ...

  4. linux 系统 vi编辑器下的删除

    vi filename 进入vi模式 首先 最常用的   dd:删除 光标所在的整行:      d1G: 删除光标所在到第一行的所有数据: dG: 删除光标到最后一行的所有数据 : d$:删除光标到 ...

  5. SpringCloud全家桶学习之一阶段总结(一)

    一.概述 前几篇小博客记录了我学习SpringCloud组件的过程,并与工作中所用的Dubbo框架做了一点比较,基本组件:Eureka.Ribbon.Hystrix.Feign.Zuul.Config ...

  6. Git 安装配置及工作流程

    在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://git-scm.co ...

  7. springAOP实现原理

    spring AOP实现原理, spring 会在初始化的时候,创建一个BeanPostProcessor(AnnotationAwareAspectJAutoProxyCreator)用来为类注入切 ...

  8. 源代码管理工具(2)——SVN(2)——第一次用SVN遇到的问题

    今天因为项目的需要第一次使用了svn来托管项目,第一使用svn遇到了几个问题. 这个安装的过程很简单,不再赘述.在安装完成之后,相信肯定有一部分第一次用这个的人直接到开始处打开这个软件,这时候就会弹出 ...

  9. Mybatis中mapper.xml的使用

    详解多对多,mybatis多对多查询(xml方式和注解方式) 链接:https://blog.csdn.net/qq_42524262/article/details/98383977 链接:http ...

  10. java集合知识点

    若不重写equals方法,则调用的是object对象的equals方法,相当于==比较,比较的是对象的内存地址 |------Collection接口:单列集合,用来存储一个一个对象 |------L ...