Docker训练营Docker基础知识学习笔记Task1

本笔记为阿里云天池龙珠计划Docker训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampdocker;

随着云原生、AI等技术的向前推进,容器技术逐渐成为每位算法同学的必备技能之一。 本文档主要面向算法开发同学,从0基础实现将代码打包docker镜像-调试-提交仓库-提交云服务训练模型/天池大赛提交/学校服务器训练等流程。也同样适用于初次接触docker的同学。 区别于开发同学,对于算法同学而言 仅需要掌握一部分基础命令达到自己的使用目的即可。因此此次简明教程面向算法同学和AI竞赛参赛者,帮助大家快速上手大赛提交和远程服务器训练。
Docker的出现是一种历史趋势,因为微服务的出现,导致了使用的技术更加多元化,所以在部署上的难度也变得更大。而docker可以减轻我们在部署上面的复杂性。

一 什么是docker

docker相当于起到了承上启下的桥梁作用:将App连带环境一同打包直接部署到服务器上。

二 为什么用docker

在没出现docker的时候,我们完成的java web项目需要打成一个war。然后得在服务器中配置各种各样的参数,例如说jdk,tomcat,数据库等。配置的周期相当的冗杂并且繁琐。但是现在有了docker,我们不但可以使用一个空的镜像,从头开始构建,还可以使用之前各种大牛已经build好的镜像,直接使用。而且在项目需要迁移的时候,我们只需要在需要部署的地方,直接使用之前项目使用的docker放置好自己的项目即可,方便快捷。

三 docker的基本概念

docker最重要的三个概念是:镜像(image),容器(container),仓库(repository),在这三个概念中,镜像是最重要的概念。
镜像
1.镜像是文件与meta data的集合
2.分层的,并且每一层都可以添加删除文件,从而形成新的镜像
3.不同的镜像可以共享相同的层(layout)
4.只读的
镜像我们可以理解为树状结构,每一个镜像都会依赖于另一个镜像,这个依赖关系是体现在docker镜像制作的dockerfile中的FROM指令中的。如果要是树的根,那么我们需要"FROM scratch",这个是值得注意的。如果需要对它进行修改,该怎么办呢,别着急,这个就得看我们的容器了。

容器
1.通过image创建
2.在image 的最后一层上面再添加一层,这一层比较特殊,可读写。
3.image负责存储和分发,container负责运行
容器是镜像的一个运行实例,可以不准确的把镜像当作类,容器当作对象。容器其实他的结构是与镜像相类似的,底部也是一层层的只读层,只不过在最上层会存在一个存储层,我们可以在这一层定制化我们的这个容器,还可以通过build命令,把容器打包成我们自己需要的镜像。另外镜像启动后会形成一个容器,容器在计算机中是一个进程,但这个进程对其他进程并不可见。
容器的启动过程:
检查镜像是否在本地存在,如果不存在去远程仓库下载
利用镜像创建一个容器
启动刚刚创建的容器
分配一个文件系统给容器,并且在镜像层外挂载一个可读可写层
从宿主主机的网桥接口中桥接一个给容器
从网桥中分一个ip地址给容器
执行用户指定的应用程序
执行完毕后容器自动终止

仓库
这个理解起来就很简单了,大家应该有使用过git,他是有一个远程的仓库,这个仓库记录着我们的代码,和每一次我们提交的记录。但是在这里,把docker的仓库比做maven仓库更加恰当,就相当于我们可以去maven远程仓库取我们需要的依赖,多个依赖构成了我们的整个项目,这个思想同样适用于docker。默认情况下,我们都是从docker hub中取得的镜像(http://registry.hub.docker.com/)

四 学习思考与总结

学习和了解了docker的基本内容和使用docker的优点1.更高效的利用系统资源2.更快速的启动时间3.一致的运行环境4.持续支付和部署5.更轻松的迁移6.更轻松的维护和拓展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值