深入浅出docker基本操作——docker基础教程

12 篇文章 1 订阅
5 篇文章 2 订阅

docker原理

自从docker发布以来,越来越多的企业开始使用docker来部署自己的环境,原因在于其超高的部署效率以及不同容器间优秀的隔离功能(即:虽然所有容器都部署在一台机器上,但是彼此之间几乎没有联系,只能通过类似网络的方式来实现通信,各个模块之间互不影响,即使一个模块down掉,也不会对其他的模块构成影响,就像部署在不同的机器上一样,但是又和虚拟机有着本质上的差别),很多人尤其是刚入门docker的小白很容易将docker比作另一个版本的虚拟机来理解,其实这样是非常错误的做法。
所谓虚拟机,顾名思义,就是虚拟出来的机器,即通过软件的形式模拟出机器的各种部件,例如内存CPU等,然后将实际的操作系统镜像安装与这些虚拟出来软件之上,由此可以看出,虚拟机实际上的资源应用效率是比较低的,因为它要经历整个硬件→系统→软件→模拟硬件→系统→应用的过程;
在这里插入图片描述
与虚拟机不同,docker实际上是一种服务,类似于mysqlnginx等,是一种运行于操作系统之上的应用程序,而每一个容器则是这个应用程序里的一个进程,所有的容器共用操作系统的资源,但是彼此之间却相互隔离,启动一个容器就是启动一个新的进程,所以虚拟机的启动往往是分钟级,而容器的启动往往是秒级的,docker相比起虚拟机性能也会高很多(虽然从定义上来讲,两者压根就没有什么可比性,没有人会在部署服务器上再装一个虚拟机来部署单个应用吧?尤其是当部署服务器本身就是一个虚拟机的时候)。
在这里插入图片描述

如上图所示,从外到达内部的application所经历的层数越多,最外层的物理资源就消耗的越多。应用的整体性能就越低。

docker结构

要了解docker,首先要了解docker的组成,docker主要的组成有镜像容器本地仓库等。

  • 镜像(image):可以理解为将要部署应用的静态数据,这些静态数据就部署在docker的仓库中(“仓库”分为“本地仓库”和“远程仓库”,“远程仓库”后面会讲到),docker就是使用这些镜像文件实例化出对应的容器,这些容器便会对外提供具体的服务。
  • 容器(container):容器是由镜像实例化出来的一个具体服务应用,一个镜像可以并行开启多个容器(前提是启动端口不能相同),每开启一个容器,docker服务就会开启一个新的进程。
  • 本地仓库(local hub):顾名思义,本地仓库就是保存具体镜像的逻辑空间(实际物理空间存放于某个目录中)。
    在这里插入图片描述

docker一般的部署架构

一般情况下,在生产环境中部署docker集群应用需要用到三个模块部署服务器docker远程仓库生产环境
在这里插入图片描述
首先在需要保证所有模块都已经安装了docker服务,由于所有应用都需要使用docker来下发,所以每一台机器(无论真实物理机还是虚拟机都需要)。

  1. 将要部署的docker应用镜像静态文件拷贝到部署服务器上
  2. docker应用镜像静态文件加载到本地仓库(参考命令:docker load < xxx.tar
  3. 在远程仓库服务器上(有时远程仓库和本地仓库会存在于同一个服务器节点,也就是说本地会存放两份镜像文件)安装docker的远程仓库服务(例如: Harbor,具体参靠《docker搭建私有仓库》)。
  4. 对新加载到本地仓库的镜像进行“打tag”(参考命令:docker tag www.xxx.com/project/app1:version-xxx <remote-host>/project/app1:version-xxx
  5. 推送到远程仓库(参考命令:docker push <remote-host>/project/app1:version-xxx
  6. 控制生产环境拉取远程仓库的镜像到生产环境本地,建议使用ansible工具而不是直接登录到生产环境的实体服务器上,具体的ansible教程可参考《ansible自动化运维工具》。(参考命令:docker pull <remote-host>/project/app1:version-xxx
  7. 控制生产环境启动对应的docker。(参考命令: docker run -d --name xxx <remote-host>/project/app1:version-xxx

docker操作

具体参考《docker学习笔记》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值