docker适合谁?运维,和devops的开发。mysql
Docker 开发方向:linux
语言:Golangredis
相关的技术:Swarm、Compose、Machine、mesos、k8s.....--- CI/CD Jeckins整合sql
为何要用docker?解决了什么问题?docker
开发与运维的矛盾:开发提交给运维代码、war包、jar包,开发本机一切安好;运维工程师部署发现不成功。ubuntu
缘由:环境和配置windows
如在windows开发,部署到ubuntu或者Centos上。centos
版本迭代,系统变得复杂,可能会持续带来相似问题。tomcat
解决思路:将开发工程师开发的环境 代码、配置、系统、数据等环境下整个都交给运维来跑。docker就作的是这件事情——软件+环境 安装。安全
运维安装的再也不是软件,而是可以运行软件和环境的整个全家桶。
(本文出自oschina博主happyBKs的博文:https://my.oschina.net/happyBKs/blog/3010974)
另外一个问题:大型分布式环境,每一个ZK、redis、应用有多个节点,还有可能扩容,那部署和维护多个相同的软件运行环境很是痛苦。
解决思路:把代码、配置、环境、依赖等正确环境打一个包,叫作镜像,发布到多个节点。
docker是什么?
docker的理念:一次构建到处运行。
解决了运行环境和配置问题的软件容器,方便持续集成并有助于总体发布的容器虚拟化技术。
虚拟机:启动慢,吃资源,冗余步骤多;捆绑一整套操做系统,虚拟一套硬件。
LXC :linux容器,不是模拟一个完整的操做系统,而是对进程进行隔离。内核要,其余不相关的不要。将软件所需的全部打包到一个隔离的容器当中。容器和虚拟机不一样,不须要捆绑一整套操做系统,只须要软件工做所须要的库资源和设置。高效、轻量。
Docker和传统虚拟化技术的不一样之处:
传统的虚拟机技术是虚拟一套硬件以后,在其上运行一个完整的操做系统,在该系统上运行所须要的应用进程。
而容器内的应用进程直接运行于宿主内核,容器内没有本身的内核,并且也没有进行硬件虚拟。所以容器要比传统虚拟机更为轻便。
每一个容器之间互相隔离,每一个容器有本身的容器系统,容器之间进程不会互相影响,能区分计算资源。
不严格的说,docker能够认为是一个精简版、超小型linux系统虚拟机。
docker发布一个镜像运行便可,使得dev/ops的理念的出现,运维同志们小心被优化噢:)
Docker是2014年出现,2017年开始火爆。
Docker支持的系统和版本要求:
Centos必须6.5及以上版本。
centos7以上,要求64位操做系统、系统内核版本3.10以上。
centos6.5以上或者更高版本的Centos上,要求64位、系统内核版本2.6.32-431或者更高版本。
neil@linux-famw:~> uname -r 4.12.14-lp150.12.45-default
windows也可使用docker。
Docker的三要素:镜像、容器、仓库
docker的架构图:
image镜像 能够看做是类。
container容器能够看做是实例。
container容器是image镜像的实例。
docker的logo是一个鲸鱼同样的船载满了不少集装箱。
集装箱就是container容器。
鲸鱼就是docker。
docker镜像是一个只读的模板,镜像能够用来建立docker容器,一个镜像能够建立不少个docker容器(就像一个类能够有不少个实例同样)
image镜像能够注册在仓库注册服务器Registry。须要的时候pull下来使用。
仓库Repository和仓库注册服务器Registry是有区别的。
仓库Repository 是集中存放镜像文件的地方。
库注册服务器Registry上每每存放着不少仓库仓库Repository,每一个仓库中又包含了不少个image镜像。每一个image镜像有不一样的标签tag。
仓库又分为 公开仓库public和私有仓库private。
最大的公开仓库 dokcer hub:https://hub.docker.com/
可是和maven中央仓库、pip仓库同样,老外的仓库与我朝有着网速的限制。通常仍是用国内的。
国内的docker公开仓库有:阿里云、网易云
而这种承担了docker 公开仓库功能的网站,咱们称之为 docker 镜像站。
Docker利用容器container独立运行一个或一组应用。容器是用镜像建立的实例。它尅被启动、开始、中止、删除。每一个容器都是互相隔离、保证安全的平台。
Docker自己是一个容器运行载体,是一个容器管理引擎。
咱们把应用、配置、依赖打包好,造成一个可交付的运行环境,这个打包好的运行环境就是镜像文件。只用经过镜像文件才能生成docker容器。镜像文件能够看做是容器的模板。同一个镜像文件能够生成多个同时运行的容器实例。
一个容器运行一种服务,好比redis服务、mysql服务、tomcat服务。当咱们须要这个服务的时候,就用docker客户端建立一个对应的运行实例,这就是容器。
下载安装:
官方文档:https://docs.docker.com/install/
centos、ubuntu、windows、mac os等都有。
官网没有suse的docker安装方法,但能够参考我本身以前的博客文章《固态硬盘排名 Docker在opensuse leap15.0安装手册(HappyBKs特供白白》
docker6安装的是docker io
7以后安装的该叫docker ce
ce的意思是社区版。