Docker小白到实战之开篇概述
前言 “不对啊,在我这运行很正常啊”,这句话小伙伴们在前几年应该听得很多;每次一到安装、部署时总有一堆问题,毕竟操作系统版本、软件环境、硬件资源、网络等因素在作怪,此时难免会导致开发小伙伴和运维哥们互相甩锅,其实很多时候与要部署的系统没有太大关系。如果能减少差异化带来的不和谐,同时还能提高工作效率,肯定是最好的解决方案;Docker的出现让此类问题迎刃而解,即把应用程序、配置依赖等打包形成一个可交付的运行环境,直接启动运行即可,当然不限于此,接下来就一起来学习和探究吧。 正文1.概述1.1Docker简介Docker是一个开源的应用容器引擎,是用Go语言开发的。用于开发、交付和运行应用程序的开放平台,能够将应用程序与基础设施分开,从而可以快速交付软件。 看看Docker的Logo图 image-,Docker就好比是下面的小鲸鱼,上面装满的每个集装箱(方块)可以理解为容器,不管集装箱里面装的什么,统一按集装箱的形式打包存放、运输即可,集装箱之间互不影响;即Docker不在乎容器里的内容是什么,统一基于容器这种形式进行标准化管理,容器之间相互隔离,所以Docker上运行的多个容器是相互不影响的。Docker从17.03版本之后分为CE(CommunityEdition:社区版)和EE(EnterpriseEdition:企业版),通常社区版足够用了,功能强大,还免费。 1.2Docker架构DockerArchitectureDiagramDocker是客户端/服务器模式架构(C/S),Client(客户端)和Dockerdaemon(守护进程)通信,后者接收到客户端指令并执行。简述上图的三个流程: 客户端(Client)发送dockerbuild指令,服务端(Dockerdaemon)收到指令之后就执行,将对应文件打包生成为镜像(Images); 客户端(Client)发送dockerpull指令,服务端(Dockerdaemon)收到指令之后就执行,从远程仓储中(Registry)寻找镜像(Images),并下载到Docker主机上(DOCKER_HOST),如果找不到就报错; 客户端(Client)发送dockerrun指令,服务端(Dockerdaemon)收到指令之后就执行,先从本地查找镜像(Images),如果本地存在,直接通过镜像启动容器(Containers)实例;如果本地没有镜像(Images),就会从远程仓储中(Registry)下载,然后再根据镜像启动容器(Containers)实例,如果都没找到,那就报错。 上面只是用三关键指令大概描述了从客户端到服务端的执行流程,其实还有很多指令,后续会专门整理文章分享。 上图术语解释及作用: Dockerdaemon(守护进程):负责监听客户端发过来的指令请求,并管理Docker的各种对象,如镜像(Images)、容器(Containers)、网络等。 Client(客户端):用户和Docker主机交互的主要方式,就是用来发指令请求的。 远程仓储(Registry):用于各种镜像的存储,DockerHub是最大的镜像存储库,基本上平时能用到的镜像都可以找到;为了提升拉取速度,可以指定国内的一些仓储。 镜像(Images):是一个启动容器(Containers)的只读模板;比较容易理解的比喻:镜像就是编程语言中的类(Class),容器就是通过类(Class)new出来的实例。 容器(Containers):就是镜像(Images)可运行的实例。 1.3Docker带来的好处开发更加敏捷:让开发人员可以自由定义环境,创建和部署的应用程序更快、更容易,运维人员快速应对变化也更加灵活性。 高可移植性和扩展性:Docker容器可以运行在各种设备环境中,如开发电脑、虚拟机、服务器上等;根据业务需求,可实时扩展或拆除应用程序及相关服务; 充分利用硬件资源:Docker轻量级、启动快,能共用公共服务,不像传统的虚拟机那样,需要单独虚拟出整个系统,占用资源多,速度还不够快。Docker容器之间相互隔离,互不冲突,所以同时可运行很多个容器,充分利用资源。 理论先说那么多,主要是实操应用,用明白了,理论自然就清晰了。 2.安装这里安装的主机环境是我之前的买的云服务器,系统为CentOS7,其他系统版本安装会有差别,具体细节小伙伴可以参考 |
转载请注明地址:http://www.xiyangcana.com/xyszz/8254.html
- 上一篇文章: CFDA规范保健食品命名,意在ldqu
- 下一篇文章: 没有了