• 【Docker】Docker安装与入门


    Docker入门与基础命令

    Docker简介

    • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(系统平滑移植,容器虚拟化技术
    • 安装的时候,把原始环境一模一样地复制过来。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。
    • Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。

    Docker理念

    传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

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

    与虚拟机比较

    • 虚拟机:带环境安装的解决方案
      • 资源占用多
      • 冗余步骤多
      • 启动慢
    • 比较
      • 传统虚拟机是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需要的应用进程
      • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟,因此容器需要比传统的虚拟机更为轻便
      • 每个容器之间相互隔离,每个容器有自己的文件系统,容器之间不会相互影响,能区分计算资源
    • Docerk好处(更快的安装,更平滑的迁移)
      • 更快速的应用交付和部署
      • 更便捷的升级和扩缩容
      • 更简单的系统运维
      • 更高效的计算资源利用
    Docker容器虚拟机(VM)
    操作系统与宿主共享OS宿主机OS上运行虚拟OS
    存储大小镜像小,便于存储与运输镜像庞大
    运行性能几乎没有额外的性能损失操作系统额外的CPU、内存消耗
    移植性轻便、灵活、适用于Linux笨重,与虚拟化耦合较高
    软件亲和力面向软件开发者面向硬件工作者
    部署速度快速,秒级较慢

    下载地址

    • 官网:https://www.docker.com/
    • 仓库: https://hub.docker.com/

    Docker的基本组成

    • 镜像(image)
      • 一个只读模版。镜像可以用来创建Docker容器,一个镜像可以用来创建很多容器
      • 相当于是一个root文件系统
      • 相当于容器的源代码,docker镜像文件类似于Java的类模版,而docer容器实例类似于java中new出来的实例对象
    • 容器(container)
      • Dockerl利用容器(Container)独立运行一个或一组应用,用用程序或者服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例,就像Java中的类和实力对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,他可以被启动,开始,停止,删除。每个容器都是相互隔离的、保证安全的平台
      • 可以把容器看作一个简易版的Linux环境(包括root用户权限、进程空间,用户空间和网络空间等)和运行在其中的应用程序
    • 仓库(repository)
      • 集中存放镜像文件的地方(类似于maven仓库、github仓库)
      • 仓库分为私有和公开仓库两种形式

    Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。
    镜像文件(image)文件生成的容器实例,本身也是一个文件,称为镜像文件。
    容器实例 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
    仓库 就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。

    Docker下载与安装

    在这里插入图片描述

    • 目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS 7 (64-bit)上,要求系统为64位、Linux系统内核版本为3.8以上,这里选用Centos7.x
    • 查看自己的内核
      • cat /etc/redhat-release
        在这里插入图片描述

    CentOS安装Docker步骤

    • 下载地址:https://docs.docker.com/engine/install/centos/
    1. 卸载旧版本
      在这里插入图片描述
    2. yum安装gcc相关
      • yum -y install gcc
      • yum -y install gcc-c++
    3. 安装配置仓库地址,按照官网要求,安装时需要配置仓库的地址,但是国内访问时速度慢,容易造成下载镜像失败,此处更改为国内的阿里云地址
      在这里插入图片描述
      
      yum install -y yum-utils
      # 配置为国内阿里云地址
      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
      • 1
      • 2
      • 3
      • 4

    在这里插入图片描述

    1. 更新yum软件包索引

      yum makecache fast
      
      • 1

      在这里插入图片描述

    2. 安装Docker客户端

      sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
      
      • 1

      在这里插入图片描述

    3. 启动Docker

      systemctl start docker
      
      • 1
    4. 测试

      docker version
      
      • 1

      在这里插入图片描述

      docker run hello-world
      
      • 1

      在这里插入图片描述
      上述图片代表本地没有镜像,自动去仓库下载最新的镜像,下载完成后自动运行
      在这里插入图片描述

    卸载

    在这里插入图片描述

    Docker阿里云镜像加速

    为什么使用

    • 由于Docker的镜像仓库在国外,所以平常下载镜像的速度会比较慢,为此建议配置阿里云的镜像加速器来加快获取Docker官方镜像的速度。

    怎么使用

    • 登陆阿里云,进入控制台
      在这里插入图片描述
    • 在服务中找到容器镜像服务
      在这里插入图片描述
    • 获取加速地址在这里插入图片描述
    • 配置加速地址,根据对应的客户端,直接粘底下的命令执行
      在这里插入图片描述
    • 配置完后重启服务器
      systemctl daemon-reload
      systemctl restart docker
      
      • 1
      • 2

    B站课程链接:尚硅谷2022版Docker实战教程(docker教程天花板)

  • 相关阅读:
    【HCIP】MSTP
    el-table支持分页多选
    Postman —— 配置环境变量
    软件设计模式系列之十七——解释器模式
    aspose导出word转pdf并加水印
    力扣每日一题 6/30 记忆化搜索/动态规划
    Bert不完全手册8. 预训练不要停!Continue Pretraining
    HTTP 之 options预请求 nginx 解决跨域 postman调试跨域问题
    【已更新建模代码】2023数学建模国赛B题matlab代码--多波束测线问题
    IDEA(日常操作技巧记录)
  • 原文地址:https://blog.csdn.net/qq_38987390/article/details/127499092