• 安装docker ,更换docker版本


    docker

    dockerd & containerd

    Dockerd(Docker 守护进程)在其底层使用 Containerd 来管理容器。Containerd 是一个开源的容器运行时管理器,由 Docker 公司于2017年开发并开源,它负责实际的容器生命周期管理。
    以下是 Docker 守护进程(dockerd)和 Containerd 之间的关系:
    Dockerd(Docker 守护进程):Dockerd 是 Docker 引擎的核心组件,负责处理 Docker 命令、容器镜像的构建和运行、容器网络配置、日志记录等高级 Docker 功能。Dockerd 不直接处理容器的详细生命周期管理
    Containerd:Containerd 是一个更低级别的容器运行时管理器,它提供了容器的基本生命周期管理,例如容器的创建、启动、停止、销毁以及容器与 Dockerd 之间的通信。Containerd 本身是面向容器的标准化运行时,它可以与不同的容器编排系统集成,而不仅限于 Docker。
    Dockerd 和 Containerd 之间的关系可以看作是 Docker 引擎的高级组件和低级组件之间的关系。Dockerd 使用 Containerd 来执行容器的基本操作,而 Dockerd 本身则添加了更多高级特性和用户友好的 CLI 界面。
    这个分层的体系结构使得 Docker 引擎更加灵活,可以用于不同的容器编排系统,而不仅仅是 Docker Compose 和 Kubernetes。此外,Containerd 的开源性质也使得容器运行时变得更加标准化和可扩展。

    1.二进制安装docker

    二进制docker引擎下载
    1.下载

    wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz
    
    • 1

    2.解压

    tar xzvf docker-20.10.9.tgz
    \cp -rp /root/docker/* /usr/local/bin
    
    • 1
    • 2

    3.systemd方式启动

    cat >/etc/systemd/system/docker.service <<EOF
    [Unit]
    Description=Docker Application Container Engine
    Documentation=http://docs.docker.io
    [Service]
    OOMScoreAdjust=-1000
    Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin"
    ExecStart=/usr/local/bin/dockerd
    ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
    ExecReload=/bin/kill -s HUP \$MAINPID
    Restart=on-failure
    RestartSec=5
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    Delegate=yes
    KillMode=process
    [Install]
    WantedBy=multi-user.target
    EOF
    systemctl daemon-reload
    systemctl start docker
    systemctl enable docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    docker升级版本

    1.下载

    wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.0.tgz
    
    • 1

    2.停止docker

    systemctl stop docker
    
    • 1

    3.备份

    cd /usr/local/bin
    tar -cvzf docker-all.tar containerd containerd-shim containerd-shim-runc-v2 ctr docker dockerd docker-init docker-proxy runc
    
    • 1
    • 2

    4.替换版本

    cd /root/docker
    \cp -r docker dockerd /usr/local/bin/
    
    • 1
    • 2

    只需换 dockerd 和 docker 这两个二进制文件,而不需要手动更改 Docker 引擎的其他内部组件的二进制文件。

    在这里插入图片描述

    卸载docker

    1.删除镜像关闭docker,删除systemd启动方式

    systemctl stop docker
    rm -f /etc/systemd/system/docker.service
    
    • 1
    • 2

    2.删除二进制文件

    cd /usr/local/bin
    rm -rf docker-all.tar containerd containerd-shim containerd-shim-runc-v2 ctr docker dockerd docker-init docker-proxy runc
    
    • 1
    • 2

    3.要不要删除文件呢

    rm -rf /var/lib/docker
    
    • 1

    干啥的

    containerd

    containerd 是一个基础的容器运行时管理器,它负责管理容器的生命周期,包括创建、启动、停止和删除容器。Docker 使用 containerd 作为其底层容器运行时。

    containerd-shim

    containerd-shim 是 containerd 的一部分,它是一个代理进程,用于与容器进程进行通信和管理。每个正在运行的容器都有一个关联的 containerd-shim 进程,它负责将容器的 I/O 转发到容器的标准输入、输出和错误,并处理容器的生命周期事件。

    containerd-shim-runc-v2

    这是 containerd-shim 使用的运行时插件,通常是 runc 的一部分,用于管理容器的执行。runc 是一个开源工具,用于创建和运行容器。

    ctr

    ctr 是 Docker 的客户端工具,它用于与 containerd 进行通信并执行容器相关的操作,如创建、启动、停止、删除容器等。

    docker

    docker 命令行工具,也被称为 Docker CLI。它是 Docker 的主要命令行界面,允许用户管理 Docker 容器和镜像,创建和运行容器,构建和推送镜像等。

    dockerd

    dockerd 是 Docker 的守护进程,也被称为 Docker 引擎。它负责管理 Docker 容器和镜像,监听 Docker CLI 的命令,并执行相应的操作。dockerd 运行时会与 containerd 集成,以实现容器的创建和运行。

    docker-init

    docker-init 是一个小型初始化进程,通常与 Docker 容器一起使用。它有助于创建容器的 PID 命名空间,设置正确的容器环境,并最终执行容器中的用户指定的进程。

    docker-proxy

    docker-proxy 是一个代理进程,用于将流量从容器网络命名空间转发到宿主机网络命名空间。这允许容器内的服务可以通过主机的 IP 地址和端口号进行访问。

    runc

    runc 是一个标准的容器运行时工具,它用于创建和运行 OCI(Open Container Initiative)兼容的容器。Docker 使用 runc 作为其默认容器运行时。

    这些二进制文件和工具协同工作,以实现容器的创建、管理和运行。dockerd 是 Docker 引擎的核心,而 containerd 负责底层容器管理,runc 负责容器执行,docker 是用户与 Docker 引擎交互的主要工具。其他工具和进程则支持这些核心功能。

  • 相关阅读:
    6-7抽象类和抽象方法
    java毕业设计宠物找家系统mybatis+源码+调试部署+系统+数据库+lw
    ATE新能源汽车充电桩自动负载测试系统
    算法解析:LeetCode——机器人碰撞和最低票价
    Visual Studio使用Git忽略不想上传到远程仓库的文件
    从零开始操作系统-09:键盘实现
    MySQL高级学习笔记
    基于java足球赛会管理系统
    人脸美化和人脸识别在美颜SDK中的具体应用
    SpringSecurity初探(一)
  • 原文地址:https://blog.csdn.net/weixin_55000003/article/details/132690753