docker学习<一>

  • docker简介:

    • docker 是一个基于LXC技术构建的容器引擎,使用Go语言开发,并遵循Apache2.0 协议开源。
    • docker 支持打包应用及其依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,重新定义了应用开发,测试,部署上线的过程,核心理念就是 Build once, Run anywhere。
  • docker的优势:

    • 更高效的利用系统资源:docker容器具有vm(虚拟机) 的一些优势,如具有良好隔离,等,但与vm 相比, 容器共享宿主机的操作系统内核, 不需要进行硬件虚拟化,不需要运行完整操作系统等开销,因而无论是应用执行速度,内存损耗或文件存储速度,都要比传统vm更高效;
    • 一致的运行环境:docker的镜像提供了除内核外完整的运行环境,确保了应用运行的环境一致性。
    • 持续交付和部署: 对于开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以再任意地方运行。 使用docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员通过Dockerfile 构建镜像,并结合 持续集成系统测试,而运维人员则可以直接在生产环节中快速部署该镜像,甚至结合持续集成系统进行自动部署。
    • 众多的官方镜像:基本上在docker的官方镜像仓库中,可以找到所有主流框架的镜像.
  • docker 应用场景

    • Web 应用的自动化打包和发布。
    • 自动化测试和持续集成、部署。
    • 在服务型环境中部署和调整数据库或其他的后台应用。
    • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
  • Docker中的几个基本概念。

    • 镜像( 类似于面向对像中类)

    Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。

    镜像可以基于Dockerfile构建,Dockerfile是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。

    用户可以通过编写Dockerfile创建新的镜像,也可以直接从类似github的Docker Hub上下载镜像使用。

  • 容器(类似于面向对象的实例对象)

    Docker容器是由Docker镜像创建的运行实例。Docker容器类似虚拟机,可以支持的操作包括启动,停止,删除等。每个容器间是相互隔离的,但隔离的效果比不上虚拟机。容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。

    在Docker容器中,每个容器之间的隔离使用Linux的 CGroups 和 Namespaces技术实现的。其中 CGroups 对CPU,内存,磁盘等资源的访问限制,Namespaces 提供了环境的隔离。

  • 仓库

  • 如果你使用过 git 和 github 就很容易理解Docker的仓库概念。Docker仓库相当于一个 github 上的代码库。

    Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Registry)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库。

    仓库支持的操作类似 git,创建了新的镜像后,我们可以 push 提交到仓库,也可以从指定仓库 pull 拉取镜像到本地。


    • 创建镜像的方式

    当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
    从已经创建的容器中更新镜像,并且提交这个镜像
    使用 Dockerfile 指令来创建一个新的镜像

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章