docker下安装nginx,启动ngixn,修改nginx配置等--超详细
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配置等--超详细的更多相关文章
- Linux下安装Redis php-redis扩展 redis重启shell脚本 超详细!
前言 前面刚写过nosql其中三款热门产品的对比,这次主要写关于Redis的一些事情,Redis的介绍.安装以及扩展(php-redis,因为我是phper)安装等等.同时是写给我的朋友(cccjjj ...
- vue环境下安装npm,启动npm 修改js,css样式
vue环境下修改js,css样式 1.在所在的项目项目的resource 文件夹下面,shift + 鼠标右键--在此处打开命令行窗口: 2.在打开的窗口执行: 安装npm:npm install 启 ...
- CentOS双机中Docker下安装Mysql并配置互为主从模式
CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...
- 基于kail的docker下安装sqli-labs
后面的关卡涉及到转码问题,比如空格,在Windows中会受到限制,比如24关的文件重命名问题,所以在这记录下在docker下安装sqli-labs,在linux下运行就不会受到限制. 参考链接:htt ...
- memcached 在windows下安装及启动
memcached 在windows下安装及启动 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数, ...
- Linux系统下安装Redis和Redis集群配置
Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...
- Nginx——Docker下安装部署
前言 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 一. 环境说明 docker: 18.09.9-ce nginx: 1.1 ...
- docker下安装nginx并实现https访问
一.启动容器 docker run --detach --name wx-nginx -p 443:443 -p 80:80 -v /home/nginx/data:/usr/share/nginx/ ...
- mac系统下安装和启动nginx
1.在线安装 localhost:nginx-1.17.1 mhx$ sudo brew install nginx 2.查看是否安装成功 localhost:nginx-1.17.1 mhx$ ng ...
随机推荐
- 手把手教你分析解决MySQL死锁问题
在生产环境中如果出现MySQL死锁问题该如何排查和解决呢,本文将模拟真实死锁场景进行排查,最后总结下实际开发中如何尽量避免死锁发生. 一.准备好相关数据和环境 当前自己的数据版本是8.0.22 mys ...
- linux 安装 elasticsearch 步骤及问题解决方案
1.下载安装包并上传至服务器 2.解压至当前文件夹 tar -xzvf xxx.tar.gz 3.配置JDK 如果服务器上已经配置了JDK,则在解压后的elasticsearch 文件夹的bin 目录 ...
- 【reverse】逆向2 寄存器与内存
[reverse]逆向2 寄存器与内存 1.通用寄存器 主要用途其实没必要记下来,因为只是CPU建议你这么做. 寄存器需要按照顺序被下来 32位就是可以存32个0或1 所以存储范围就是0-0xFFFF ...
- 经典面试题:分布式缓存热点KEY问题如何解决--有赞方案
有赞透明多级缓存解决方案(TMC) 一.引子 1-1. TMC 是什么 TMC ,即"透明多级缓存( Transparent Multilevel Cache )",是有赞 Paa ...
- SQL查询字段,起别名,列参与数学运算
13.简单查询 13.1.查询一个字段? select 字段名 from 表名: 其中要注意: select和from都是关键字 字段名和表名都是标识符. 强调: 对于SQL语句说,是通用的 所有的S ...
- springmvc复习导图
spingmvcweb请求
- Tomcat-如何在IDEA启动部署web模板
IDEA部署工程到Tomcat上运行 1,建议修改web工程对应的Tomcat运行实例名称 2,将需要部署的web工程添加到Tomcat运行实例中,添加或删除 Application context: ...
- 001 研发同学必学哪些 Linux 命令?
01 研发同学为啥要掌握 Linux 命令? 身为研发同学,Linux 是绕不过去的一个小山包,不是说要掌握的十分精通,在程序员界里做个极客,也不是说要抢了 Devops 同学的饭碗,但至少要做到摆脱 ...
- python全局解释器GIL锁(-死锁)
目录 一:Python中的GIL锁 1.GIL介绍 2.GIL的作用 3.cpython 4.内存管理>>>垃圾回收机制 二:全局解释器锁GIL 1.GIL特点 三:计算密集型与IO ...
- mysql自连接?
一.自连接 /* 自己查询自己 把一张表看成是两张表. 表的设计. */ SELECT * from depart; -- 具体的查询方法,查询 name ,并给添加别名. select d1.nam ...