• 【云原生】第二篇--容器管理工具 Docker生态架构及部署


    容器管理工具 Docker生态架构及部署

    一、Docker生态架构

    1.1 Docker Containers Are Everywhere

    在这里插入图片描述

    1.2 生态架构

    在这里插入图片描述

    1.2.1 Docker Host

    用于安装Docker daemon的主机,即为Docker Host,并且该主机中可基于容器镜像运行容器。

    1.2.2 Docker daemon

    用于管理Docker Host中运行的容器、容器镜像、容器网络等,管理由Containerd.io提供的容器。

    1.2.3 Registry

    容器镜像仓库,用于存储已生成容器运行模板的仓库,用户使用时,可直接从容器镜像仓库中下载容器镜像,即容器运行模板,就可以运行容器镜像中包含的应用了。例如:Docker Hub,也可以使用Harbor实现企业私有的容器镜像仓库。

    1.2.4 Docker client

    Docker Daemon客户端工具,用于同Docker Daemon进行通信,执行用户指令,可部署在Docker Host上,也可以部署在其它主机,能够连接到Docker Daemon即可操作。

    1.2.5 Image

    把应用运行环境及计算资源打包方式生成可再用于启动容器的不可变的基础设施的模板文件,主要用于基于其启动一个容器。

    1.2.6 Container

    由容器镜像生成,用于应用程序运行的环境,包含容器镜像中所有文件及用户后添加的文件,属于基于容器镜像生成的可读写层,这也是应用程序活跃的空间。

    1.2.7 Docker Dashboard

    仅限于MAC与Windows操作系统上安装使用。

    Docker Dashboard 提供了一个简单的界面,使您能够直接从您的机器管理您的容器、应用程序和映像,而无需使用 CLI 来执行核心操作。
    在这里插入图片描述

    1.3 Docker版本

    • Docker-ce Docker社区版,主要用于个人开发者测试使用,免费版本
    • Docker-ee Docker企业版,主要用于为企业开发及应用部署使用,收费版本,免费试用一个月,2020年因国际政治原因曾一度限制中国企业使用。

    二、Docker部署

    安装Docker-ce版本。

    2.1 使用YUM源部署

    YUM源可以使用官方YUM源、清华大学开源镜像站配置YUM源,也可以使用阿里云开源镜像站提供的YUM源,建议选择使用阿里云开源镜像站提供的YUM源,原因速度快。

    2.1.1 获取阿里云开源镜像站YUM源文件

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在docker host上使用 wget下载到/etc/yum.repos.d目录中即可。
    # wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    • 1
    • 2

    在这里插入图片描述

    2.1.2 安装Docker-ce

    在docker host上安装即可,本次使用YUM源中稳定版本,由于版本在不断更新,不同的时间安装版本也不相同,使用方法基本一致。

    直接安装docker-ce,此为docker daemon,所有依赖将被yum自动安装,含docker client等。
    # yum -y install docker-ce
    
    • 1
    • 2

    在这里插入图片描述

    2.1.3 配置Docker Daemon启动文件

    由于Docker使用过程中会对Centos操作系统中的Iptables防火墙中的FORWARD链默认规划产生影响及需要让Docker Daemon接受用户自定义的daemon.json文件,需要要按使用者要求的方式修改。

    # vim /usr/lib/systemd/system/docker.service
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    2.1.4 启动Docker服务并查看已安装版本

    重启加载daemon文件
    # systemctl daemon-reload
    
    启动docker daemon
    # systemctl start docker
    
    设置开机自启动
    # systemctl enable docker
    
    
    使用docker version客户端命令查看已安装docker软件版本
    # docker version
    Client: Docker Engine - Community 客户端
     Version:           20.10.12
     API version:       1.41
     Go version:        go1.16.12
     Git commit:        e91ed57
     Built:             Mon Dec 13 11:45:41 2021
     OS/Arch:           linux/amd64
     Context:           default
     Experimental:      true
    
    Server: Docker Engine - Community Docker管理引擎
     Engine:
      Version:          20.10.12
      API version:      1.41 (minimum version 1.12)
      Go version:       go1.16.12
      Git commit:       459d0df
      Built:            Mon Dec 13 11:44:05 2021
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.4.12
      GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
     runc:
      Version:          1.0.2
      GitCommit:        v1.0.2-0-g52b36a2
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    
    • 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

    2.2 使用二进制文件部署

    官方不建议此种部署方式,主因为不能自动更新,在条件有限制的情况下使用。

    二进制安装参考网址:https://docs.docker.com/engine/install/binaries/

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    获取二进制文件,此文件中包含dockerd与docker 2个文件。
    # wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz
    
    
    解压下载的文件
    # tar xf docker-20.10.9.tgz
    查看解压出的目录
    # ls docker
    containerd       containerd-shim-runc-v2  docker   docker-init   runc
    containerd-shim  ctr                      dockerd  docker-proxy
    
    
    安装解压后的所有二进制文件
    # cp docker/* /usr/bin/
    
    
    运行Daemon
    # dockerd &
    
    会有大量的信息输出,停止后,直接回车即可使用。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    如果您需要使用其他选项启动守护程序,请相应地修改上述命令或创建并编辑文件/etc/docker/daemon.json 以添加自定义配置选项。

    确认是否可以使用docker客户端命令
    # which docker
    /usr/bin/docker
    
    使用二进制安装的docker客户端
    # docker version
    Client:
     Version:           20.10.9
     API version:       1.41
     Go version:        go1.16.8
     Git commit:        c2ea9bc
     Built:             Mon Oct  4 16:03:22 2021
     OS/Arch:           linux/amd64
     Context:           default
     Experimental:      true
    
    Server: Docker Engine - Community
     Engine:
      Version:          20.10.9
      API version:      1.41 (minimum version 1.12)
      Go version:       go1.16.8
      Git commit:       79ea9d3
      Built:            Mon Oct  4 16:07:30 2021
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          v1.4.11
      GitCommit:        5b46e404f6b9f661a205e28d59c982d3634148f8
     runc:
      Version:          1.0.2
      GitCommit:        v1.0.2-0-g52b36a2d
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    
    • 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

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    php食堂点餐系统hsg5815ABA2程序-计算机毕业设计源码+数据库+lw文档+系统+部署
    ZBrush制作超酷的机器人教程
    解决 Splunk UBA UI 界面闪退问题
    Jdk8 时间和日期API介绍
    elasticsearch-spark的用法
    梦开始的地方 —— C语言指针进阶
    ArcGIS中ArcMap栅格图层0值设置为NoData值的简便方法
    [技术发展-26]:新型信息与通信网络的数据安全
    PAT 1137 Final Grading
    分享这几个好用的文字识别软件,教你快速识别
  • 原文地址:https://blog.csdn.net/m0_67392931/article/details/126080746