一、获取nginx镜像
1.获取nginx镜像列表

docker search nginx


2.拉取nginx镜像到本地(注:默认选取官方最新镜像),其它版本可以去DockerHub查询

docker pull nginx


3.查看镜像库,获取本地的nginx镜像信息

注:记录下IMAGE ID前四位,后边使用

docker images nginx


二、启动容器,部署nginx并修改配置文件
首先测试下nginx镜像是否可用

使用docker run -d --name nginx -p 80:80 0839创建并启动nginx容器

-d 指定容器以守护进程方式在后台运行
–name 指定容器名称,此处我指定的是nginx
-p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口

命令执行后返回了容器ID,此时我们已经成功创建了nginx容器,


> 使用docker ps命令,可以查看到正在运行的nginx容器,映射端口为80


在浏览器访问CentOS主机,会看到nginx欢迎页,如果你是云服务器,请记得开放对应的外网端口!!!!

到这里我们已经完成了nginx容器的搭建,但是此时还有个问题,我们如何修改nginx的配置文件?

三、修改nginx的配置文件
这里有两种方式解决这个问题

方式一:每次都进入到nginx容器内部修改

每次都进入到nginx容器内部修改。适合改动少,简单使用的情况

1.执行·docker exec -it ef /bin/bash·进入到nginx容器内部,

exec 命令代表附着到运行着的容器内部
-it 是 -i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
ef 是我们要进入的容器Id
/bin/bash 指定了执行命令的shell

2.进入到nginx容器内部后,我们可以cd /etc/nginx,可以看到相关的nginx配置文件都在/etc/nginx目录下

而nginx容器内的默认首页html文件目录为/usr/share/nginx/html

日志文件位于/var/log/nginx

3.执行exit命令我们可以从容器内部退出。

方式二:将nginx容器内部配置文件挂载到主机

将nginx容器内部配置文件挂载到主机,之后就可以在主机对应目录修改即可。适合频繁修改,复杂使用的情况

1.在主机/mnt目录下执行 mkdir -p ./nginx/{html,logs,conf}创建挂载目录

将容器中的相应文件copy到刚创建的管理目录中

docker cp dbc:/etc/nginx/nginx.conf /docker-work/nginx/
docker cp dbc:/etc/nginx/conf.d /docker-work/nginx/conf/
docker cp dbc:/usr/share/nginx/html/ /docker-work/nginx/html/
docker cp dbc:/var/log/nginx/ /docker-work/nginx/logs/
注:docker cp dbc 中的 "dbc" 为容器ID前缀,只要唯一就好了

停止并移除容器

命令:
停止容器:docker stop dbc
移除容器:docker rm dbc

再次启动容器并作目录挂载

docker run  --name nginx -m 200m -p 80:80 \
-v /docker-work/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /docker-work/nginx/logs:/var/log/nginx \
-v /docker-work/nginx/html:/usr/share/nginx/html \
-v /docker-work/nginx/conf:/etc/nginx/conf.d \
-e TZ=Asia/Shanghai \
--privileged=true -d nginx
参数说明
-name  给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p     映射端口,将docker宿主机的80端口和容器的80端口进行绑定
-v    挂载文件用的,
-m 200m 分配内存空间
-e TZ=Asia/Shanghai  设置时区
第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,
第二个-v 表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面
第三个-v 表示的和第一个-v意思一样的。
-d 表示启动的是哪个镜像

命令,重新创建nginx容器

到这里就大功告成了!
四、nginx的相关文件
nginx.conf 文件内容:

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf; }

default.conf 文件内容:

server {listen       80;server_name  localhost;#charset koi8-r;#access_log  /var/log/nginx/host.access.log  main;location / {root   /usr/share/nginx/html;index  index.html index.htm;}location /api{proxy_pass 地址xxxx/api;# access_log "logs/test.log";}
}

这里简单说明下default.conf 文件,这里监听的是80端口,包含了两个转发规则,一个是根路径"/“,一个是”/api",也就是说,当访问服务器的80端口时,走的是这个路由配置,如果前缀是"/api"是走的是下面的代理 proxy_pass

由于上面我们映射了容器的目录到本地,所以我们还需要新建一个欢迎页,因为nginx默认的欢迎页,没有自动映射出来,就很郁闷。

在nginx的文件夹下,新建index.html,一个最简单的html文件,内容如下:

<!DOCTYPE html>
<html>
<head><title>网页标题</title>
</head>
<body><h1>Hello Nginx.......</h1>
</body></html>

需要注意的:我们在挂载目录的操作,都实际会映射到容器内部,写配置文件的时候一定要注意路径问题!!

修改nginx配置文件我选用的是第二种方式,中间有所改动。

目录结构,如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210303152537122.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjI0NDczMg==,size_16,color_FFFFFF,t_70

使用docker安装nginx相关推荐

  1. Docker(十):Docker实战 Docker 安装 Nginx

    Docker 安装 Nginx Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 1.查看可用的 Nginx 版本 访问 Ngin ...

  2. Docker系列 二. Docker 安装 Nginx

    Docker 安装 Nginx Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 1.查看可用的 Nginx 版本 访问 Ngin ...

  3. docker安装nginx并配置SSL到个人博客

    1 准备 1.已安装好docker环境 2.已申请好域名 2 申请SSL证书 我使用的是腾讯云,申请免费的TrustAsia的SSL证书,阿里云等或者其他平台一般都会提供TrustAsia的SSL证书 ...

  4. docker安装nginx,配置nginx,并成功访问

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  5. Docker系列三~docker安装nginx

    Docker系列三 docker安装nginx 搜索nginx版本 docker search nginx 拉取nginx最新版本镜像 docker pull nginx:latest 查看本地镜像 ...

  6. docker安装nginx kong konga

    一.docker安装nginx 1. 外网直接拉取,拉取后跳转至第三步 docker pull nginx:1.23.3 2. 内网 (1)找一个外网电脑拉取镜像 docker pull nginx ...

  7. docker安装nginx(神坑记录)

    docker安装nginx碰见的问题记录 错误描述 mounting "/usr/local/nginx.conf" to rootfs at "/etc/nginx/n ...

  8. Docker安装Nginx,初学者也能让您轻松玩转Nginx的安装

    目录 从之前几期开始开始,我们一直在分享Linux的一些常见系统操作以及一些常用操作系统的安装. 如果您感兴趣的话,也可以看看我们之前的帖子 Docker安装BookStack,打造属于您公司自己的开 ...

  9. docker安装nginx规范所有项目的反向代理(一个项目一个反向代理的conf配置文件)

    背景 centos7安装nginx比较麻烦,还是docker安装比较香. dokcer安装nginx比较简单,而且教程很多,那为什么还要总结? 这篇文章主要是规范化nginx对项目的反向代理,明显的特 ...

  10. Docker安装Nginx

    背景 Nginx作为反向代理在项目部署中使用的很多,像我们常见的Baidu,京东,淘宝等都是用Nginx作为反向代理,下面我们就来看看如何在Docker中安装Nginx吧 卸载Docker #停止所有 ...

最新文章

  1. JavaScript 读写文件
  2. 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
  3. C 不重复地输出升序数组中的元素
  4. JVM调优总结(2):一些概念(下)
  5. string类有可以调换方向的函数吗_C++中的string类的用法小结
  6. linux 文件 跳板机_shell实现跳板机
  7. day2---while else
  8. hdu 6026 Deleting Edges(最短路计数)
  9. 基于Modbus TCP-IP协议的WEINVIEW HMI与PC通讯
  10. 男孩子初中毕业学计算机技术,男孩子初中毕业学什么技术好就业
  11. 用正则表达式将前后空格用空字符串替代:replace(/(^\s*)|(\s*$)/g, )
  12. matlab定积分上界求解,定积分问题的数值求解及Matlab实现
  13. Hello Qt(十三)——QT信号与槽机制
  14. Legend of Mir(传奇)官方源码学习1、运行游戏
  15. 互联网公司去年到今年的大批裁员,难道程序员没有未来了吗?
  16. 基于matlab的汽车牌照识别程序
  17. html5最新滚动效果,jQuery和CSS3炫酷滚动页面内容元素动画特效插件
  18. 静态路由,缺省路由和默认网关的区别
  19. SwiftUI3 新组件教程之 TimelineView 制作一闪一闪星耀效果(中文教程)
  20. 如何画一条0.5px的边(细线)

热门文章

  1. 阿里巴巴优酷视频增强和超分辨率挑战赛记录
  2. Ubuntu18.04截屏 系统工具和Flameshot
  3. MATLAB Simmechanics/Simscape四旋翼无人机控制仿真(3)无人机控制器设计
  4. 时光邮局|来写一封未来的信试试吧!一个我的新项目,Java+Vue
  5. 易语言随机生成MAC源码
  6. torchtext安装
  7. MATLAB聚类算法
  8. Java多线程下载器(简洁版)
  9. jeecms(jeecms官网)
  10. 机器学习中的数学——边缘概率