[随笔] docker上使用nginx进行负载均衡示例
一 安装docker1. 下载Docker ToolBoxhttps://download.docker.com/win/stable/DockerToolbox.exe,具体可参考文档https://docs.docker.com/toolbox/2. 双击安装toolbox,勾上所有组件并安装所提示的各种设备软件3. 启动Docker Quickstart Termin
·
一 安装docker
1. 下载Docker ToolBox
https://download.docker.com/win/stable/DockerToolbox.exe,具体可参考文档
https://docs.docker.com/toolbox/
2. 双击安装toolbox,勾上所有组件并安装所提示的各种设备软件
3. 启动Docker Quickstart Terminal,此时可能弹出需要指定bash.exe目录的提示,选择git/bin/bash.exe即可
4. 输入docker version或者docker info确认是否安装正确
如果出现error during connect. This error may also indicate that the docker daemon is not running。那么说明docker-machine的环境没有配置。使用docker-machine env查看环境配置,如下
$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\Administrator\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
# Run this command to configure your shell:
# eval $("D:\Program Files\Docker Toolbox\docker-machine.exe" env)
根据上述提示,执行最后一行即可
eval $("D:\Program Files\Docker Toolbox\docker-machine.exe" env)
再次执行docker version或者docker info则可正确显示docker的版本信息
5. 查看虚拟机列表docker-machine ls
6. 添加新的虚拟机docker-machine create --driver virtualbox VM_NAME
7. 删除虚拟机docker-machine rm VN_NAME
二 使用nginx进行负载均衡
8. 启动两个spring-boot应用程序的容器
docker run -p 8081:8080 --name web1 -it app.jar /bin/bash
docker run -p 8082:8080 --name web2 -it app.jar /bin/bash
9. 启动nginx容器
docker run -p 8083:80 -it nginx /bin/bash
进入容器后,在/etc/nginx/conf.d/中修改default.conf配置。
在使用docker容器时,有时候里边没有安装vim,使用vim命令时提示vim: command not found,则需要安装vim,使用apt-get install vim命令,若提示:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package vim
则使用apt-get update,同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,获取到最新的软件包。等更新完毕以后再敲命令:apt-get install vim命令即可。
在default.conf行首加入
upstream balance {
server 192.168.99.100:8081;
server 192.168.99.100:8082;
}
在default.conf的server层级下加入
location / {
proxy_pass http://balance;
}
10. 执行nginx命令启动nginx,在浏览器中访问http://192.168.99.100:8083,即可看到轮流访问的是192.168.99.100:8081和192.168.99.100:8082两个应用
11. 修改upstream balance,设置real server的权重,并重新加载配置,访问http://192.168.99.100:8083,可以发现轮流访问两个real server的频次比例改变
upstream balance {
server 192.168.99.100:8081 weight=9;
server 192.168.99.100:8082 weight=1;
}
保存后nginx -s reload重新加载配置
三 nginx相关命令
nginx -s reload 修改配置后重新加载生效
nginx -s reopen
重新打开日志文件
nginx -t -c /path/to/nginx.conf
测试nginx配置文件是否正确
关闭nginx:
nginx -s stop
快速停止nginx
quit
完整有序的停止nginx
其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主进程号
从容停止Nginx
kill -TERM 主进程号
快速停止Nginx
pkill -9 nginx
强制停止Nginx
启动nginx:
nginx -c /path/to/nginx.conf
平滑重启nginx:
kill -HUP 主进程号
四 配置docker加速器
可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中。
docker-machine ssh default "echo 'EXTRA_ARGS=\"--registry-mirror=https://pee6w651.mirror.aliyuncs.com\"' | sudo tee -a /var/lib/boot2docker/profile"
docker-machine restart default
docker info查看修改后的mirror
原文地址 https://mp.weixin.qq.com/s?__biz=MzUzNTU0OTQxMQ==&mid=2247483658&idx=1&sn=15e4576427165e59bb0471dc7b688dec&chksm=fa828586cdf50c90658758360b194eda3f818087b51443b12596d8feb07b16e72169f2e55b50&scene=0#rd
更多好文章请关注 [互联网技术爱好者]
更多推荐
已为社区贡献2条内容
所有评论(0)