安微省建设庁官方网站,semir是什么牌子衣服,网红营销套路,视频网站开发前景如何#x1f388; 作者#xff1a;Linux猿
#x1f388; 简介#xff1a;CSDN博客专家#x1f3c6;#xff0c;华为云享专家#x1f3c6;#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我#xff0c;关注我#xff0c;有问题私聊#xff01;
… 作者Linux猿 简介CSDN博客专家华为云享专家Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我关注我有问题私聊 欢迎小伙伴们点赞、收藏⭐、留言 目录
一、实验环境
二、制作 jar
二、打包镜像
2.1 编写 DockerFile
2.2 构建 docker 镜像
三、运行镜像
四、远程访问容器 本文主要介绍如何将微服务实例的 jar 构建成 docker 镜像。
一、实验环境
本文的试验环境是 CentOS 7.9如下所示。
[rootk8s-master ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[rootk8s-master ~]#
二、制作 jar
我创建了一个微服务实例打包成了 jar如下所示。 图1 微服务实例 上面的微服务实例可以通过 localhost:8088/index 访问返回 hello如下所示。 图2 访问微服务 在 Linux 环境中创建一个目录 imagesJar将 demo-0.0.1-SNAPSHOT.jar 拷贝到该目录下如下所示。
[nodek8s-master imagesJar]$ ls
demo-0.0.1-SNAPSHOT.jar
[nodek8s-master imagesJar]$
二、打包镜像
在微服务实例同一目录下imagesJar目录下创建 DockerFile 文件如下所示。
[nodek8s-master imagesJar]$ ls
demo-0.0.1-SNAPSHOT.jar DockerFile
[nodek8s-master imagesJar]$
下面编写 DockerFile 文件。
2.1 编写 DockerFile
编写 DockerFile 文件内容如下所示。
#penjdk:8-jre 为基础镜像来构建此镜像可以理解为运行的需要基础环境
FROM openjdk:8-jre#WORKDIR指令用于指定容器的一个目录 容器启动时执行的命令会在该目录下执行。
WORKDIR /opt/docker/images/metabase/#将当前目录下 demo-0.0.1-SNAPSHOT.jar 复制到容器根目录下
ADD demo-0.0.1-SNAPSHOT.jar demo-0.0.1-SNAPSHOT.jar#将依赖包 复制到容器根目录/libs下,demo-0.0.1-SNAPSHOT.jar 已不再需要添加其它jar包
#ADD libs /libs#暴露容器端口为 8088 Docker镜像告知Docker宿主机应用监听了8088端口
EXPOSE 8088#容器启动时执行的命令
CMD java -jar demo-0.0.1-SNAPSHOT.jar2.2 构建 docker 镜像
在 imagesJar 目录下执行如下命令。
[nodek8s-master imagesJar]$ sudo docker build -f DockerFile -t test/demo:1.2.0 .
Sending build context to Docker daemon 16.5 MB
Step 1/5 : FROM openjdk:8-jre--- 0c14a0e20aa3
Step 2/5 : WORKDIR /opt/docker/images/metabase/--- Using cache--- 971fa909168f
Step 3/5 : ADD demo-0.0.1-SNAPSHOT.jar demo-0.0.1-SNAPSHOT.jar--- Using cache--- e9c435263fb7
Step 4/5 : EXPOSE 8088--- Running in 874466bc2650--- 590b7380444b
Removing intermediate container 874466bc2650
Step 5/5 : CMD java -jar demo-0.0.1-SNAPSHOT.jar--- Running in 2d14cbde1e3d--- fff004fa39a7
Removing intermediate container 2d14cbde1e3d
Successfully built fff004fa39a7
[nodek8s-master imagesJar]$查看打包好的镜像执行如下命令。
[nodek8s-master imagesJar]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/demo 1.2.0 fff004fa39a7 26 seconds ago 290 MB
test/demo 1.0.0 d1d4460e42b1 25 hours ago 290 MB
test/demo 1.1.0 d1d4460e42b1 25 hours ago 290 MB
nginx alpine 4937520ae206 3 weeks ago 41.4 MB
nginx latest eb4a57159180 3 weeks ago 187 MB
docker.io/openjdk 8-jre 0c14a0e20aa3 11 months ago 274 MB
192.168.231.152:5000/pod-infrastructure latest 99965fb98423 5 years ago 209 MB
registry.access.redhat.com/rhel7/pod-infrastructure latest 99965fb98423 5 years ago 209 MB
tianyebj/pod-infrastructure latest 34d3450d733b 6 years ago 205 MB
[nodek8s-master imagesJar]$
在上图中test/demo-1.2.0 是新打得镜像。
三、运行镜像
打包完成镜像后执行如下命令运行镜像。
[nodek8s-master imagesJar]$ sudo docker run -d -p 8088:8088 test/demo:1.2.0
4dbd849d1d79aa0874ee64f5c220a05b5b65395c94e3e12eb6e38e65121ccf29
[nodek8s-master imagesJar]$
查看运行的镜像如下所示。
[nodek8s-master imagesJar]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4dbd849d1d79 test/demo:1.2.0 /bin/sh -c java ... 23 seconds ago Up 21 seconds 0.0.0.0:8088-8088/tcp zen_dijkstra
[nodek8s-master imagesJar]$四、远程访问容器
通过浏览器访问容器如下所示。 图3 通过浏览器访问容器 参考链接
https://blog.csdn.net/Jarbein/article/details/103627413 感觉有帮助记得「一键三连」支持下哦有问题可在评论区留言感谢大家的一路支持猿哥将持续输出「优质文章」回馈大家