Docker快速使用

   在十几二十年年前,那时候的服务器性能不高内存都比较小,在一台服务器只能部署一个程序,顶多在加个数据库。
现在随着服务器的CPU核心数越来越多,内存越来越大,如果只在一台服务器上只部署一个应用程序,显然对资源的利用率就很低。所以会在一台服务器上部署多个程序。下图中结构A就是多个程序部署在一台服务器上。

   结构A中,应用一和应用二共用服务器的所有CPU和内存,当应用一出现CPU和内存占用比较高时,会影响着应用二的运行。这两个应用的环境变量、文件结构也是共用,在某些情况下也会存在冲突(比如两个应用输出的日志都是/data/logs/xx.log),所以有必要把两个应用隔离。
  结构B是两个应用分别运行在两个虚拟机上,每个虚拟机都有独立的CPU、内存资源和环境变量文件目录。
  结构C是两个应用分别运行在两个容器里,这里的容器比虚拟机更轻量级。Docker正是这样的一个轻量级容器。

Docker基本概念

  Docker包含三个基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

Docker镜像

  Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资 源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境 变量、用户等) 。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

Docker容器

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

Docker Registry

  镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器 上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry
就是这样的服务。 一个 Docker Registry 中可以包含多个仓库(Repository) ;每个仓库可以包含多 个标签(Tag) ,每个标签对应一个镜像。

安装启动

下载:

官方下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
清华镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/
(这是Centos版本)

安装Docker

1
$ sudo yum install xxx.rpm

启动docker服务

1
$ sudo systemctl start docker

启动docker容器

1
$ sudo docker run hello-world

参考资料