使用docker安装nginx
一、获取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相关推荐
- Docker(十):Docker实战 Docker 安装 Nginx
Docker 安装 Nginx Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 1.查看可用的 Nginx 版本 访问 Ngin ...
- Docker系列 二. Docker 安装 Nginx
Docker 安装 Nginx Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 1.查看可用的 Nginx 版本 访问 Ngin ...
- docker安装nginx并配置SSL到个人博客
1 准备 1.已安装好docker环境 2.已申请好域名 2 申请SSL证书 我使用的是腾讯云,申请免费的TrustAsia的SSL证书,阿里云等或者其他平台一般都会提供TrustAsia的SSL证书 ...
- docker安装nginx,配置nginx,并成功访问
[Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...
- Docker系列三~docker安装nginx
Docker系列三 docker安装nginx 搜索nginx版本 docker search nginx 拉取nginx最新版本镜像 docker pull nginx:latest 查看本地镜像 ...
- docker安装nginx kong konga
一.docker安装nginx 1. 外网直接拉取,拉取后跳转至第三步 docker pull nginx:1.23.3 2. 内网 (1)找一个外网电脑拉取镜像 docker pull nginx ...
- docker安装nginx(神坑记录)
docker安装nginx碰见的问题记录 错误描述 mounting "/usr/local/nginx.conf" to rootfs at "/etc/nginx/n ...
- Docker安装Nginx,初学者也能让您轻松玩转Nginx的安装
目录 从之前几期开始开始,我们一直在分享Linux的一些常见系统操作以及一些常用操作系统的安装. 如果您感兴趣的话,也可以看看我们之前的帖子 Docker安装BookStack,打造属于您公司自己的开 ...
- docker安装nginx规范所有项目的反向代理(一个项目一个反向代理的conf配置文件)
背景 centos7安装nginx比较麻烦,还是docker安装比较香. dokcer安装nginx比较简单,而且教程很多,那为什么还要总结? 这篇文章主要是规范化nginx对项目的反向代理,明显的特 ...
- Docker安装Nginx
背景 Nginx作为反向代理在项目部署中使用的很多,像我们常见的Baidu,京东,淘宝等都是用Nginx作为反向代理,下面我们就来看看如何在Docker中安装Nginx吧 卸载Docker #停止所有 ...
最新文章
- JavaScript 读写文件
- 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
- C 不重复地输出升序数组中的元素
- JVM调优总结(2):一些概念(下)
- string类有可以调换方向的函数吗_C++中的string类的用法小结
- linux 文件 跳板机_shell实现跳板机
- day2---while else
- hdu 6026 Deleting Edges(最短路计数)
- 基于Modbus TCP-IP协议的WEINVIEW HMI与PC通讯
- 男孩子初中毕业学计算机技术,男孩子初中毕业学什么技术好就业
- 用正则表达式将前后空格用空字符串替代:replace(/(^\s*)|(\s*$)/g, )
- matlab定积分上界求解,定积分问题的数值求解及Matlab实现
- Hello Qt(十三)——QT信号与槽机制
- Legend of Mir(传奇)官方源码学习1、运行游戏
- 互联网公司去年到今年的大批裁员,难道程序员没有未来了吗?
- 基于matlab的汽车牌照识别程序
- html5最新滚动效果,jQuery和CSS3炫酷滚动页面内容元素动画特效插件
- 静态路由,缺省路由和默认网关的区别
- SwiftUI3 新组件教程之 TimelineView 制作一闪一闪星耀效果(中文教程)
- 如何画一条0.5px的边(细线)