Dockerfile 实战--nginx-tomcat-haproxy
以下是一个简化的Dockerfile实例,用于创建一个包含Nginx、Tomcat和HAProxy的Docker镜像。
# 基于Ubuntu的基础镜像
FROM ubuntu:20.04
# 安装必要的软件包
RUN apt-get update && apt-get install -y \
software-properties-common \
python3-software-properties \
adduser \
sudo \
wget \
curl \
&& rm -rf /var/lib/apt/lists/*
# 添加当前用户
RUN useradd -ms /bin/bash admin
# 切换到新用户
USER admin
# 安装Nginx
RUN apt-get update && apt-get install -y nginx && rm -rf /var/lib/apt/lists/*
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
# 安装Tomcat
RUN apt-get update && apt-get install -y openjdk-11-jdk && rm -rf /var/lib/apt/lists/*
RUN mkdir /opt/tomcat
RUN wget -q -O /tmp/tomcat.tar.gz https://downloads.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz
RUN tar -xf /tmp/tomcat.tar.gz -C /opt/tomcat --strip-components=1
RUN rm /tmp/tomcat.tar.gz
# 安装HAProxy
RUN apt-get update && apt-get install -y haproxy && rm -rf /var/lib/apt/lists/*
# 配置HAProxy
COPY haproxy.cfg /etc/haproxy/haproxy.cfg
# 暴露端口
EXPOSE 80 8080
# 启动命令
CMD ["haproxy", "-f", "/etc/haproxy/haproxy.cfg"]
在同一目录下,你还需要一个haproxy.cfg
文件,用于配置HAProxy。
global
daemon
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend tomcat-backend
backend tomcat-backend
server tomcat-server-1 localhost:8080 check
这个Dockerfile演示了如何在一个镜像中结合多个服务,并通过HAProxy进行负载均衡。这种方法可以作为学习如何构建多容器Docker应用程序的一个起点。
评论已关闭