Dockerfile将jar部署成docker容器

docker总结

1,docker 的Linux基本概念:docker是一个轻量级的虚拟机,也是实现容器化技术的一个应用工具,他是基于Linux内核的,可以对进程实现一个隔离,属于操作系统层面的虚拟化技术,
2,由于隔离的进程独立于宿主和其他进程,又被称之为容器,
3,集装箱的意思是:对于不规整的货物,通过统一的标准进行包装,在docker中代表,对于不同的应用程序使用docker的标准来实现构建,运输集装箱的鲸鱼则代表操作系统, 
4,docker的优势 
4.1,资源占用小,因为容器不需要进行硬件虚拟,也不需要完整的操作系统带来的二外资源开销,是docker的对于资源的利用率更高,比传统的的虚拟机技术要更加的高效,内存消耗也更少
4.2,启动速度更快,传统的虚拟机启动需要时间很多,但是docker容器技术直接运行在,宿主机的内核上,不需要启动完整的操作系统,因此可以做到秒级甚至是毫秒级的启动,
4.3,迁移更轻松,因为docker确保了执行环境的一致性,使得应用在迁移的时候非常的容易,可以在很多平台上运行,物理机,虚拟机,公有云,或者私有云
4.4,维护和扩展更加的轻松,docker是分层存储和镜像技术,让应用重复部分的复用更加的容易,也让应用的维护更加的简单,通过基础镜像进一步扩展镜像,也变的十分简单,有很多的高质量的官网镜像都是直接可以下载下来进行使用的。大大降低了镜像制作的一个成本。
4.5,运行环境的一致性,因为开发测试和生产的往往存在不一样的地方,一些bug在开发环境没有,在生产就有,而docker提供了一个除了内核以外,完整的运行环境,确保了应用环境的一致性。(这就是为什么可以做不同平台迁移的一个问题)
4.6,持续的交付和部署,docker可以通过镜像实现持续的交付和部署,我们只需要通过dockerfile去编写,构建镜像的一个脚本就可以了

docker中的核心组件

镜像是一个特殊的文件系统,是一个Linux系统,一个镜像可以包含一个完成的操作系统环境,
镜像可以用来创建docker容器,
容器是镜像运行的实体,是一个运行实例,他可以被启动,开始停止和删除,每个容器都是隔离,主要保证一个隔离性
仓库是一个集中存放镜像的地方,很多人会把仓库和仓库注册服务器,最大的公开库是dockerhunb

将jar包copy到linux,新建Dockerfile文件

-rw-r--r-- 1 root root 52209844 Mar 25 22:55 data-sharing-0.0.1-SNAPSHOT.jar
-rwxrwxrwx 1 root root      227 Mar 25 22:57 Dockerfile
[root@localhost mnt]# pwd
/mnt

Dockerfile内容

# 指定基础镜像
FROM java:8-alpine

# 拷贝本地jar文件复制到镜像中的/tmp/app.jar路径下
COPY ./data-sharing-0.0.1-SNAPSHOT.jar /tmp/app.jar

# 暴露端口
EXPOSE 8896
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

从构建镜像到运行容器

# 自定义构建镜像
docker build -t data-sharing:0.0.1-SNAPSHOT
.Dockerfile目录
-t指-tar data-sharing:0.0.1-SNAPSHOT指jar名称和版本号

# 查看镜像
docker images

# 运行容器
docker run --name data-sharing -p 8897:8896 -d data-sharing:0.0.1-SNAPSHOT

# 查看容器状态
docker ps -a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值