美文网首页
Docker概念快速入门

Docker概念快速入门

作者: 明训 | 来源:发表于2021-03-14 00:44 被阅读0次

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器,容器是一个运行时环境。

可以把容器看做一个简易版本的Linux环境(包括root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。

版本区分

分为社区版CE和企业版EE

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

Docker仓库从Docker1.13版本之后采用时间线的方式作为版本号。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如18.06,18.09;每个月份更新edge版本,如18.09,18.10

核心技术

  • cgroups => 限制容器的资源使用
  • namespace => 实现容器间的隔离
  • chroot => 文件系统的隔离

速度理解

  1. docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源的虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源,引擎在CPU和内存利用率上docker将会在效率上有明显优势

  2. docker利用的是宿主机的内核,不需要Guest OS。因此当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核,

后台模式

Docker容器后台运行必须要有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top、tail)就会自动退出,这个是docker的机制,例如针对nginx应用,默认其是后台启动的,就导致docker前台没有运行的应用,运行命令完毕后docker容器就会退出,最佳的解决方案是将要运行的程序以前台的形成运行。

数据问题

容器运行结束后,如果不通过commit指令生成新的镜像,使得数据作为镜像的一部分保存下来,当容器删除后,容器内产生的数据会丢失,可以通过数据卷解决。

命令执行

Docker不建议启动SSH,可以使用execattach指令进入

镜像字段

ljhan2/nginx:1.1.9

ljhan2-命令空间[包名]

nginx-镜像名称[类名]

1.1.0 -镜像版本[版本]

数据卷

  1. 容器数据的持久化
  2. 容器和主机之间共享数据

Dockerfile

可以采用如下说法:

  1. 构建文件
  2. 描述文件
  3. 构建描述

阶段分析

从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段。

  • Dockerfile是软件的原材料 ==> 面向开发
  • Docker镜像是软件的交付品 ==>交付标准
  • Docker容器是软件的运行态 ==>部署运维

编排工具

  1. Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。

    Compose是Fig的升级版,Fig已经不再维护。Compose向下兼容Fig,所有fig.yml只需要更名为docker-compose.yml即可被Compose使用。

  2. Mesos

    Apache[2013]

  3. Docker Swarm

    Docker自己[2016]

  4. Kubernetes

    谷歌[2014]

相关文章

网友评论

      本文标题:Docker概念快速入门

      本文链接:https://www.haomeiwen.com/subject/htgfcltx.html