Docker 搭建 Nginx + Tomcat 负载均衡

Docker 搭建 Nginx + Tomcat 负载均衡

前言

随着微服务和容器化技术的兴起,大家或多或少的都听过docker。docker相对于虚拟机来说是一种轻量级的虚拟技术,它的隔离性和可移植性也让它有了更多的应用场景。工作闲暇之余,也曾学习过docker,所以就尝试在一台ECS上用docker搭建一台nginx + 2台tomcat的负载均衡,加深一下对docker的理解。

通常在一台机器上搭建负载均衡的时候,需要两个端口不一样的tomcat,但webapps下应用必须一致,一个应用在修改了之后需要拷贝到两个tomcat中。容器运行tomcat就不需要这样,两个容器里面的tomcat可以共享宿主机的一个tomcat目录。

Docker

对于docker,就像是一个轻量级的虚拟机,也需要自己的镜像(image)来初始化。dockerhub像托管代码的github一样,托管开发者们已构建的镜像,我们可以通过docker pull命令就可以拉取目标镜像,然后通过镜像来启动一个个容器。

docker作为一个前台进程的守护者,从启动的那一刻就为了image中预先设定的命令而存在。所以dockerhub里面的image在构建的时候已经把要运行的程序和命令集成了进去。

如果想要用基本的image来自己DIY一个属于自己的镜像,需要自己编写Dockerfile文件,dockerfile从一个基本的image来构建目标image,image构建docker容器。基本的image这里选择centos。

安装docker
yum -y install docker
# 启动docker守护进程
systemctl start docker.service
# 拉取最基础的image镜像
docker pull centos

Tomcat

运行tomcat用的是java8。

下载tomcat
wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz
tar zxvf  apache-tomcat-8.5.57.tar.gz
dockerfile

编写dockerfile来构建image。这里要注意的是: 文件名必须是Dockerfile 。

# 第一行必须是FROM,指定基础镜像
FROM centos
# 在容器中指定jdk和tomcat的挂载点
VOLUME /usr/local/jdk
VOLUME /usr/local/tomcat
# 设置java和tomcat环境变量,

你可能感兴趣的:(面试,java,程序员,java,后端,程序人生)