Docker学习007 -- Docker-compose 实现nginx动态代理两个tomcat

目录

0.docker-compose

1.准备

2.docker-compose 配置

3.测试


0.docker-compose

目的解决繁琐的部署各管理繁多的服务

注:依赖于python,centos7.8默认安装python,所以不需要安装python

1.准备

(1)下载 docker-compose

下载docker-compose

下载以后,将文件放在了 /usr/local/bin 文件下

(2)授权

测试环境,直接使用 777

chmod 777 /usr/local/bin/docker-compose

(3)卸载docker compose

rm -rf /usr/local/bin/docker-compose

(4)常用命令

docker-compose 常用命令地址

2.docker-compose 配置

docker-compose使用 yml ,默认名称:docker-compose.yml

这里我使用的测试是:启动nginx,代理两个tomcat:tomcat1和tomcat2

① 在data文件新建三个文件,nginx tomcat1 tomcat2

cd /data
mkdir tomcat1 tomcat2 nginx

② 启动2个容器,nginx  tomcat 直接将容器内的文件复制到本地 /data下,一个nginx,两个tomcat

docker run -itd --name nginx -p 80:80 nginx:1.19.3-alpine 
docker run -itd --name tomcat -p 8081:8080 tomcat:9.0.20-jre8-alpine 
docker cp nginx:/etc/nginx /data/
docker cp tomcat:/usr/local/tomcat/webapps /data/tomcat1/webapps
docker cp tomcat:/usr/local/tomcat/webapps /data/tomcat2/webapps

③ 修改tomcat的index.jsp文件内容

echo "tomcat1" > /data/tomcat1/webapps/ROOT/index.jsp
echo "tomcat2" > /data/tomcat2/webapps/ROOT/index.jsp

④ 删除掉现在的容器

docker rm -f nginx tomcat

⑤ 修改ngixn配置文件,在最后一行新增   include vhost/*.conf;

vi /data/nginx/nginx.conf

⑥新建vhost目录,新建 www.test.conf  并编辑内容,代理tomcat1  tomcat2

upstream nginxtest{
        server 192.168.1.14:8081;
        server 192.168.1.14:8082;
}
server{
        listen 80;
        server_name 192.168.1.14;
        autoindex on;
        index index.html index.htm index.jsp;
        location / {
                proxy_pass http://nginxtest;     #这里注意名称要与 upstream 一致
                add_header Access-Control-Allow-Origin *;
        }
}

⑦ 配置docker-compose.yml文件

version: '3'
services:
  test-nginx:
    image: nginx:1.19.3-alpine
    container_name: testnginx
    restart: always
    ports:
    - 80:80
    volumes:
    - /data/nginx:/etc/nginx
  test-tomcat1:
    image: tomcat:9.0.20-jre8-alpine
    container_name: tomcat1
    ports:
      - 8081:8080
    volumes:
      - /data/tomcat1/webapps:/usr/local/tomcat/webapps
    depends_on:
      - test-nginx
  test-tomcat2:
    image: tomcat:9.0.20-jre8-alpine
    container_name: tomcat2
    ports:
      - 8082:8080
    volumes:
      - /data/tomcat2/webapps:/usr/local/tomcat/webapps
    depends_on:
      - test-nginx

3.测试

访问  ip:8081   显示  tomcat1 

访问  ip:8082   显示  tomcat2

直接访问  ip   刷新,显示 tomcat1   tomcat2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值