【docker初级实战】7 - Docker Compose创建网络、指定容器IP、启动简单nginx负载均衡

1、.env 文件,用来进行复杂的配置

nginx_addr=192.156.0.2
web1_addr=192.156.0.3
web2_addr=192.156.0.4

2、docker-compose.yaml 文件,使用了上面的 .env 文件里定义的变量

services: 
  nginx: 
    container_name: mynginx
    image: "centos:nginx"
    ports: 
      - "9090:80"
    privileged: true
    volumes: 
      - "/home/sugarppig/nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
    networks:
      mynginx-net:
        ipv4_address: ${nginx_addr}
  web1: 
    container_name: web1
    image: "centos:jdk"
    ports: 
      - "8080:80"
    privileged: true
    volumes: 
      - "/home/sugarppig/nginx/web1/:/var/www/html/"
    networks:
      mynginx-net:
        ipv4_address: ${web1_addr}
  web2: 
    container_name: web2
    image: "centos:jdk"
    ports: 
      - "8081:80"
    privileged: true
    volumes: 
      - "/home/sugarppig/nginx/web2/:/var/www/html/"
    networks:
      mynginx-net:
        ipv4_address: ${web2_addr}
networks:
  mynginx-net:
    driver: bridge
    ipam:
      config:
        - subnet: 192.156.0.0/16
version: "3"

3、nginx.conf 文件

user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    #include /etc/nginx/conf.d/*.conf;
      upstream mydocker {
             server 192.156.0.3;
             server 192.156.0.4;
      }
      server {
        listen       80;
        server_name  mydocker;
        location / {
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_buffering off;
             proxy_pass http://mydocker;     
        }
     }

}

4、启动容器

docker-compose up -d

5、访问浏览器

虚拟机 IP 地址为 10.0.0.7,所以访问 http://10.0.0.7:9090/,因为没有设置权重,可以看到 web1、web2 轮流出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值