1.拉取nginx镜像
docker pull nginx:latest
2.启动nginx容器
拉取完nginx镜像后,先启动一个容器,主要是为了复制容器内的配置文件到容器外的挂载目录中
docker run -d --name mynginx -p 80:80 nginx
3.创建挂载目录
在宿主机上创建一个挂载目录,用于存放nginx的配置文件,方便后续修改需要实现负载均衡的服务器信息。
mkdir /User/xxxx/nginx
4.复制容器内的配置文件到挂载目录
讲刚才复制的nginx容器的默认的配置文件拷贝到宿主机刚创建的挂载目录中。
docker cp mynginx:/etc/nginx /Users/xxxx/nginx/
5.修改挂载目录中的defalut.conf配置文件
在宿主机的挂载目录中,修改nginx的defalut.conf
配置文件,将需要实现负载均衡的所以服务的访问地址添加到upstream
模块中,这里用nacos服务举例。
vim /User/xxxx/nginx/conf.d/defalut.conf
## 在server{}块外面添加upstream{}模块内容
upstream nacosList {
server 127.0.0.1:8846; // nacos服务1
server 127.0.0.1:8847; // nacos服务2
server 127.0.0.1:8848; // nacos服务3
}
## 在server{}块里面添加location /nacos {}模块
location /nacos {
proxy_pass http://nacosList;
}
6.删除先前启动的nginx容器,再重新用下面命令启动一个容器
将宿主机的挂载目录在启动容器时挂载到nginx容器的/etc/nginx
目录上,后续只需要修改宿主机的挂载目录里面的defalut.conf
配置文件就可以控制nginx容器中的配置。
## 先删除
docker rm -f 容器id
## 再创建新容器
docker run -itd \
--name nginx \
-v /Users/smile/Desktop/soft/nginx:/etc/nginx \
-p 8088:80 nginx
7.访问服务
通过nginx的ip和端口再加上server{}块中配置的后缀就能访问在defalut.conf
配置文件中指定的服务上,至于会访问哪台服务,就看nginx的指定的是什么负载均衡的算法了。
localhost:8088/nacos