• Docker 学习---Docker下载与安装、Docker概念与原理


    章节目录

    ==> 1、Docker学习
    ==> 2、Docker概述
    ==> 3、Docker基本组成
    ==> 4、Docker的安装
    ==> 5、配置阿里云镜像加速
    ==> 6、底层原理


    Docker 学习

    • Docker概述
    • Docker安装
    • Docker命令
      • 镜像命令
      • 容器命令
      • 操作命令
    • Docker镜像!
    • 容器数据卷!
    • DockerFile
    • Docker网络原理
    • IDEA整合Docker
    • Docker Compose
    • Docker Swarm
    • CI\CD jenkins

    Docker概述

    (1)Docker为什么会出现?

    环境配置是十分麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…)!费时费力。

    发布一个项目(jar + (Redis MySQL jdk ES)), 项目能不能都带上环境安装打包!

    之前在服务器配置一个应用的环境Redis MySQL jdk ES Hadoop , 配置超麻烦了,不能够跨平台。

    windows, 最后发布到Linux!

    传统:开发jar , 运维来做!

    现在:开发打包部署上线,一套流程做完!

    Docker给以上的问题,提出了解决方案!

    java — jar (环境) —打包项目带上环境(镜像)—(Docker仓库:商店)—下载我们发布的镜像—直接运行即可!

    JRE—多个应用(端口冲突)—原来都是交叉的!

    隔离:Docker核心思想!打包装箱!每个箱子是相互隔离的。

    Docker隔离机制,可以将服务器运行到极致。

    (2)Docker有什么用?

    之前的虚拟机技术

    请添加图片描述

    虚拟机技术缺点:1.资源占用多

    1. 冗余步骤多
    2. 启动很慢!

    容器化技术

    请添加图片描述

    比较Docker和虚拟机技术的不同:

    • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
    • 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
    • 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响。

    DevOps(开发、运维)

    应用更快速的交付和部署

    更便携的升级和扩缩容

    更简单的系统运维

    更高效的计算资源利用


    Docker基本组成

    请添加图片描述

    镜像(image):

    docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run ==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行和项目运行是在容器中的)

    容器(container):

    Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。

    启动,停止,删除,基本命令!

    目前就可以把这个容器理解为就是一个简易的Linux系统

    仓库(repository):

    仓库就是存放镜像的地方!

    仓库分为公有仓库和私有仓库!

    Docker Hub (默认是国外的)

    阿里云…都有容器服务器(配置镜像加速!)


    安装Docker

    环境准备

    1. centOS 7
    2. 我们使用Xshell连接远程服务器进行操作!
    # 查看系统内核是否为3.10以上的
    [root@iZbp187hy4vqhxzem2izpmZ ~]# uname -r
    3.10.0-1127.19.1.el7.x86_64
    
    • 1
    • 2
    • 3
    [root@iZbp187hy4vqhxzem2izpmZ ~]# cat /etc/os-release
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:7"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"
    
    CENTOS_MANTISBT_PROJECT="CentOS-7"
    CENTOS_MANTISBT_PROJECT_VERSION="7"
    REDHAT_SUPPORT_PRODUCT="centos"
    REDHAT_SUPPORT_PRODUCT_VERSION="7"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    安装

    帮助文档

    # 卸载旧版本
    yum remove docker \
               docker-client \
               docker-client-latest \
               docker-common \
               docker-latest \
               docker-latest-logrotate \
               docker-logrotate \
               docker-engine
    
    # 安装yum-utils包
    yum install -y yum-utils
    
    # 设置镜像仓库
    yum-config-manager \
         --add-repo \
         http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #使用阿里国内源安装docker,速度快
    
    # 更新yum软件包索引
    yum makecache fast
    
    # 安装最新的Docker CE版本
    yum install docker-ce docker-ce-cli containerd.io
    
    # 如果这是您第一次从最近添加的存储库安装软件包,系统将提示您接受GPG密钥,并显示密钥的指纹。 验证指纹是否正确,如果是,请接受密钥。 指纹应该匹配
    
    060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
    
    # 安装特定版本的 Docker CE
    
    在生产系统上,应该安装特定版本的Docker CE,而不是始终使用最新版本。
    yum list docker-ce --showduplicates | sort -r
    
    # 安装指定版本的Docker-CE 
    yum install docker-ce-18.03.1.ce-1.el7.centos -y
    
    # 启动Docker
    systemctl start docker
    
    # 查看Docker信息
    docker version
    
    # 通过运行hello-world 映像验证 Docker Engine 是否已正确安装
    docker run hello-world
    
    # 查看上面下载的 hello-world 镜像
    docker images
    
    # 卸载 Docker Engine、CLI 和 Containerd 包
    systemctl stop docker
    yum remove docker-ce docker-ce-cli containerd.io
    
    # 主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷
    rm -rf /var/lib/docker   #docker的默认工作路径
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    配置阿里云镜像加速

    1、登录阿里云,找到 容器镜像服务

    img

    2、找到镜像加速地址

    img

    3、配置使用

    sudo mkdir -p /etc/docker
    
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://lidtl20v.mirror.aliyuncs.com"]
    }
    EOF
    
    sudo systemctl daemon-reload
    
    sudo systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    配置完毕!


    底层原理

    Docker是什么工作的?

    Docker是一个Client-Server 结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!

    DockerServer接收到Docker-Client的指令,就会执行这个命令!
    请添加图片描述

    Docker为什么比VM快?

    1. Docker有着比虚拟机更少的抽象层。

    2. docker利用的是宿主机的内核,vm需要是Guest Os。
      在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述

    所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!

  • 相关阅读:
    HarmonyOS开发:探索组件化模式开发
    信息学奥赛一本通:1161:转进制
    RAID10如何创建?RAID10做法详细说明
    汇川PLC学习Day2:编写检测IO端口状态程序
    【动画进阶】类 ChatGpt 多行文本打字效果
    天空卫士陆明:数据法在企业如何落地
    【深入浅出C#】章节10: 最佳实践和性能优化:性能调优和优化技巧
    Python循环结构程序设计
    .NET性能优化-快速遍历List集合
    【电源专题】开关模式电源电流检测基础及感应电阻放置位置选择
  • 原文地址:https://blog.csdn.net/qq_52001969/article/details/125635096