资讯专栏INFORMATION COLUMN

docker入门概览

yy13818512006 / 1821人阅读

摘要:至于很具体的操作指令,比如怎么安装,怎么和来跑一个简单的,请参考官方文档部分的或者也可参考文末的一些参考资料参考资料官方文档入门教程系列简明教程使用演示中文系列资源从入门到实践作者更多文章个人网站

docker入门概览

标签 : docker


[TOC]


本文对docker进行大致介绍,包括概述,安装,简单使用,架构,基本原理等方面

写在前面

本文是自己学习docker的一个记录和整理,啃英文文档挺吃力的,懒得翻译,所以写这篇类似“索引”的文章,希望能帮助和我一样的新手快速入门

本文主要参考官方文档(Docker Document)和相关技术博客

如果有理解有误的地方还望不吝指正

概述 什么是Docker?

可以参考下面三篇文章。从我使用的感受来看,我觉得Docker就是一个应用打包工具,把写好的应用用docker打包发布,然后别人就可以直接部署使用了,特别方便。

Docker是什么

理解Docker

What is Docker?(译文)

什么是Docker Engine?

Docker Engine is a client-server application with these major components:

A server which is a type of long-running program called a daemon process.

A REST API which specifies interfaces that programs can use to talk to the daemon and instruct it what to do.

A command line interface (CLI) client.

我觉得官网的解释很言简意赅,附上图(摘自官网)

Docker的用处

Faster delivery of your applications

Deploying and scaling more easily

Achieving higher density and running more workloads

安装

安装参考Install Docker Engine

Ubuntu

以ubuntu 14.04 为例,参考Installation on Ubuntu安装Docker engine

这里列出重要的步骤:

更新apt源,包括添加证书,密钥等

用sudo apt-get安装

进一步配置,主要是创建docker用户组

注 :如果输入docker info出问题,多半是权限问题,以sudo运行试试

Mac OS X

Mac下安装参考Installation on Mac OS X

Mac下有两种安装方式供选

Docker for Mac : Mac的原生应用,没有使用虚拟机(VirtualBox),而是使用的HyperKit

Docker Toolbox : 会安装虚拟机,使用docker-machine来运行boot2docker 和Docker Engine

两者的区别请参考 Docker for Mac vs. Docker Toolbox

演示

先不多说,跑起来体验下。具体的步骤和指令在Docker简明教程这篇文章已经写得很清楚了,在此不再赘述

架构和原理

由上图可知,docker是一个client-server架构

The Docker daemon : 运行在主机上

The Docker client : 用户和dokcer daemon交互的接口

docker的内部主要有三种资源/组件

docker images : build component,只可读

docker registries : distribution component,images共享库

docker containers : run component

这里重点说说images and containers

Docker使用union file systems 把不同的层(layer)做整合成单一的image. Union File System的中一种是AUFS,可以参考这篇博文

官网文档对image的layers是这么描述的

Each Docker image references a list of read-only layers that represent filesystem differences. Layers are stacked on top of each other to form a base for a container’s root filesystem

新版docker(version>=1.10)的存储模型有变化

Previously, image and layer data was referenced and stored using a randomly generated UUID. In the new model this is replaced by a secure content hash.

而container和image的主要区别就在于top writable layer,所有对image的更改都保存在这一层。换句话说,多个container可以共享同一个image,这就大大节省了空间。实现image和container的管理有两个关键的技术:stackable image layers 和 copy-on-write (CoW).

从图中可以看出,copy-on-write (CoW)是一个很好的策略,既节省了空间,又避免了因数据共享带来的写冲突问题,从而提高效率。

结语

本文主要对docker做简单介绍,对于一些更详细的知识,如docker file,volume,network,docker compose等等,会另写文章进行介绍。至于很具体的操作指令,比如怎么安装,怎么build image和run container来跑一个简单的docker hello world,请参考官方文档Docker Engine部分的“get started with docker”或者"learn by example",也可参考文末的一些参考资料

参考资料

Docker Documentation(官方文档)

Docker入门教程(系列)

Docker简明教程(使用演示)

docker中文(系列)

docker资源

docker-从入门到实践(gitbook)


作者@brianway更多文章:个人网站 | CSDN | oschina

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26657.html

相关文章

  • AI开发书籍分享

    摘要:编程书籍的整理和收集最近一直在学习深度学习和机器学习的东西,发现深入地去学习就需要不断的去提高自己算法和高数的能力然后也找了很多的书和文章,随着不断的学习,也整理了下自己的学习笔记准备分享出来给大家后续的文章和总结会继续分享,先分享一部分的 编程书籍的整理和收集 最近一直在学习deep learning深度学习和机器学习的东西,发现深入地去学习就需要不断的去提高自己算法和高数的能力然后...

    huayeluoliuhen 评论0 收藏0
  • 服务器部署工具 - 收藏集 - 掘金

    摘要:基本入门前端掘金作者本文属于翻译文章,原文链接为。如果如何把应用放在容器中运行掘金本文适合零基础,且希望使用运行应用的人士。后端掘金使用构建网站。 nginx 基本入门 - 前端 - 掘金作者:villainthr 本文属于翻译文章,原文链接为 nginx Beginner’s Guide。是至今为止见过最好的 nginx 入门文章。额。。。没有之一。 这篇教程简单介绍了 nginx ...

    Shonim 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<