Docker安装nginx并实现负载均衡

一、安装nginx

1.下载镜像:docker pull nginx

2.成功启动,但没有挂载nginx.conf配置文件

    docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/logs:/wwwlogs -d nginx

3.进入交互式终端:

   docker exec -it mynginx /bin/bash

4.在交互终端找到nginx.conf 配置文件

   Docker安装nginx并实现负载均衡

5.退出交互终端:exit

6.在root文件夹下创建三个文件夹

   Docker安装nginx并实现负载均衡

7.拷贝交互终端的nginx.conf配置文件到/root/conf/nginx.conf

    docker cp 95e2b70fdf49:/etc/nginx/nginx.conf $PWD/conf/nginx.conf #使用id或names【mynginx】

8.删除刚才创建的nginx容器

   docker rm mynginx

9.重新创建nginx容器

 docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx

   命令解析:

  • -p 80:80:将容器的80端口映射到主机的80端口

  • --name mynginx:将容器命名为mynginx

  • -v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www

  • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf

  • -v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs

10.docker ps查看nginx容器

Docker安装nginx并实现负载均衡

二、负载均衡

  1.在一个主机上使用docker创建nginx和多个tomcat容器【不同端口号】,多个容器【tomcat、mysql、redis。nginx等】是在一       个内部同一个局域网;

  2.在此时配置的时候需要指定的是tomcat容器内部的ip地址。使用docker exec -it tomcat /bin/bash 进入tomcat容器交互式终           端,使用ifconfig查看ip端口,但是会提示在此容器不能使用ifconfig命令,需要使用apt-get install net-tools 、apt-get update、apt-get install net-tools【依次使用】命令下载安装。然后再是inconfig可以查看到ip地址,最后直接在配置文件直接指定即可

Docker安装nginx并实现负载均衡

  nginx.conf负载均衡配置

Docker安装nginx并实现负载均衡

3.上述两个红色标记处ip应该对应。使用docker restart nginx重启nginx ,访问测试成功。