设为首页 收藏本站
查看: 809|回复: 0

[经验分享] Docker基础入门实战(一)

[复制链接]

尚未签到

发表于 2019-2-21 09:14:23 | 显示全部楼层 |阅读模式
Docker基础入门实战

第1章          docker简介
1.1  what is Docker
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源,源代码部署在GitHub上。
Docker是通过内核虚拟技术来提供容器的资源隔离与安全保障,由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,从而提高资源的利用率。
Docker的目标是实现轻量级的操作系统虚拟化解决方案。
1.2  Docker的工作模式
Docker对于操作者来说是C/S架构,但是Docker后端是一个非常耦合的架构,模块各司其职,并有机组合,支撑Docker的运行。
用户通过使用Docker ClientDocker Daemon建立通信,并发送请求给后者。
CLI(命令行)交互模型

RemoteAPI交互模式

1.3  Docker可以干些什么

q  8种应用场景

q  Simplifying Configuration
  简化配置:统一配置、通过镜像快速启动
q  Code Pipeline Management
  代码流水线管理:
  开发环境->测试环境->预生产环境->灰度发布->正式发布,docker在这里可以快速实现迁移
q  Developer Productivity
  提高开发效率:对开发人员来说,有了镜像,直接启动容器即可
q  App Isolation
  隔离应用:相对于虚拟机的完全隔离会占用资源,docker会比较节约资源
q  Server Consolidation
  服务器整合:同一台服务器可以跑多个docker容器,提高服务器的利用率
q  Debugging Capablities
  调试能力:Docker提供了很多的工具,提供了很多的功能,这些可以帮助调试bug
q  Multi-tenancy
  多租户:一个租户多个用户,类似于阿里云的一个projiect下多个用户
q  Rapid Deplovment
  快速部署:不需要启动操作系统,实现秒级部署
1.4 Docker8大开发模式
q  The Shared Base Container(s):共享基础容器
q  The Shared Volume Dev Container:共享卷开发容器
q  The Dev Tools Container:开发工具容器
q  The Test In A Different Environment containers:不同环境下测试容器
q  The Build Container:构建容器
q  The Installation Container:安装容器
q  The Default-Service-In-A-Box Containes:盒子中默认服务器容器
q  The Infrastructure/Glue Containers:基础设施/粘合剂容器
1.1  Docker9个基本事实
q  容器不同于虚拟机
q  容器不如虚拟机来的成熟
q  容器可以在几分之一秒内启动
q  容器已在大规模环境证明了自身的价值(比如在谷歌搜索中)
q  IT人员称容器为轻量级
q  容器引发安全方面的问题
q  Docker已成为容器的代名词,但他不是唯一的提供者
q  容器可以节省IT人力,加快更新
q  容器仍面临一些没有解决的问题
1.2  Why use Docker
q  更快速的交付和部署
q  更高效的虚拟化
q  更轻松的迁移和扩展
q  更简单的管理
1.1  DockerOpenStack的对比
类别

Docker

OpenStack

部署难度

极其简单

组件多,部署复杂

启动速度

秒级

分钟级

执行性能

和物理系统几乎一致

Vm会占用一些资源

镜像体积

镜像是MB级别

虚拟机镜像是GB级别

管理效率

管理简单

组件相互依赖,管理复杂

隔离性

隔离性高

彻底隔离

可管理性能

单进程、不建议启动ssh

完整的系统隔离

网络连接

比较弱

借助Neutron可以灵活组件各种网络结构

  特别提示:有些场景是不适合用docker的,像前段的web服务,若使用docker则当docker挂掉时,里面不会像数据库那样有数据写入,这时就需要在重新启动启动一个docker
1.1  Docker3大核心概念
1.1.1        镜像(image
  Docker镜像就是一个只读的模板,例如一个镜像可以包含一个完整的操作系统环境,里面仅安装了Apache或用户需要的其他应用程序
  镜像可以用来创建容器,Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,并且用户甚至可以直接从其他人哪里下载一个已经做好的镜像来直接使用
1.1.2        容器(container
  Docker利用容器来运行应用,容器是从镜像创建的运行实例,他可以启动、停止、开始、删除,每个容器都是相互隔离的,保证平台的安全
  可以把容器看成一个简易版的linux系统和运行在其中的应用程序
  镜像是只读的,容器在启动的时候会创建一层可写层作为最上层
1.1.3        仓库(repository
  仓库就是集中存放镜像的地方,有时候会把仓库和仓库注册器混成一块,并不严格区分,仓库注册器上往往存放着多个仓库,每个仓库又包含了多个镜像,每个镜像又有不同的tag
  仓库分为公开仓库和私有仓库两种,最大的公开仓库是Docker Hub,提供了数量庞大的镜像供用户下载,国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定、更快的访问
第2章          Docker入门实战
2.1 系统环境
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@docker ~]# uname -r
3.10.0-693.11.6.el7.x86_642.2 安装及启动
[root@docker ~]# yum install -y docker   ==》安装
[root@docker ~]# systemctl  start docker   ==》启动
[root@docker ~]# systemctl  status docket  ==》查看状态信息
[root@docker ~]# systemctl enable docker  ==》加入开机自启动
[root@docker ~]# docker --version  ==》简略版本信息
Docker version 1.13.1, build dded712/1.13.1
[root@docker ~]# docker version    ==》详细版本信息
Client:   ==》客户端信息
Version:         1.13.1
API version:     1.26
Package version: docker-1.13.1-68.gitdded712.el7.centos.x86_64
Go version:      go1.9.4
Git commit:      dded712/1.13.1
Built:           Tue Jul 17 18:34:48 2018
OS/Arch:         linux/amd64
Server:  ==》服务端信息
Version:         1.13.1
API version:     1.26 (minimum version 1.12)
Package version: docker-1.13.1-68.gitdded712.el7.centos.x86_64
Go version:      go1.9.4
Git commit:      dded712/1.13.1
Built:           Tue Jul 17 18:34:48 2018
OS/Arch:         linux/amd64
Experimental:    false2.3 docker镜像管理
2.3.1 search镜像
[root@docker ~]# docker search centos:62.3.2 push镜像
[root@docker ~]# docker pull centos:62.3.3 查看镜像
[root@docker ~]# docker images2.3.4 导入/导出镜像
[root@docker ~]# docker save centos:6 >/opt/centos.tar.gz  ==》导出镜像
[root@docker ~]# docker load

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675147-1-1.html 上篇帖子: 【解决方式】Docker remove in process 下篇帖子: docker容器改变apt
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表