一、Docker简介

         Docker 是世界领先的软件容器平台。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。

        Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

       Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。

       Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持。

 

二、Docker的特点

1、更快速的交付和部署

        对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

2、更高效的虚拟化

       Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

3、更轻松的迁移和扩展

       Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

4、更简单的管理

       使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

 

三、Docker安装

        建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便。

Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:

                           yum install docker
       安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

                          service docker start
                          chkconfig docker on
       如采用CentOS 7中支持的新式 systemd 语法,如下:

                          systemctl start docker.service
                          systemctl enable docker.service                 
         输入命令docker version,返回docker的版本相关信息如下证明docker安装成功

[root@test ~]# docker version
 Client:
  Version:      18.03.1-ce
  API version:  1.37
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:20:16 2018
  OS/Arch:      linux/amd64
  Experimental: false
  Orchestrator: swarmServer:
  Engine:
   Version:      18.03.1-ce
   API version:  1.37 (minimum version 1.12)
   Go version:   go1.9.5
   Git commit:   9ee9f40
   Built:        Thu Apr 26 07:23:58 2018
   OS/Arch:      linux/amd64
   Experimental: false

 

四、Docker常用命令

         拉取docker镜像

         docker pull image_name
         查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:

         docker images
         删除镜像

        docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af30
        查看当前有哪些容器正在运行

        docker ps
        查看所有容器

        docker ps -a
        启动、停止、重启容器命令:

        docker start container_name/container_id
        docker stop container_name/container_id
        docker restart container_name/container_id
        后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:

       docker attach container_name/container_id
       删除容器的命令:

       docker rm container_name/container_id

      查看当前系统Docker信息
      docker info
      从Docker hub上下载某个镜像:
      docker pull centos:latest
      docker pull centos:latest
      执行docker pull centos会将Centos这个仓库下面的所有镜像下载到本地repository。