docker 打包镜像_Docker从入门到精通:镜像、容器、仓库等核心初探

9560b3cd9c9490f3f8f7ec5ee3e97817.png

1、Docker是什么

Docker本身并不是容器,它是创建容器的工具,它是一个开源的应用容器引擎,使用Go语言开发并遵从Apache2.0协议开源,基于Linux内核的cgroup、namespace、Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称之为容器。

Docker 理念是将应用及依赖包打包到一个可移植的容器中,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 发新版Docker引擎上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间相互隔离不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。


2、Docker的应用场景

--Web 应用的自动化打包和发布。

--自动化测试和持续集成、发布。

--在服务型环境中部署和调整数据库或其他的后台应用。

--从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。


3、Docker的优点

【1】简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

【2】避免选择恐惧症:

如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

【3】节省开支:

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。


4、Docker的体系架构

Docker使用C/S架构。client向server端发送请求,server端负责构建、运行和分发容器。

client和server可以运行在同一个Host上,client也可以通过socket或RESTful API与远程的server通信。

2a96d0eaec5cb7c8b99ddcebac3eb084.png

4.1 Docker的核心组件

【1】Docker客户端: Client

常用的Docker客户端是docker命令。通过docker我们可以方便地在Host上构建和运行容器。

docker可以支持很多操作(子命令),仅需一条即可知道:

[root@k8s-master /]# docker

【2】Docker服务器:Docker Danemon 守护进程

Docker 客户端/守护进程,采用客户端/服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker Danemon是服务器组件,以linux后台服务的方式运行:

6fbaf7c319ac1f6bdb6eece28d7b9317.png

Docker Danemon运行在Docker Host上,负责创建、运行、监控容器、构建、存储镜像。

默认配置下,Docker Danemon只能响应来自本地Host的客户端请求。如果要允许远程客户端请求,需要在配置文件中打开TCP监听,步骤如下:

====》允许远程客户端请求配置

编辑配置文件:

[root@k8s-master /]# vi etc/systemd/system/multi-user.target.wants/docker.service

在环境变量ExecStart后面添加-H tcp://0.0.0.0,允许来自任意IP的客户端连接.

重启docker daemon:

[root@k8s-master /]# systemctl daemo-reload

[root@k8s-master /]# systemctl restart docker.service

服务器IP为192.168.72.134,客户端在命令行里加上-H参数,即可与远程服务器通信。

65cbe2baf8a8cc7487bf3d2df2da9ed3.png

info子命令用于查看Docker服务器的信息。

【3】Docker镜像:Image

Docker镜像是Docker容器的基础,类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统,它的底层采用层叠的只读文件系统。

docker使用联合加载方式,一次把各层文件系统叠加到一起。镜像是软件生命周期的构建和打包阶段

【4】Docker容器:Container

Docker 容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。

Docker容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离的、互不可见。

容器自身是只读的。容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。

容器时软件启动和运行阶段

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 镜像

容器 对象

镜像

4.2 Docker的安装

至于Docker的安装,不再赘述,可参考CentOS 7.6 环境,安装单机版kubernetes和Docker


5、 小结

Docker本身并不是容器,它是创建容器的工具,它是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

Docker的三大核心:镜像、容器、仓库

通过这三大核心所构建的高效工作流程,毫无疑问,正是Docker从众多虚拟化方案中脱颖而出的重要原因。接下来,在后续内容中,我们将进一步地围绕这三大核心进行学习。

————————————————

愿你就像早晨八九点钟的太阳,活力十足,永远年轻。

————————————————

一入IT深似海,从此学习是常态,上面内容只是冰山一角。关注"JohnnyHL",决战秋名山,coding到天亮!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值