1、获取nginx版本

  docker中nginx版本信息:https://hub.docker.com/_/nginx?tab=tags&page=1&ordering=last_updated

  

2、拉取nginx

  docker pull nginx:1.16.1

  nginx后面的:1.16.1表示具体版本,如果不指定,则默认拉取最新的latest

  显示如下图,则表示安装成功

  

3、启动nginx

  3.1查看nginx信息

    

  3.2 错误启动示范:docker run --name nginx -d nginx -p 80:80

    执行结果如下:

    

    可以看出,docker重新拉区了最新的latest版本的nginx

    

     通过docker ps查看发现并没有运行中的容器

    

    通过docker ps -a 查看发现已经创建的容器

    

    由上可见,如果直接-d nginx,会从仓库中拉取最新版本的nginx镜像,并创建容器,但这不是我们想要的,这时候我们需要把latest的nginx删除掉,删除前需要先把容器删除,否则会提示以下内容

    

    (注:操作镜像或者容器,可以只写id的保证不重复的前几位)

  3.3 删除nginx镜像和容器

    

    

  3.4 正确启动nginx

    docker run --name nginx -p 80:80 -d dfcfd8e9a5d3

    

    参数说明:

      docker run : 启动容器

      --name nginx:指定容器启动后名称,注意是两个-

      -p 80:80:将容器的80端口(冒号后面)映射到宿主机的80端口(冒号前面)上,容器相当于一个简化版的服务器,所以需要映射才能被访问

      -d dfcfd8e9a5d3: 指定后台启动,并指定后台启动的镜像名称(建议指定,也有教程说可以不指定的,没有试验)

  3.5 修改配置文件

    3.5.1 直接修改配置

      进入容器:docker exec -it 3a bash

      

      nginx路径在/etc/nginx下

      

     编辑nginx.conf,提示 bash: vim: command not found ,因为nginx这个容器没有安装编辑器,所以先安装 apt-get  update 之后 apt-get install vim

      编辑nginx.conf,退出容器,然后重启系统,则可以查看结果。

      

    3.5.2 挂载文件

      在宿主机上新建文件夹 mkdir nginx,在文件夹下新建logs路径,mkdir logs ,将事先准备好的nginx.conf复制到nginx路径下,结果如下如所示:

      

      挂载文件

       docker run --name nginx2 -p 90:90 -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/docker/nginx/logs:/var/log/nginx -d dfcfd8e9a5d3

      参数说明:

        --name nginx2: 启动容器的名称,用于关闭或者启动,docker stop nginx1/docker start nginx1

        -p 90:90 : 将容器的90端口映射到宿主机的90端口上

        -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf :将宿主机上的/mnt/docker/nginx/nginx.conf覆盖容器里的/etc/nginx/nginx.conf,这样宿主机上的nginx就会以本地的nginx为配置文件

        -v /mnt/docker/nginx/logs:/var/log/nginx :将容器的日志目录/var/log/nginx修改为宿主机的/mnt/docker/nginx/logs,这样日志就会往宿主机的/mnt/docker/nginx/logs下输出access.log和error.log

  3.6 修改nginx访问宿主机文件

    将文件放到/mnt/docker/test中,将nginx.conf修改root路径为/mnt/docker/test,启动容器

    docker run --name nginx2 -p 90:90 -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/docker/nginx/logs:/var/log/nginx -v /mnt/docker/test:/mnt/docker/test -d dfcfd8e9a5d3

    这样就相当于将本地的文件映射到了容器里,nginx访问容器上的路径时就访问到了宿主机上。

 4、配置proxy_pass

  先安装必要的工具

    apt-get update

    apt-get install -y curl telnet

  查看容器ip

  docker inspect 38914185adb1(容器id)

  

  由图可以看出容器的ip是172.17.0.2,宿主机的ip是172.17.0.1,所以配置tomcatip的时候配置宿主机或者其他容器的ip即可

docker下安装nginx,启动ngixn,修改nginx配置等--超详细的更多相关文章

  1. Linux下安装Redis php-redis扩展 redis重启shell脚本 超详细!

    前言 前面刚写过nosql其中三款热门产品的对比,这次主要写关于Redis的一些事情,Redis的介绍.安装以及扩展(php-redis,因为我是phper)安装等等.同时是写给我的朋友(cccjjj ...

  2. vue环境下安装npm,启动npm 修改js,css样式

    vue环境下修改js,css样式 1.在所在的项目项目的resource 文件夹下面,shift + 鼠标右键--在此处打开命令行窗口: 2.在打开的窗口执行: 安装npm:npm install 启 ...

  3. CentOS双机中Docker下安装Mysql并配置互为主从模式

    CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...

  4. 基于kail的docker下安装sqli-labs

    后面的关卡涉及到转码问题,比如空格,在Windows中会受到限制,比如24关的文件重命名问题,所以在这记录下在docker下安装sqli-labs,在linux下运行就不会受到限制. 参考链接:htt ...

  5. memcached 在windows下安装及启动

    memcached 在windows下安装及启动   Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数, ...

  6. Linux系统下安装Redis和Redis集群配置

    Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...

  7. Nginx——Docker下安装部署

    前言 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 一. 环境说明 docker: 18.09.9-ce nginx: 1.1 ...

  8. docker下安装nginx并实现https访问

    一.启动容器 docker run --detach --name wx-nginx -p 443:443 -p 80:80 -v /home/nginx/data:/usr/share/nginx/ ...

  9. mac系统下安装和启动nginx

    1.在线安装 localhost:nginx-1.17.1 mhx$ sudo brew install nginx 2.查看是否安装成功 localhost:nginx-1.17.1 mhx$ ng ...

随机推荐

  1. 聊聊dubbo协议

    搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读.问题排查.踩坑实践. 协议 协议通俗易懂地解释就是通信双方需要遵循的约定. 我们了解的常见的网络传输协议 ...

  2. Solon 开发,六、提取Bean的函数进行定制开发

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  3. 使用PostGIS完成两点间的河流轨迹及流经长度的计算

    基础准备工作 1.PostGIS 的安装 在安装PostGIS前首先必须安装PostgreSQL,然后再安装好的Stack Builder中选择安装PostGIS组件.具体安装步骤可参照 PostGI ...

  4. HTML 基础3

    表格 示例1: <h4>水平表头+普通边框</h4> <table border="1"> <caption>caption标签展示 ...

  5. Git常用命令(超实用)

    Git常用命令 一.Git常用命令 1.1 创建SSH Key 1.2 仓库 1.3 增加/删除文件 1.4 代码提交 1.5 分支 1.6 标签 1.7 查看信息 1.8 远程同步 1.9 撤销 1 ...

  6. 鸿蒙轻内核源码分析:文件系统LittleFS

    摘要:本文先介绍下LFS文件系统结构体的结构体和全局变量,然后分析下LFS文件操作接口. 本文分享自华为云社区<# 鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS>,作者: ...

  7. idea创建WebService服务端和客户端

    创建服务端 1.file–>new–>project 2.点击next后输入服务端名,点击finish,生成目录如下 3.在 HelloWorld.Java 文件中右击,选 WebServ ...

  8. php 递归目录

    转载请注明来源:https://www.cnblogs.com/hookjc/ $TheFilePath='';function file_list($path){ global $TheFilePa ...

  9. IIS 配置相应的文件下载

    转载请注明来源:https://www.cnblogs.com/hookjc/ 1.设置MIME,让IIS支持更多文件类型下载 比如添加支持.exe文件下载 打开IIS,选中服务器,点右键,属性里有M ...

  10. NSString基本概念

    1.NSString基本概念 什么是NSString? 一个NSString对象就代表一个字符串(文字内容) 一般称NSString为字符串类 2.NSString创建方式 最直接的方式(常量字符串) ...