由于公司准备上k8s,所以先部分应用部署到docker上,测试问题,
本人先做了一个系统的初始底包
安装好环境所需要的包

[root@VM-3-10-centos docker]# cat Dockerfile
FROM openjdk:11
MAINTAINER www.g6k.cn

RUN sed -i s@/security.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
    && sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
    && apt-get clean \
    && apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends telnet net-tools fonts-dejavu fontconfig \
    && rm -rf /var/lib/apt/lists/* \
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

制作基础镜像(后面可以使用tag更改)

docker build -t openjdk:ops_v11 .

准备服务的dockerfile(ENV是您这个jar包的传参)

[root@VM-3-10-centos servers]# ls
az-ops-gateway.jar  Dockerfile

root@VM-3-10-centos servers]# cat Dockerfile
FROM openjdk:az_v11
ADD az-ops-gateway.jar /opt/az-ops-gateway.jar
ENV JAVA_OPTS="-Xmx512m -Xms512m -Dspring.profiles.active=dev"
ENTRYPOINT ["/bin/sh","-c","java $JAVA_OPTS -jar /opt/az-ops-gateway.jar"]

制作服务镜像

docker build -t az-ops-gateway:v34 .

启动服务

docker run -itd -p 8200:8200--name az-ops-gateway az-ops-gateway:v34 /bin/bash

注意的坑,如果使用nacos做了服务发现,由于注册的是docker的内网,所以跨主机是会出现网络问题的。所以
k8s需要使用专门的网络插件来解决这个问题。
原理见下图
2022-07-01T08:14:34.png

Last modification:September 6, 2022
如果觉得我的文章对你有用,请随意赞赏