由于公司准备上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需要使用专门的网络插件来解决这个问题。
原理见下图