docker file-制作镜像

大纲:

java应用打包成app.jar文件,将jar文件制作成镜像大致流程:

1.创建一个dockerfile文件,在dockerfile文件里编写制作镜像的指令

2.docker 的builder构建器就会根据dockerfile文件里的指令拿着app.jar文件制作成镜像。

镜像里边包含内容:

app.jar文件要运行的基础环境,比如开源操作系统ubuntu以及要运行的java环境

app.jar软件包

app.jar软件包启动命令

类似windows装机镜像.iso文件,iso文件里包含了window基础环境+winows上安装的一些软件+window启动引导命令

dockerfile常见指令:

详细指令参考docker官网的dockerfile目录页

编写一个dockerfile文件:

1.vim dockerfile创建dockerfile文件:

From:指定镜像运行的基础环境。实际上指定的是镜像里边的软件包运行的基础环境,此处镜像里的软件包是app.jar包,jar包运行的基础环境是jdk,所以此处From指定的基础环境是openjdk:17

如下截图中的dockerfile文件中的Expose指令解释有误,dockerfile文件中expose暴露的端口是在镜像内部的操作系统环境下暴露的端口,即类似容器内部的端口,不是外部浏览器可以访问的端口,外部浏览器要访问镜像启动的容器应用需要做端口映射,即把容器内部的镜像端口暴露出去,在容器启动时指定-p

2.docker build构建镜像并启动镜像为容器:

项目中的dockerfile文件示例:

复制代码
# 环境
FROM xx/openjdk:v2.0
# 作者信息
MAINTAINER xx
## 将日志文件挂载到宿主机上
#VOLUME /data

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#yum -y install fontconfig
#COPY src/main/resources/font /usr/share/fonts/
#RUN fc-cache -vf

# 拷贝jar
ADD target/xx.jar xx.jar
ADD target/transmittable-thread-local.jar transmittable-thread-local.jar
# 设置暴露的端口号
EXPOSE xxxx
# 执行命令 线上2C 4G 机器使用
ENTRYPOINT exec java -Xmx4g -Xms4g -javaagent:transmittable-thread-local.jar -Xbootclasspath/a:transmittable-thread-local.jar -jar -Dspring.profiles.active=prod xx.jar

windows启动jar包:

windows本地已安装jar包运行所需要的jdk环境

rz命令从windows本地上传文件到linux服务器

相关推荐
卤炖阑尾炎13 分钟前
PostgreSQL 日常运维全指南:从基础操作到备份恢复
运维·数据库·postgresql
handsomestWei1 小时前
Docker引擎API接入配置
运维·http·docker·容器·api
Tingjct1 小时前
Linux常用指令
linux·运维·服务器
daad7771 小时前
wifi_note
运维·服务器·数据库
IT界的老黄牛1 小时前
Linux 压缩命令实战:tar、gzip、bzip2、xz、zstd 怎么选?一篇讲清楚
linux·运维·服务器
12345,catch a tiger2 小时前
虚拟机ubuntu安装Vmware Tools
linux·运维·ubuntu
不是书本的小明4 小时前
K8S应用优化方向
网络·容器·kubernetes
程序猿编码4 小时前
一个授予普通进程ROOT权限的Linux内核级后门:原理与实现深度解析
linux·运维·服务器·内核·root权限
小夏子_riotous4 小时前
openstack的使用——9. 密钥管理服务Barbican
linux·运维·服务器·系统架构·centos·云计算·openstack
梦想的旅途25 小时前
自动化运营如何防封?解析 API 协议下的拟人化风控算法
运维·自动化