Docker(一)
Docker是一个能够把开发的应用程序自动部署到容器的开源引擎,它基于Apache2.0开源授权协议发行,以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和管理员设计的,用于构建、发布和运行分布式应用的平台。
Docker极其简洁,它所需的全部环境只是一台仅仅安装了兼容版本的Linux内核和二进制文件最小限的宿主机。
Docker的目标:
1. 提供一个简单、轻量的建模方式
2. 职责的逻辑分离: 使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器
3. 快速、高效的开发生命周期
4. 鼓励使用面向服务的架构: Docker推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型。
Docker的组件:
1. Docker客户端和服务器
2. Docker镜像: 镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器。
3. Registry: Docker用Registry来保存用户构建的镜像。Registry分为两种: 公共(例如Docker Hub的)和私有(可以创建自己的私有的Registry,私有Registry可以收到防火墙的保护)。
4. 容器: 镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。
Docker能干什么:
1. 加速本地开发和构建流程,使其更加高效、更加轻量化。
2. 能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。
3. 用Docker创建隔离的环境来进行测试。
4. Docker可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一开始就在生产环境部署、测试。
5. 构建一个多用户的平台即服务(Paas)基础设施。
6. 为开发、测试提供一个轻量级的独立沙盒环境,或者将独立的沙盒环境用于技术教学。
7. 提供软件即服务(SaaS)应用程序,如Memcached即服务。
8. 高性能、超大规模的宿主机部署。
大致了解了Docker后,下面开始安装使用一下:
Linux系统下安装Docker比较方便,但是需满足如下几个条件:
1. 运行64位CPU架构的计算机,如x86_64和amd64
2. Linux内核版本大于3.8
3. Linux内核必须支持一种适合的存储驱动,如:
- Device Manager
- AUFS
- VFS
- BTRFS
- Device Mapper - 默认的存储驱动
CentOS7系统下进行安装:
1. 检查CPU位数和Linux版本,满足条件1和2:

2. 检查存储驱动,满足条件3:

如果没有出现device-mapper的信息,需要执行如下命令:sudo modprobe dm_mod来加载dm_mod模块。
3. 在CentOS7及以上版本,Docker已内置在extras源内,可以直接使用yum来进行安装

4. 查看是否安装成功了:sudo docker info

docker安装成功,使用ifconfig看一下ip信息:

发现多了一个docker0的网络接口设备,在docker启动时,docker会在宿主机器上创建一个名为docker0的虚拟网络接口,它会从RFC 1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。例如启动docker几分钟后它选择了172.17.0.1,一个16位的子网掩码为主机和它的容器提供了65,534个ip地址。
但docker0并不是正常的网络接口,它只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥。它可以使容器与主机相互通信。
每次docker创建一个容器,它就会创建一对对等接口(peer interface),类似于一个管子的两端,在这边可以收到另一边发送的数据包。Docker会将对等接口中的一个做为eth0接口连接到容器上,并使用类似于vethAQI2QT这样的惟一名称来持有另一个,该名称取决于主机的命名空间。通过将所有veth*接口绑定到docker0桥接网卡上,Docker在主机和所有Docker容器间创建一个共享的虚拟子网。
5. 查看docker守护进程状态,如没启动,运行命令:sudo systemctl start docker

6. 可以看看docker的操作参数:

Docker安装好了,在下一篇,就通过docker客户端来与docker daemon进行通信,使用docker。
Docker(一)的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- [原][Docker]特性与原理解析
Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
随机推荐
- easyUI 如何不跳转页面,只是加载替换center部分内容
以前做的一个故障报修系统,前端框架使用easyUI框架,layout布局,center使用datagrid .点击左边树形菜单时时页面跳转,想要知道如何点击菜单时不进行页面跳转,而是只对center模 ...
- es6学习笔记(1) let和const命令详解
let和const命令: Es6新增了let命令,声明变量,但与var不一样的,只在let命令所在的代码块内有效(如for循环之外let声明的变量就不再有效).并且let不像var那样会发生" ...
- [Android]学习笔记Activity_001
操作button的说明 设置button的ID: android:id="@+id/button" 设置button的点击事件 findViewById(R.id.button). ...
- #pragma once与#ifndef #define ...#endif的区别
1. #pragma once用来防止某个头文件被多次include: #ifndef,#define,#endif用来防止某个宏被多次定义. 2. #pragma once是编译相关,就是说这个 ...
- Linux服务管理
- 纯css3制作写轮眼开眼及进化过程
今天是火影忍者(漫画)宣告完结的日子,也是我首发的第一个随笔.看过火影的朋友都知道,写轮眼是什么,这里就不多说了.下面就直接展示整个效果,上张图,先睹为快: 目前已经测试 IE10.Firefox浏览 ...
- 实战动态PDF在线预览及带签名的PDF文件转换
开篇语: 最近工作需要做一个借款合同,公司以前的合同都是通过app端下载,然后通过本地打开pdf文件,而喜欢创新的我,心想着为什么不能在线H5预览,正是这个想法,说干就干,实践过程总是艰难的,折腾了3 ...
- ASP.Net 打通服务器代码和前台界面的特殊符号
1.<% %>用来绑定后台代码 如: < % ;i<;i++) { Reaponse.Write(i.ToString()); } %> 2.<%# %> 是 ...
- Javascript设计模式学习一
学习Javascript设计模式之前,需要先了解一些相关知识,面向对象的基础知识.this等重要概念,以及掌握一些函数式编程的技巧. Js多态 多态的思想:实际上是把“做什么”和“谁去做”分离开来.例 ...
- composer
composer 是PHP框架的包安装工具,类似于bower ,npm.bundler. 是命令行工具,没有图形界面. 系统要求 运行 Composer 需要 PHP + 以上版本.一些敏感的 PHP ...