Docker 安装 Nginx

news/2025/1/11 22:39:09/

1、获取 nginx 的镜像

# 默认是latest版本docker pull nginx  

2、运行 nginx 容器

docker run --name nginx-80 -p 80:80 --rm -d nginx# --name nginx-80 设定容器的名称# -p 80:80 端口进行映射,将本地的80端口映射到容器内部的80端口# --rm 表示容器退出后直接删除该容器# -d 后台运行该容器# 上述运行后,直接可以访问nginx服务

 3、浏览器输入 http://localhost 测试是否启动成功 

4、实现 nginx 的负载均衡

# 首先创建目录和文件夹,用于存储 nginx 的相关配置文件# -p 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录mkdir -p /usr/local/nginxmkdir -p /usr/local/nginx/htmlmkdir -p /usr/local/nginx/logsmkdir -p /usr/local/nginx/conf

# 其次把容器内部的文件复制到所创建的目录中来docker cp nginx-80:/etc/nginx/nginx.conf /usr/local/nginx/confdocker cp nginx-80:/etc/nginx/conf.d /usr/local/nginx/conf

5、启动多个 tomcat 容器用于实现负载均衡


docker run --rm -d --name tomcat-8081 -p 8081:8080 -v /usr/local/docker/qfnj/:/usr/local/tomcat/webapps/xhf tomcat8docker run --rm -d --name tomcat-8080 -p 8080:8080 -v /usr/local/docker/qfnj/:/usr/local/tomcat/webapps/xhf tomcat8docker run --rm -d --name tomcat-8082 -p 8082:8080 -v /usr/local/docker/qfnj/:/usr/local/tomcat/webapps/xhf tomcat8

6、关闭刚才咱们启动的 nginx,执行命令 docker stop nginx-80,然后重新启动一个 nginx 容器,并挂载相关的配置文件和目录,命令如下所示:

# 停掉刚才启动的 nginx 容器
docker stop nginx-80# 开启新的 nginx 容器,并指定数据卷
docker run -it --name nginx-80 --rm -d -p 80:80 -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf  -v /usr/local/nginx/logs:/var/log/nginx nginx# 1、创建了一个新的容器,运行的是 nginx,给容器命名为 nginx-80,-d为后台运行# 2、文件夹挂载,将宿主机的 html 文件夹挂载到容器的 /usr/share/nginx/html 文件夹中。# 3、文件挂载,将宿主机的 nginx.conf 文件挂载到容器的 /etc/nginx/nginx.conf 文件中。# 4、文件挂载,将宿主机的 default.conf 文件挂载到容器的 /etc/nginx/conf.d/default.conf 文件中。# 5、文件夹挂载,将宿主机的 logs 文件夹挂载到容器的 /var/log/nginx 文件夹中。

        输入命令:docker inspect nginx-80,查看容器详情,我们这里只截取其中的一小部分,如下所示:

        如果这个时候,启动创建 nginx 容器失败了,可以到 /var/log/ 目录下,看下 messages 文件存储的日志,还需要注意的是当文件挂载的时候,如果容器和宿主机都有相同的文件,且文件内容不一致的话,那么你的容器是启动不了的,我也是在这个地方耽误了两天的时间,切记!切记。

        在 html 文件夹下,随便创建一个文件,即可正常访问 nginx,如下所示:

echo 'nefu-yzk.top11111'>>index.html

 7、集群配置

        第一步:修改 nginx.conf 文件,执行命令:vim /usr/local/nginx/conf/nginx.conf,添加以下内容:

upstream nginxCluster{server 192.168.88.10:8080;server 192.168.88.10:8081;server 192.168.88.10:8082;
}
server {listen 80;server_name localhost;#charset koi8-r;#access_log /var/log/nginx/host.access.log main;location /{proxy_pass http://nginxCluster;}
}

        第二步:修改 conf.d/default.conf 文件,执行命令:vim /usr/local/nginx/conf/conf.d/default.conf,添加以下内容:

location / {proxy_pass http://nginxCluster;}  }

        如果你发现,你修改的这两个文件,容器里面的文件并没有发生变化,那么此时需要干的事情是:

# 1、关掉当前的 nginx-80 容器 
docker stop nginx-80# 2、把刚才修改的这两个文件删除掉,哪种删除方式都可以,因为这两个文件我们上面修改了,必须得删除掉重新拉取,要不文件就不一致了,容器就启动不起来了。
rm -rf /usr/local/nginx/conf/nginx.conf
rm -rf /usr/local/nginx/conf/conf.d# 3、再重新启动下 nginx-80 容器
docker run --name nginx-80 -p 80:80 --rm -d nginx# 4、把容器内部的文件复制到所创建的目录中来
docker cp nginx-80:/etc/nginx/nginx.conf /usr/local/nginx/conf
docker cp nginx-80:/etc/nginx/conf.d /usr/local/nginx/conf# 5、关掉当前的 nginx-80 容器
docker stop nginx-80# 6、为即将修改的文件赋予权限,中途修改的无效,需要 run 之前就修改了
cd /usr/local/nginx/conf
chmod 666 nginx.confcd /usr/local/nginx/conf/conf.d
chmod 666 default.conf# 7、启动 nginx-80 容器
docker run -it --name nginx-80 --rm -d -p 80:80 -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf  -v /usr/local/nginx/logs:/var/log/nginx nginx


http://www.ppmy.cn/news/583224.html

相关文章

林间跨域资源访问--外部信任

前言: 注: 在同一个林内,通过自动创建可传递的、双向的信任关系,可以实现所有域之间的相互信任。但是不用林之间则不会自动创建信任关系,要实现两个林之间的访问需要手工创建林信任关系 。 1.创建林间信任的方法 外…

如何删除林内不必要的信任

在功能级别是 2003 的林内,信任关系是不用手工建立的,而且信任关系还是双向可传递的并且不能删除,对于多域的公司给管理员省了不少事,设想一下如果林内的某个域的 DC (非根域)发生了物理故障并且没有备份可…

林内域信任关系的建立

建立林内域信任 1, 建域: 在运行中输入dcpromo命令,建一个新域。DC机上的ip地址是10.0.0.5,子网掩码是255.0.0.0,域名为a.com;Client主机的ip地址是10.0.0.6,子网掩码为255.0.0.0,域名为b.com。 2&#xff0…

苹果照片恢复,让误删的照片重回屏幕

苹果手机是我们生活中必不可少的一部分,每天用它们拍摄并记录生活的点滴。有时我们误删了存储在手机中的照片,或者因为手机故障造成数据丢失,这时我们该如何挽救那些珍贵的照片呢?本文将介绍几种可行的苹果照片恢复方法。 方法1:…

Tcl Tutorial(2)-经典教程+代码示例

本文是Tcl Tutorial的第二篇新手教程,主要总结了Tcl的数学运算符和数学函数,类型转换函数,if, switch, while/for循环结构。 目录 数学运算 数学运算符 数学函数 类型转换函数 计算机和数字

数据库性能优化必读,AntDB-M数据库的哈希索引设计

数据库加快访问速度的关键技术之一就是索引,索引的设计及使用方式极大程度上影响了数据库的性能。AntDB-M支持Hash、BTree两种索引类型。本文主要讲解Hash索引的相关设计,并给出一些使用建议。 1. 相关概念 桶 用于定位索引记录的容器,容器中…

通过skia导出pdf 生成超链接 skia pdfdocument annotation pdflink

如题 最近导出pdf ,想实现文本支持超链接跳转, 看了下skia的官网文档, 翻墙找各种资料 就是找不到关于怎么实现,毫无头绪咋办呢 我想了一下 1.粗略翻阅了下pdf的格式 了解了下基本的构成 啥root page text 啥的 2.通过pdf格式了解到 链接是通过LinkAn…

win10系统安装jdk-8u301-windows-x64【jdk8】

先下载jdk1.8 jdk下载网址https://www.oracle.com/java/technologies/downloads/#java8 安装完成,开始配置java环境