美文网首页
docker基础知识

docker基础知识

作者: ands999 | 来源:发表于2020-04-04 17:17 被阅读0次

    kubernetes是docker之上的平台,采用docker实现其底层容器相关的操作。

    • docker是github上开发的Moby开源项目的一部分。docker一词来自于英国口语,意为码头工人(docker worker)。

    • docker版本号遵循YY.MM-xx格式。分为CE(社区版)和EE(企业版)。

    • rkt(发言“rocket”),是CoreOS公司的同类产品。

    • 以镜像的形式交付,以容器的方式运行。

    • 将应用整合到容器中并运行起来的过程,称为容器化。

    • 如果在仓库名称后没有指定具体的镜像标签,则默认拉取latest镜像。latest镜像不保证是仓库中最新的。例如,Alpine仓库中最新的镜像通常标签是edge。

    • 只要给出镜像的名字和标签,就能在仓库中定位一个镜像(采用“:”分割)。

    • docker镜像存储在镜像仓库服务(Image Registry)中,镜像仓库服务包含多个镜像仓库(Image Repository)。

    • Google容器镜像仓库服务(GCR)中,需要在仓库名称前面加上gcr.io。

    • 使用--filter "is-official=true",只返回官方镜像。

    • 悬虚镜像。没有标签的镜像被称为,在列表中展示为<none>:<none>。出现这种镜像,是因为构建新镜像,然后为该新镜像打已经存在的标签。

    • docker通过存储引擎(新版本采用快照机制)的方式实现镜像层堆栈,并保证多镜像层对展示位统一的文件系统。linux上常用overlay2。

    • docker可以识别出要拉取的镜像中,哪几层已经在本地存在。

    • linux上各存储引擎(包括overlay2)有自己的镜像分层,镜像层共享和写时复制(CoW)技术的具体实现。

    • docker提供--filter参数过滤docker images ls命令返回的镜像列表内容,dangling,before,since和label。
    • 根据镜像的摘要,可以准确拉取镜像。镜像每层会包含一个分发散列值。
    • Manifest列表是指摸个镜像标签支持的架构列表。多架构镜像。
    • 在docker中,包含应用文件的目录称为构建上下文。通常将Dockerfile放到构建上下文的根目录。
    • Dockerfile通过WORKDIR指令,为Dockerfile中尚未执行的指令设置工作目录。
    • 多阶段构建方式。一个Dockerfile,包含多个FROM指令。每个FROM指令都是一个新的构建阶段,并且可以复制之前阶段的构件。COPY --from
    • Docker Compose。在docker节点上,以单引擎模式进行多容器应用的部署和管理。
      docker compose是基于docker engine进行安装的python工具。该工具在声明式的配置文件中定义一个多容器的应用,并通过简单命令部署。compose文件可以是yaml或json格式,其中定义了所有的容器,网络,卷和应用所需的密码。
    • Docker Stack。docker节点上,以Swarm模式进行多容器应用进行部署和管理。
    • Docker Swarm是企业级的docker安全集群,是微服务应用编排引擎。自docker1.12版本后集成。
    容器和虚拟机对比

    虚拟机运行在完整的操作系统上。
    容器共享主机的操作系统/内核。并且动态分配资源。
    Hypervisor是硬件虚拟化。容器是操作系统虚拟化(空间进行隔离)。
    CPU,内存,硬盘等硬件资源的占用。操作系统等软件资源的占用,导致虚拟机启动缓慢。
    虚拟机的Guest OS能为应用提供更加隔离和安全的环境,不会因为应用程序的漏洞给宿主机造成任何威胁。
    Docker Engine只对linux内核namespace API进行封装和调用,真正的内核虚拟化技术是由linux提供。

    docker常用命令
    • 镜像命令
      docker image build
      docker image pull
      docker image ls
      docker image inspect
      docker images rm
    • 容器命令
      docker container run
      docker container ls
      Ctrl-PQ 断开shell和容器终端的连接,容器在后台运行。
      docker container exec 在运行的容器中,启动新进程。
    • 网络命令
      docker network create
      docker network ls
      docker network inspect
      docker network rm
    • 卷与持久化数据命令
      docker volume create
      docker volume ls
      docker volume inspect
      docker volume rm
    参考

    《深入浅出Docker--》

    相关文章

      网友评论

          本文标题:docker基础知识

          本文链接:https://www.haomeiwen.com/subject/jfopdhtx.html