【Docker】Docker学习笔记(一)Docker基础

文章目录


参考资料:

  1. Docker —— 从入门到实践

#1 Docker简介

  • 开发语言:Go
  • 性质:操作系统层面的虚拟化技术
  • Docker 和传统虚拟化方式的区别:
  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程
  • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便

【Docker】Docker学习笔记(一)Docker基础_第1张图片

图1-1 Docker与虚拟机的区别
  • Docker的优点:
    • 更高效的利用系统资源
    • 更快速的启动时间
    • 一致的运行环境
    • 持续交付和部署
    • 更轻松的迁移
    • 更轻松的维护和扩展
      #2 Docker基本概念
      ##2.1 镜像|Image
        Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
      ##2.2 容器|Container

容器:对进程进行封装隔离,且隔离的进程独立于宿主和其它的隔离的进程
容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样
##2.3 仓库|Repository

  • Docker Registry:一个集中的存储、分发镜像的服务,一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
    • 一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。
    • 仓库名经常以两段式路径形式出现,比如 jwilder/nginx-proxy,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。
      #3 安装Docker
      ##3.1 Ubuntu
  • 注意:Ubuntu版本必须高于16.04,否则需要安装存储层驱动,用来支持docker的分层存储机制。
  • 安装步骤:
    • sudo apt-get update
    • sudo apt-get install apt-transport-https ca certificates curl software-properties-common
    • curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    • sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) stable"
  • 安装Docker CE:
    • sudo apt-get update
  • 建立Docker用户组
    • sudo groupadd docker
    • sudo usermod -a -G docker $USER
    • 重启(重启Terminal没用,需要重系统)
  • 启动Docker CE:
    • sudo systemctl enable docker
    • sudo systemctl start docker
  • 测试
    • docker run hello-world
  • 配置仓库的国内镜像,也叫加速器:
    • 在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
    • sudo systemctl daemon-reload
    • sudo systemctl restart docker
{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

你可能感兴趣的:(容器技术)