Docker 入门及安装

Docker 简介


 

  docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可适用于自动化测试、打包,持续集成和发布应用程序等场景。
  值得注意的是,docker现已改名为moby。
  docker基于容器化,沙箱机制,可使你用较少的命令和脚本快速部署应用。一次构建,多处移植使用。再配合shell等脚本语言,可实现脚本化一键部署。
  另外,docker大部分的工作都是依赖命令来执行的,简单易上手。
  如火如荼的docker,现已被很多大公司所采用。同时docker也成为了实现serverless(无服务器架构)服务的基础架构。包括阿里云,亚马逊在内的云计算服务商都采用了docker来打造serverless服务平台。
  如此同时,基于docker的微服务架构也如火如荼地出现。
  由此可见,docker容器技术的重要性非同一般。

Docker 优点


 

  • 简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

  • 避免选择恐惧症:

如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

  • 节省开支:

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

应用场景


 

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

 架构


 

 

 

 

Docker daemon 守护进程

用Redis 举例来说 Client 就相当于 redis-cli 的客户端,Host 是 redis 的服务器端,而 Registry 相当于 github。
用 Java 来说 image 相当于 class 文件,Containers 相当于实例

 

  • 镜像

docker镜像是使用Dockerfile脚本,将你的应用以及应用的依赖包构建而成的一个应用包,它通常带有该应用的启动命令。而这些命令会在容器启动时被执行,也就是说你的应用在启动容器时被启动。镜像时基于联合(Union)文件系统的一种层式的结构,由一系列指令一步一步构建出来。

  • 容器

容器是使用 docker run --name 容器名 镜像 命令创建的,独立于宿主机(服务器)的沙箱,也可以理解为一个带有特殊结构的盒子,它在创建时会自动执行镜像自带的一些指令,从而实现该应用的运行。
狭隘地讲,容器的主要作用就在于给镜像提供运行空间和环境,并执行镜像的指令。

  • 仓库

顾名思义,仓库是用来存东西的,但不是存容器,而是存储docker镜像。你可以把你的docker镜像通过push命令推送到docker仓库,然后就可以在任何能使用docker命令的地方通过pull命令把这个镜像拉取下来。有公共仓库和私有仓库两种。

  • 联系

docker是沙箱机制,容器化部署技术,它主要作用在于通过运行容器来实现应用部署,而容器则基于镜像运行。因此,首先要有镜像,有了镜像才能基于镜像创建容器,才能把镜像存储在仓库。
于是可以这么理解,镜像是基础,容器是镜像使用者,仓库是镜像的管理员。容器和仓库都是围绕着镜像来运作的,是对镜像的管理和使用。
镜像是Docker 生命周期中的构建或打包阶段,容器则是启动或者执行阶段。

安装


 

  1. Docker 要求 Centos 系统的内核版本高于3.10 。通过 uname -r 命令查看内核版本

  $ uname -r
  2. 使用 root 权限登录 Centos,确保 yum 包更新到最新
  $ yum -y update
  3.卸载旧版本的Docker,如果有安装过的
  $ yum remove docker docker-common docker-selinux docer-engine
  4.安装需要的软件包
  $ yum install -y yum-utils device-mapper-persistent-data lvm2

 

  5.设置 yum 源
  $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

  6.查看所有仓库的 docker 版本(使用社区版)
  $ yum list docker-ce --showduplicates | sort -r

 

  7.安装 Docker
  $ sudo yum install docker re # repo中默认只开启 stable 仓库,这里安装的是最稳定版本
  $ sudo yum install <FQPN> # sudo yum install docker-ce-18.03.1.ce

  报错 问题


  1:执行yum clean all 清除缓存目录下的软件包及旧的headers;
  2:接着执行 yum list 重新列出所有已经安装和可以安装的软件包;
  3:重新执行上述命令,发现yum编译成功;
  注意:如果执行 yum list 报错,那就检查一下yum仓库是否有问题;并清除/etc/yum.repos.d/下多余.repo文件!
  正确安装后

 

  8.启动并加入开机启动
  $ systemctl start docker
  $ systemctl enable docker
  9.验证是否安装成功(有client 和 service)
  $ docker version

   

  10.查看是否运行
  $ ps -ef | grep docker

  10.1 查看docker 程序是否正常工作
  # docker info
  返回所有容器和镜像得数量、使用得执行驱动和存储驱动,以及Docker 得配置

  ## 镜像加速器
  使用 阿里云的镜像加速器。 https://q5mbujdh.mirror.aliyuncs.com
  您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
  sudo mkdir -p /etc/docker
  sudo tee /etc/docker/daemon.json <<-'EOF'
  {
    "registry-mirrors": ["https://q5mbujdh.mirror.aliyuncs.com"]
  }
  EOF
  sudo systemctl daemon-reload
  sudo systemctl restart docker

 

posted @ 2018-12-29 15:57  haoming1100  阅读(82)  评论(0编辑  收藏  举报
本文作者: haoming1100 博客链接: http://www.cnblogs.com/haoming1100 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载时必须带上原文链接!