前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 入门及安装

Docker 入门及安装

作者头像
haoming1100
发布2019-01-03 15:26:13
4900
发布2019-01-03 15:26:13
举报
文章被收录于专栏:步履前行步履前行

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker 简介
  • Docker 优点
  • 应用场景
  •  架构
  • 安装
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档