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 ...
随机推荐
- Sharding Sphere的分库分表
什么是 ShardingSphere? 1.一套开源的分布式数据库中间件解决方案 2.有三个产品:Sharding-JDBC 和 Sharding-Proxy 3.定位为关系型数据库中间件,合理在分布 ...
- 《剑指offer》面试题28. 对称的二叉树
问题描述 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 ...
- 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes)-kubernetes/dashboard
本章介绍所需环境:ubuntu18.04,建立在上一篇微服务探索之路01篇已经安装了docker的基础上. 1 替换k8s镜像源为国内镜像 进入目录 cd /etc/apt/sources.list. ...
- 【记录一个问题】linux + opencv + gpu视频解码,好不容易编译通过,运行又coredump了
1.首先编译了opencv + cuda 编译选项中使用了以下关于cuvid库的内容: //"nvcuvid" libraryCUDA_nvcuvid_LIBRARY:FILE ...
- [Vue] Vue2 + @vue/composition-api 的一个坑
Vue2 + @vue/composition-api 和 Vue3 composition api 不一致的地方(待验证) <div v-for="item in arr" ...
- 实习之bii--关于虚拟机桥接无线网卡
安装完VMware workstation之后,网络连接里会多出两个虚拟网卡: VMware Network Adapter VMnet1和VMware Network Adapter VMnet8. ...
- vue学习14-自定义组件添加属性
<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta http ...
- golang中通过递归或通道实现斐波那契数列
1. 循环实现 package main import "fmt" func fibonacciFor(nums int) (s1 []int) { // 循环实现斐波那切数列 n ...
- gorm中的基本查询
检索单个对象 GORM 提供了 First.Take.Last 方法,以便从数据库中检索单个对象.当查询数据库时它添加了 LIMIT 1 条件 // 获取第一条记录(主键升序) db.First(&a ...
- golang中的25个关键字
Go 语言中会使用到的 25 个关键字或保留字: 1. 程序声明 import 导入 package 包 2. 程序实体声明和定义 chan 通道 var 变量声明 const 常量声明 func 用 ...