0%

Docker初识

一、简介

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

docker.png

二、Docker与虚拟机的比较

    Docker是在操作系统进程层面的隔离,而虚拟机是在物理资源层面的隔离,两者完全不同,另外,我们也可以通过下面的一个比较,了解两者的根本性差异。

虚拟机与docker区别.png

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般为几十个

    从上面的容器与虚拟机的对比中,我们明白了容器技术的优势。

    容器就是一个不错的解决方案,容器能成为开发与运维之间沟通的语言,因为容器就像一个集装箱一样,提供了软件运行的最小化环境,将应用与其需要的环境一起打包成为镜像,便可以在开发与运维之间沟通与传输。我们常常会听到开发人员对运维人员说的这样一句话:“在我的电脑运行没问题,怎么到了你那里就出问题了,肯定是你的问题”,而运维人员则认为是开发人员的问题。通过Docker容器可以解决开发人员与运维人员之间的矛盾。

三、核心概念

    Docker 包括三个基本概念如下。具体关系如下图所示。

docker镜像容器仓库.png

3.1 镜像(Image)

    Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。   

3.2 容器(Container)

    镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

3.3 仓库(Repository)

    仓库可看着一个代码控制中心,用来保存镜像。

四、Docker的版本

    Docker分为社区版(CE)和企业版(EE)两个版本,社区版本可以免费使用,而企业版则需要付费使用,对于我们个人开发者或小企业来说,一般是使用社区版的。

    Docker CE有三个更新频道,分别为stable、test、nightly,stable是稳定版本,test是测试后的预发布版本,而nightly则是开发中准备在下一个版本正式发布的版本,我们可以根据自己的需求下载安装。

五、如何安装

5.1 安装必要的一些系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5.2 添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5.3 更新并安装Docker-CE

sudo yum makecache fast
sudo yum -y install docker-ce

5.4 开启Docker服务

sudo service docker start

5.5 查看docker版本

docker version

5.6 开启 docker 并设置开机自启动

systemctl start docker
symctl enable d