Docker学习笔记1-docker介绍及安装

什么是Docker
Docker是一个开源工具,它可以将你的应用打包成一个标准镜像文件,并且以容器的方式运行。Docker容器将一系列软件包装在一个完整的文件系统中,这个文件系统包含应用程序运行所需的一切:代码、运行时工具、系统工具、系统依赖,几乎所有可以安装在服务器上的东西。这些策略保证了容器内应用程序运行环境的稳定性,不会被容器外的系统环境影响。就像集装箱一样,你所要做的是是把货物扔到集装箱内,至于承载集装箱的载具完全不需要关心,各个集装箱之间也都是相互隔离的,互相不会产生影响。

Docker与虚拟机对比
不太严谨的理解可以把Docker当作是一个轻量级的虚拟机,他为应用提供所需的一切资源,但应用不需要的系统资源则不会进行虚拟维护(进程级虚拟)。而传统的虚拟机及时应用再小,需要的资源再少也需要虚拟并维护一个完整的操作系统,这就导致系统开销较大,浪费了大量的资源维护不必要的环境(系统级虚拟)。同时由于Docker将运行环境封装到了镜像文件中,为开发者提供了稳定统一的运行环境,省去了在不同平台配置运行环境的繁琐流程。

Docker特点

  • 轻量级
    占用资源少,资源利用率高
  • 开放
    Docker容器可以运行在主流linux发行版和windows操作系统上
  • 安全
    容器将各个应用程序隔离开,这给所有的应用程序提供了一层额外的安全防护
  • 消除环境不一致
    将应用程序的配置和所有依赖打包成一个镜像到容器中,可以保证应用在任何环境中都可以按照预期来运行,再也不用担心不得不在不同环境中安装相同软件和配置的问题。

利用容器合作开发
Docker镜像可以存储到DockerHub中,和他人合作分享。可以把他理解成github的一个Docker版,只不过上传的不是代码而是Docker镜像。

Docker架构
Docker包括三个基本概念:

  • 镜像(image): Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(container): 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(repository): 仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。

Docker安装

  • CentOS7安装Docker
  1. 利用uname -r命令查看当前系统的内核版本,Docker系统的版本需要高于3.10版本.
  2. 更新yum包到最新sudo yum update
  3. 如果安装过旧版本的docker需要先卸载,没有则可以跳过这步。sudo yum remove docker docker-common docker-selinux docker-engine
  4. 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖
    sudo yum install -y yum-utils device-mapper-persisitent-data lvm2
  5. 设置yum源
    sudo 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-ce该命令安装默认最新稳定版
    sudo yum install docker-ce-指定的版本号.ce该命令安装你指定的版本
  8. 启动并加入开机启动
    sudo systemctl start docker
    sudo systemctl enable docker
  9. 验证安装是否成功
    docker version
    如果能显示版本信息则表示安装成功
  10. 切换国内镜像源
    docker默认使用的是国外的镜像源,因为GFW的原因访问速度特别的慢,使用体验很差。因此最好将其切换成国内的源。在/etc/docker/路径下创建一个名为daemon.json的文件,文件里添加如下内容:
      {
            "registry-mirrors": [
                  "https://hub-mirror.c.163.com",
                  "https://registry.aliyuncs.com",
                  "https://registry.docker-cn.com",
                  "https://docker.mirrors.ustc.edu.cn"
            ]
      }

使用systemctl restart docker.service命令重启docker即可完成国内源切换。

posted @ 2020-08-13 10:18  罗斯托夫  阅读(137)  评论(0编辑  收藏  举报