ubuntu部署docker 专题(一)

ubuntu部署docker 专题(一)

保姆级(完整详细版) 教你如何搭建docker

 

docker概念入门


   docker是一款全球流行的容器管理工具,可以暂时理解为一种将程序打包的一种技术。

  在linux系统中,一切接文件,运行任何程序仅包含程序本身及其依赖库,   docker可以实现将这程序和依赖库文件进行打包,便于快速部署服务,迁移等场景。

docker架构简介

  • client 客户端
  • docker daemon 服务端
  • image 镜像文件
  • container 容器
  • registry 远程仓库 存储的是镜像

虚拟机和容器技术对比

  • 从启动速度速度和部署时间

          虚拟机有开机启动流程,而容器没有此过程,因此速度快。

    • 运行性能对比
      1. 虚拟机的CPU,内存,磁盘都是虚拟的,在程序运行时虚拟机的程序会将指令给到虚拟的CPU,而VVM程序需要将其翻译为宿主机能够识别的指令,因此此过程会造成一定的性能消耗。
      2. 容器技术并不会虚拟CPU,内存,而是直接使用宿主机的内核,因此性能更高。
    • 资源消耗对比
      1. 虚拟机需要安装单独的VVM程序,而后基于VVM创建虚拟机,VVM本身会占用一定的资源消耗。
      2. 而容器技术并不需要过多资源消耗,更加轻量级,一套服务器如何能创建10台虚拟机,那么基本上容器技术实现可以创建100台+容器。
    •    数据迁移
      1. 从数据迁移角度来说,虚拟机迁移时需要将现有的业务在新的环境中重新部署,比如将测试环境迁移到生产环境,可能此过程较长,可能需要几个小时,甚至几天?
      2. 而容器技术本身是一种”打包程序”的技术,因此迁移时并不需要部署服务,直接导入镜像启动容器即可。此过程秒级启动。
    • 虚拟机本身的迁移
      1. 一个虚拟机本身是一个操作系统,需要安装特定服务软件(vim,yum,apt,…),因此体积较大,可能上GB+。
      2. 而容器技术本事只是针对性的对”程序文件”进行打包,因此较小,甚至能够小于1MB。

    docker下载地址(二进制安装方式)

    下载系统对应的版本

    https://download.docker.com/linux/static/stable/

              本次安装以docker-20.10.6.tgz为例。

            docker-rootless-extras-20.10.6.tgz (非root运行则需要选择该版本下载)

              解压二进制压缩包

     tar xzvf docker-20.10.6.tgz -C /usr/bin/

    启动 docker服务

    dockerd

      • 如果想通过systemctl来管理启动

    # /lib/systemd/system/docker.service
    [Unit]
    Description=ilovclara
    Documentation=https://docs.docker.com
    Wants=network-online.target

    [Service]
    Type=notify
    ExecStart=/usr/bin/dockerd

    [Install]
    WantedBy=multi-user.target

    #重新加载配置文件
    systemctl daemon-reload
    #重启服务
    systemctl restart docker

    docker配置文件路径

    /etc/docker/daemon.json

      • 如果想进行配置文件的优化 (优化后别忘记重启docker哟)

          1.日志优化

    {
    “log-level”: “info”,
    “log-driver”: “json-file”,
    “log-opts”: {
    “max-size”: “10m”,
    “max-file”: “3”
    }
    }

                    2.配置镜像加速

    {
    “storage-driver”: “overlay2”,
    “registry-mirrors”: [“https://<your-mirror-address>.com”]
    }

                   3.使用自定义网络

    {
    “bridge”: “none”,
    “networks”: {
    “my-network”: {
    “driver”: “bridge”,
    “ipam”: {
    “driver”: “default”,
    “config”: [
    {
    “subnet”: “172.18.0.0/16”
    }
    ]
    }
    }
    }
    }

        4.调整资源限制

    {
    “default-runtime”: “runc”,
    “runtimes”: {
    “runc”: {
    “path”: “runc”
    }
    }
    }

        5.使用的 cgroup 驱动

    {
    “exec-opts”: [“native.cgroupdriver=systemd”]
    }

    docker测试拉取镜像

    docker run hello-world

    查看拉取后的结果

    docker images | grep hello-world

     

    Comments

    No comments yet. Why don’t you start the discussion?

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注