目录
1、搭建环境说明
2、基础镜像准备
Java项目准备
nginx部署准备
3、容器启动
Nginx容器启动
查看运行容器IP地址
4、反向代理配置
5、问题截图
备注
Windows环境 win10+docker
基础信息说明
本文全程使用CMD控制台进行命令操作,可能的朋友使用Linux命令比较习惯。在此也推荐一个CMD环境使用shell命令的方式
使用git进行CMD控制台对shell的支持,git安装一路下一步,然后配置如下path路径支持即可
Git安装路径\Git\usr\bin;
Git安装路径\Git\mingw64\bin;
另外如果朋友们不知道是配置不对还是docker的原因导致的 最终没有成功的,建议脱离容器,使用一个nginx和tomcat进行配置一次然后先验证下配置是否已经生效
如果是配置文件有问题 在nginx的文件夹下 执行nginx.exe 可以看到异常问题
本文用得到的常规命令 汇总
docker 日志
docker logs -f ID
docker端口
docker port ID
docker网络路由
查看route print
查看机器信息IP
ocker inspect 1990d5bcebaf
docker inspect --format='{{.NetworkSettings.IPAddress}}' ID
因为docker容器内部支持命令有限 查看文件内容要用cat
cat /etc/nginx/nginx.conf
https://blog.csdn.net/xupeng874395012/article/details/105779398
docker run nginx 执行此命令会自动拉取最新的nginx镜像
先启动ngixn容器 然后看看下容器内的配置文件资源位置
/usr/share/nginx/html
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/var/log/nginx
然后对应在本地磁盘下依次创建对应结构文件,然后再重新启动nginx的时候加载指定本地磁盘的文件路径
docker run --name mynginx -d -p 80:80
-v d:\docker\nginx\html:/usr/share/nginx/html
-v d:\docker\nginx\conf\nginx.conf:/etc/nginx/nginx.conf
-v d:\docker\nginx\conf.d:/etc/nginx/conf.d
-v d:\docker\nginx\logs:/var/log/nginx nginx
参考上面的命令 因为是我是在windows环境弄的,Windows路径需要\斜线来指定路径,我的文件均在D盘docker\nginx文件夹下处理 然后执行上面的命令启动nginx加载本地自定义文件。然后使用 docker exec -it id /bin/bash 命令进入docker 容器,查看下当前docker容器内数据是否已经被指定文件覆盖。 然后启动两个java程序,然后查看docker运行时容器有哪些 检查启动是否成功
用docker inspect ID命令查看当前容器的ID地址
具体执行命令如下
docker inspect --format='{{.NetworkSettings.IPAddress}}' ID
修改nginx.conf配置文件 增加如下配置
Upstream 下面是java项目的部署地址和端口
upstream example{
server 172.17.0.2:8080 weight=1;
server 172.17.0.3:8080 weight=1;
}
server {
listen 80;
server_name www.example.com localhost;
location / {
proxy_pass http://example;
}
}
重新覆盖nginx配置 然后启动容器访问nginx服务 即可直接转发到java项目中,最终结果如下图
查看java项目日志
docker logs -f ID 查询实时日志 发现在页面刷新请求的时候 ,已经分别把请求转发到了两个docker容器上了。
上面我的java项目是没有bin/bash的可以使用 /bin/sh进入
如下图所示 ,这个nginx挂载文件的时候 指定的替换文件不对应导致的,指定替换nginx的文件位置指定成了文件夹了
本实践操作仅仅适合练手,不适合实际操作,反向代理和负载均衡阶段生产环境需要支持信息因业务不同也不同,在此文不做相关说明
关注下方二维码,每周杂谈:java老兵陪你聊编程