Docker入门-Docker安装配置

Docker入门-Docker安装配置

    • 一、初识Docker
      • Docker是什么
      • 为什么Docker比VM虚拟机快
    • 二、Docker基本组成
    • 三、Docker安装
      • 前提
      • Docker安装
      • 阿里云镜像加速器配置

一、初识Docker

Docker是什么

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(也可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

Linux 容器技术的出现就解决了这样一个问题,而Docker就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

为什么Docker比VM虚拟机快

(1)docker有着比虚拟机更少的抽象层

由于docker不需要虚拟机实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上,docker将会在效率上有明显优势。

(2)docker利用的是宿主机的内核,而不需要加载操作系统OS内核

当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

二、Docker基本组成

  • 镜像(image)

    Docker镜像就是一个只读的模板。**镜像可以用来创建Docker容器,一个镜像可以创建很多容器。**它相当于是一个root文件系统。比如官方镜像centos7就包含了一套centos7最小系统的root文件系统。相当于容器的“源代码”,docker镜像文件类似于Java的类模板,而docker容器实例类似于Java中new出来的实例对象。

  • 容器(container)

    • 从面向对象角度来理解

      Docker利用容器独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证了安全的平台。

    • 从镜像容器角度

      可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

  • 仓库(repository)

    仓库是集中存放镜像文件的场所

    类似于

    Maven仓库,存放各种Jar包的地方

    github仓库,存放各种git项目的地方

    Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。

    仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

    最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。

  • 总结

    Docker本身是一个容器运行载体或者称之为管理引擎。我们把应用程序和配置依赖打包成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例。

    image文件生成的容器实例,本身也是一个文件,称为镜像文件。

    一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器。仓库是一个存放镜像文件的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉取下来就可以了。

三、Docker安装

前提

目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS7(64-bit)上,要求系统为64位、Linux系统内核版本为3.8以上,这里选用Centos7.x。

查看自己Linux的内核

uname 命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

[tom@nginx ~]$ cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[tom@nginx ~]$ uname -r
3.10.0-1160.el7.x86_64
[tom@nginx ~]$ 

Docker安装

官方文档位置:https://docs.docker.com/engine/install/centos/

  • 确定你的Linux系统版本是CentOS7及以上

    cat /etc/redhat-release 
    
  • 卸载旧版本

     sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  • yum安装gcc相关

    sudo yum -y install gcc
    
    sudo yum -y install gcc-c++
    
  • 安装相关软件包

    这里使用set up Docker’s repositories (安装Docker仓库) 方式安装Docker

    在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 仓库。之后,您可以从存储库安装和更新 Docker。

    设置仓库

    安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的仓库。

    sudo yum install -y yum-utils
    
  • 设置stable镜像仓库(阿里云源)

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 更新yum软件包索引

    sudo yum makecache fast
    
  • 安装 Docker CE

    sudo yum -y install docker-ce docker-ce-cli containerd.io
    
  • 启动Docker

    sudo systemctl start docker
    

    查看docker进程

    ps -ef | grep docker
    

    查看docker版本号

    docker version
    
  • 测试(官方hello-world案例)

    sudo docker run hello-world
    

    首次运行镜像hello-world,会显示本地库没有这个镜像,会从远程仓库拉取镜像

    当出现一下内容表明安装成功。

    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
  • 卸载Docker

    sudo systemctl stop docker
    sudo yum remove docker-ce docker-ce-cli containerd.io
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

阿里云镜像加速器配置

登录阿里云,点击控制台,找到容器镜像服务

Docker入门-Docker安装配置_第1张图片

找到镜像加速工具,复制自己的加速器地址

Docker入门-Docker安装配置_第2张图片

修改daemon配置文件/etc/docker/daemon.json来使用加速器

# 若已存在则忽略创建文件夹步骤
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["自己的镜像加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

配置完成,测试一下

sudo docker run hello-world

当出现一下内容,则配置成功

Hello from Docker!
This message shows that your installation appears to be working correctly.

你可能感兴趣的