前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >容器化中间件

容器化中间件

作者头像
用户9347382
发布2022-01-10 16:38:54
发布2022-01-10 16:38:54
90900
代码可运行
举报
文章被收录于专栏:程序员阿杰程序员阿杰
运行总次数:0
代码可运行

docker容器化

由于项目马上要上云原生了k8s即将上线,所有的中间件包括nginx,mysql,elasticsearch,redis,的集群需要进行容器化改造 我们先改造我们的服务注册与配置中心nacos-1.4.2 在linux环境中我们需要下载nacos-docker

代码语言:javascript
代码运行次数:0
复制
git clone https://github.com/nacos-group/nacos-docker.git

在build文件夹中添加我们的nacos-server-1.4.2.tar.gz的文件 之后修改Dockerfile

代码语言:javascript
代码运行次数:0
复制
FROM centos:7.5.1804
MAINTAINER pader "2901570623@qq.com"

# set environment
ENV MODE="cluster" \
    PREFER_HOST_MODE="ip"\
    BASE_DIR="/home/nacos" \
    CLASSPATH=".:/home/nacos/conf:$CLASSPATH" \
    CLUSTER_CONF="/home/nacos/conf/cluster.conf" \
    FUNCTION_MODE="all" \
    JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk" \
    NACOS_USER="nacos" \
    JAVA="/usr/lib/jvm/java-1.8.0-openjdk/bin/java" \
    JVM_XMS="1g" \
    JVM_XMX="1g" \
    JVM_XMN="512m" \
    JVM_MS="128m" \
    JVM_MMS="320m" \
    NACOS_DEBUG="n" \
    TOMCAT_ACCESSLOG_ENABLED="false" \
    TIME_ZONE="Asia/Shanghai"

ARG NACOS_VERSION=1.4.2
ARG HOT_FIX_FLAG=""

WORKDIR $BASE_DIR

COPY nacos-server-1.4.2.tar.gz /home
RUN set -x \
    && yum update -y \
    && yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel wget iputils nc  vim libcurl
RUN tar -xzvf /home/nacos-server-1.4.2.tar.gz -C /home \
    && rm -rf /home/nacos-server-1.4.2.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql
RUN yum autoremove -y wget \
    && ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone \
    && yum clean all




ADD bin/docker-startup.sh bin/docker-startup.sh
ADD conf/application.properties conf/application.properties


# set startup log dir
RUN mkdir -p logs \
	&& cd logs \
	&& touch start.out \
	&& ln -sf /dev/stdout start.out \
	&& ln -sf /dev/stderr start.out
RUN chmod +x bin/docker-startup.sh

EXPOSE 8848
ENTRYPOINT ["/bin/docker-startup.sh"]

之后再build文件夹

代码语言:javascript
代码运行次数:0
复制
docker build -f Dockerfile -t zyj/nacos-server .

注意我们的操作包括教程中所有的操作都是再纯linux环境中完成 不熟悉linux的同学请移步linux教程 启动我们打包好的镜像

代码语言:javascript
代码运行次数:0
复制
docker run -d --name nacos8849 -e PREFER_HOST_MODE=hostname -e MODE=cluster -e NACOS_SERVER_PORT=8848 -e NACOS_SERVERS="192.168.174.110:18848 192.168.174.110:18849 192.168.174.110:18850" -e NACOS_SERVER_IP=192.168.174.110 -e JVM_XMS=256m -e JVM_XMX=512m  -v /home/nacos/logs -v /home/nacos/conf -p 18849:8848 zyj/nacos-server

之后以该容器为例

代码语言:javascript
代码运行次数:0
复制
docker inspect nacos8849

查看application.properties (不熟悉docker的同学请移步docker教程)

代码语言:javascript
代码运行次数:0
复制
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:"mysql"}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:192.168.174.110}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncod
ing=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeou
t=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user=${MYSQL_SERVICE_USER:root}
db.password=${MYSQL_SERVICE_PASSWORD:abc123456}

警告:请学好docker和熟悉云上开发流程

之后重启nacos8848 使用nginx为即将启动的nacos集群作为负载均衡 需要挂载nginx.conf

代码语言:javascript
代码运行次数:0
复制
 upstream nacoscluster{
        server 192.168.174.110:18848;
        server 192.168.174.110:18849;
        server 192.168.174.110:18850;
    }
    server{
         listen      8847;
         server_name  192.168.174.110;

         location /nacos/{
         proxy_pass http://nacoscluster/nacos/;
         }
    }

之后重启nacos

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名,转载请标明出处 最后编辑时间为: 2021/09/19 09:25

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档