1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Dockerfile制作jdk镜像和微服务镜像部署的最佳实践【Dockerfile实战】

Dockerfile制作jdk镜像和微服务镜像部署的最佳实践【Dockerfile实战】

时间:2022-08-19 10:03:04

相关推荐

Dockerfile制作jdk镜像和微服务镜像部署的最佳实践【Dockerfile实战】

因为公司之前搭建测试服务器是我搭建的,其中包含使用docker来部署微服务项目,于是将这篇Dockerfile的最佳实践记录于此,为避免大家被坑,希望此文能帮你解除疑惑~

ps:因为是公司服务器不是个人服务器,我也没有多余的时间去再用个人服务器示范一次,所以大家也要有一些docker的基础知识,这里没有贴图希望大家能够谅解~(等我日后来给大家补图!)

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

制作jdk镜像

因为公司的测试服务器是我搭建的,我以公司的测试服务器操作为例。

JDK下载:/java/technologies/oracle-java-archive-downloads.html

JDK版本:jdk-8u271-linux-x64.tar.gz(因为在服务器上,肯定下载的是tar包,接下来我们将这个版本的JDK制作成docker镜像)

创建一个文件夹,将JDK的安装包放在文件夹内,然后创建一个Dockerfile文件

# 创建如下目录sudo mkdir /usr/local/jdk# 将下载的JDK安装包放到服务器的此目录下cd /usr/local/jdk# 创建Dockerfile文件,并复制以下内容到Dockerfile文件内保存sudo touch Dockerfile

Dockerfile制作JDK镜像(必须保证JDK安装包和Dockerfile文件在同一目录)

# 指定基础镜像(这条指令必须是第一条)FROM centos:7# 指定镜像的工作目录WORKDIR /app# 将JDK安装包复制到工作目录ADD jdk-8u271-linux-x64.tar.gz /app# 配置JDK环境变量ENV JAVA_HOME=/wsy_docker/jdk/jdk1.8.0_271ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV PATH=$JAVA_HOME/bin:$PATH

构建JDK镜像

# 为你构建的JDK镜像取名并且打上标签,指令:docker build . -t [name]:[tag]# .代表在当前目录制作镜像(必须保证JDK安装包和Dockerfile文件在同一目录的原因)sudo docker build . -t jdk1.8:v1.0

验证JDK镜像制作完成

# 查看镜像sudo docker images# 创建、启动容器并进入容器内部sudo docker run -it jdk1.8:v1.0 /bin/bash# 检查java环境变量(出现很多javac用的指令即可证明你jdk镜像制作成功~)javac# 退出容器exit

制作微服务项目镜像

制作微服务镜像首先要依赖于JDK镜像,既然是微服务镜像jar包的话肯定是Springboot可执行jar包咯!

比如项目jar包名字为:core-1.0.0.jar,将jar包放到服务器内的一个文件夹,并且在此文件夹创建一个Dockerfile文件

# 创建如下目录sudo mkdir /data/app# 将jar放到服务器的此目录下cd /data/app# 创建Dockerfile文件,并复制以下内容到Dockerfile文件内保存sudo touch Dockerfile

Dockerfile制作微服务项目镜像(必须保证微服务项目jar包和Dockerfile文件在同一目录)

# 镜像环境为我们制作的JDK1.8镜像FROM jdk1.8:v1.0# 设置以下工作目录和微服务jar包的环境变量ENV workdir /app/ENV jar core-1.0.0.jar# 将微服务jar包复制到工作目录COPY ${jar} ${workdir}# 指定工作目录WORKDIR ${workdir}# 使用JDK1.8环境启动微服务jar包# JAVA_OPTS 环境变量的值为部署组的JVM启动参数,在运行时 bash 替换# 使用 exec 以使 Java 程序可以接收 SIGTERM 信号CMD ["sh", "-ec", "exec java ${JAVA_OPTS} -jar ${jar}"]

构建微服务项目镜像

sudo docker build . -t core:v1.0

运行启动项目镜像

# 查看镜像sudo docker images# 创建、启动镜像(启动后你就会看到项目跑起来后的日志了,这就说明)# -d 后台运行项目(看不见项目运行后的日志)# -p 将服务器中的8080端口映射到容器中(微服务项目中的端口号)的8090端口sudo docker run -d -p 8080:8090 core:v1.0

接下来浏览器直接http://IP:8080/访问微服务项目资源验证即可~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。