4-5 构建Nginx与Java镜像服务并实现NAS动静分离

前言

在4-4章节已经部署好构建镜像的环境,现在可以根据生产实际需求部署web应用。具体为使用nginx做网站服务,java的tomcat解析动态页面,最后使用NAS实现动静分离。

构建Nginx与Java镜像服务并实现NAS动静分离


nginx镜像

准备文件,包括构建文件,页面文件,源码包,配置文件,加速器:

ls nginx/
# 构建nginx镜像的Dockerfile  
Dockerfile  
# 前端页面,有图片和html组成
frontend.tar.gz  
# nginx源码包
nginx-1.22.0.tar.gz  
# nginx配置文件
nginx.conf  
# apt-get清华源加速器
sources.list

nginx配置,访问myapp将转发tomcat service:

vim nginx.conf 

upstream tomcat {
   
  # 服务名可以通过 kubectl get svc -A 查找
  server myserver-tomcat-app1-service:80;
}

location /myapp {
   
	# 当用户请求myapp路径,便会转发到tomcat service。
	proxy_pass http://tomcat;
}

构建文件Dockerfile详解:

# 基础镜像选择ubuntu
FROM ubuntu:22.04
# 添加apt-get清华源加速器
ADD sources.list /etc/apt/sources.list
# 安装基础工具与依赖
RUN apt update && apt  install -y iproute2  ntpdate  tcpdump telnet traceroute nfs-kernel-server nfs-common  lrzsz tree  openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute  gcc openssh-server lrzsz tree  openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip make
# 添加源码并安装
ADD nginx-1.22.0.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-1.22.0 && ./configure --prefix=/apps/nginx && make && make install  && ln -sv /apps/nginx/sbin/nginx /usr/bin
# 创建组,用户,改权限
RUN groupadd  -g 2088 nginx && useradd  -g nginx -s /usr/sbin/nologin -u 2088 nginx && chown -R nginx.nginx /apps/nginx
# 添加配置文件
ADD nginx.conf /apps/nginx/conf/
# 添加前端页面
ADD frontend.tar.gz /apps/nginx/html/
# 暴露80和443端口
EXPOSE 80 443
# 在前台启动nginx
CMD ["nginx","-g","daemon off;"]

构建镜像,上传下载镜像,启动容器:

# 在Dockerfile目录启动构建命令
nerdctl build -t easzlab.io.local:5000/myhub/nginx:v1 .
# 上传镜像到私有仓库
nerdctl push --insecure-registry easzlab.io.local:5000/myhub/nginx:v1
# 下载到任一节点
nerdctl pull --insecure-registry easzlab.io.local:5000/myhub/nginx:v1
# 启动镜像,映射80和443端口
nerdctl run -d -p 80:80 -p 443:443 easzlab.io.local:5000/myhub/nginx:v1

Java镜像

java tomcat服务需要分层构建,从jdk基础镜像,到tomcat程序镜像,最后app业务镜像。这样符合镜像分层构建思想,提高基础镜像复用率。app版本与tomcat版本相对应便于升级回滚。

jdk基础镜像

准备文件,包括构建文件,安装包,全局配置文件:

ls jdk/
# 镜像构建文件
Dockerfile
# jdk安装包
jdk-8u212-linux-x64.tar.gz
# 环境变量等全局配置文件
profile

构建jdk镜像,设置环境变量:

# JDK Base Image
# 基于官网centos7.9
FROM centos:7.9.2009
# 拷贝jdk安装包
ADD jdk-8u212-linux-x64.tar.gz /usr/local/src/
RUN ln -sv /usr/local/src/jdk1.8.0_212 /usr/local/jdk 
# 添加全局配置文件
ADD profile /etc/profile
# 设置jdk目录,添加到环境变量
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin

构建镜像,测试容器:

# 构建jdk镜像并查看
sudo nerdctl build -t easzlab.io.local:5000/myhub/jdk-base:v8.212 .
sudo nerdctl images

# 在本机运行镜像,查看java版本
sudo nerdctl run easzlab.io.local:5000/myhub/jdk-base:v8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值