一、Docker 简介、应用场景和优点

1.1 简介

  • Docker 是开源应用容器引擎,轻量级容器技术。
  • 基于 Go 语言,并遵循 Apache2.0 协议开源。
  • Docker 可以让开发者打包他们的应用、依赖包及配置文件打包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 系统上,也可以实现虚拟化。
  • 容器完全使用沙箱技术,相互之间不会有任何接口。
  • 类似于虚拟机技术(vmware、vitural),但 docker 直接运行在操作系统(Linux)上,而不是运行在虚拟机中,速度快,性能开销极低。

白话文,简介就是:

Docker 支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。 运行中的这个镜像称为容器,容器启动是非常快速的。类似 windows 里面的 ghost 操 作系统,安装好后什么都有了。

1.2 Docker 应用场景

  • Web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

1.3 Docker 优点

  • 简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker 改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker 中进行管理。方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的任务,在 Docker 容器的处理下,只需要数秒就能完成。
  • 避免选择恐惧症: 如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
  • 节省开支: 一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

三、Docker 核心概念

3.1 docker 镜像(Images)

  • 一个只读模板,可以用来创建容器,一个镜像可以创建多个容器
  • Docker 提供了一个很简单的机制来创建和更新现有的镜像,甚至可以直接从其他人那里获取做好的镜像直接使用
  • 可以理解为 Java 中的类

3.2 docker 容器(Container)

  • 容器是从镜像创建的运行实例,也就是镜像启动后的一个实例称为容器,是独立运行的一个或一组应用。
  • docker 利用容器来运行应用,他可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台。
  • 可以把容器看做是一个简易版的 Linux(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
  • 可以理解为 Java 中通过类创建的实例。

3.3 docker 仓库(Resoisitory)

  • 仓库是集中存放镜像文件的场所,类似 git 代码仓库等。
  • 仓库(Respository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器一般存放多个仓库,每个仓库又有多个镜像,每个镜像又有不同的标签(tag)。
  • 仓库分为公开仓库(public)和私有仓库(private)两种形式。
  • 最大的公开仓库是 Docker Hub,国内的公开仓库有阿里云等。
  • 可以在本地网络创建一个私有仓库。
  • 当创建好自己的镜像后,可以通过 push 命令把它上传到公开或私有仓库。
  • 仓库的概念类似 Git,仓库注册服务器可以理解为 GitHub 这种托管服务。

3.4 docker 主机(Host)

  • 一个物理或虚拟的机器用来执行 Docker 守护进程和容器。

3.5 docker客户端(Client)

  • 客户端通过命令行或其他工具使用 Docker。

API 与 Docker 的守护进程进行通信

先安装基础:

centos7 docker镜像 精简版 docker centos镜像的作用_开发者

centos7 docker镜像 精简版 docker centos镜像的作用_开发者_02

安装社区版docker

centos7 docker镜像 精简版 docker centos镜像的作用_开发者_03

启动docker

centos7 docker镜像 精简版 docker centos镜像的作用_Docker_04

查看版本:docker -v

centos7 docker镜像 精简版 docker centos镜像的作用_Docker_05

拉取hello-world进行测试:启动hello-world

centos7 docker镜像 精简版 docker centos镜像的作用_docker_06

拉取redis进行基础使用对比:

centos7 docker镜像 精简版 docker centos镜像的作用_开发者_07

启动设置名字和端口(访问端口和内部端口)-d 后台启动

centos7 docker镜像 精简版 docker centos镜像的作用_开发者_08

进入镜像redis进行交互:结尾的 bash 不要忘了

centos7 docker镜像 精简版 docker centos镜像的作用_Docker_09

centos7 docker镜像 精简版 docker centos镜像的作用_Docker_10

退出

centos7 docker镜像 精简版 docker centos镜像的作用_docker_11

关闭防火墙

centos7 docker镜像 精简版 docker centos镜像的作用_Docker_12

可以通过代码进行测试!!!

centos7 docker镜像 精简版 docker centos镜像的作用_docker_13

centos7 docker镜像 精简版 docker centos镜像的作用_Docker_14