本文作为总结性文章,不会详细讲解Docker。但会把已学习的、了解的内容按照由易到难的顺序串起来,更多的是帮助Docker新手快速的了解Docker,知道目前处在哪个阶段,接下来该学些什么,避免碰太多壁。博主水平有限,对于Docker还在不断学习中,本文如有不对的地方,烦请指出。

Docker是什么

Docker 是一个开源的应用容器引擎(Engine),让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

Docker与传统的虚拟机(如VMware,VirtualBox)很相似,但更具优势:

1、创建和销毁秒级完成,启动速度飞快;

2、体积小,可迁移到任何流行的Linux机器上;

3、占用系统资源极低;

4、可自动化部署、集群管理。

Docker基础

需要掌握的内容:

1、安装

2、区分Docker服务端(Server)与客户端(Client)

3、镜像

4、容器

5、容器互联

6、数据卷

7、镜像仓库

8、Dockerfile

此阶段建议阅读:

1、《Docker技术入门与实战》

2、Docker官方文档https://docs.docker.com/

3、Docker学习笔记

http://www.cnblogs.com/52fhy/p/5638571.html

说明:官方文档虽然为英文,但阅读起来并不是那么难,坚持下去,受益匪浅,写的是很不错的。国内很难找到这么全的资料。下面列出官方文档可仔细阅读的地方:

1、Linux上安装:https://docs.docker.com/engine/installation/linux/

2、Hello world in a container: https://docs.docker.com/engine/tutorials/dockerizing/

3、Dockerfile参考:https://docs.docker.com/engine/reference/builder/

4、Dockerizing a Redis service:

https://docs.docker.com/engine/examples/running_redis_service/

5、Docker run 参考:

https://docs.docker.com/engine/reference/run/

6、Docker 命令行参考:

https://docs.docker.com/engine/reference/commandline/

7、Remote API参考:

https://docs.docker.com/engine/reference/api/docker_remote_api/

《Docker技术入门与实战》作为基础入门书籍非常合适,感兴趣的同学可以购买阅读。另外极客学院的Docker视频教程也非常不错。

鉴于国内的网络情况,pull镜像时有必要准备梯子。当然也可以使用国内云平台提供的服务:

Docker工具

Docker社区很活跃,并涌现出了很多实用的工具。掌握了Docker基础后,借助工具可以更高效的使用Docker。

docker hub

docker镜像仓库。

官方镜像仓库:

https://hub.docker.com/explore/

Fig

Fig 主要用来跟 Docker 一起来构建基于 Docker 的复杂应用,Fig 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。目前Fig已经升级并更名为Compose。

Compose

Compose是Fig的升级版。Compose向下兼容Fig(学完任意一个均可)。官方文档写的很详细,建议仔细阅读。

Overview of Docker Compose - Docker

https://docs.docker.com/compose/overview/

重点:

1、安装Compose:

https://docs.docker.com/compose/install/

2、Compose文件参考:

https://docs.docker.com/compose/compose-file/

3、compose命令行参考:

https://docs.docker.com/compose/reference/overview/

Docker Machine

Machine是一个简化docker安装的命令行工具,其可以在不同平台上创建包含docker的实例。

Docker Machine的出现主要是为了解决各平台安装docker困难的问题。现如今,不同云平台上安装docker的流程都不一样,这样对于用户部署docker主机就非常复杂。为了解决这一问题,出现了machine项目 (https://github.com/docker/machine),通过docker-machine可以在不同平台上(例如Azure、 Rackspace、Openstack、Google等云平台)创建docker主机。

Docker Machine也支持安装在Windows、Mac平台(实质是借助虚拟机实现的,建议直接安装Docker Toolbox),这样,我们既可以使用现有的系统办公娱乐,还可以使用Docker Machine管理Docker。

通过安装docker-machine命令行工具,可以创建docker本地主机,也可以一键切换到远程主机。

Docker Toolbox

Toolbox是一个安装器,目前支持Mac和Windows平台。使用它可以快速地在安装Docker工具集。类似于大家常说的集成环境。

最新版Docker Toolbox包含以下内容:

  • docker 1.12.2
  • docker-machine 0.8.2
  • docker-compose 1.8.1
  • Kitematic 0.12.0
  • Boot2Docker ISO 1.12.2
  • VirtualBox 5.1.6

docker/toolbox: The Docker Toolbox

https://github.com/docker/toolbox

Docker Toolbox | Docker

http://www.docker.com/products/docker-toolbox

Docker Registry

Registry是个镜像,用于构建私有镜像仓库。

可视化管理工具

1、DockerUI

DockerUI 基于Docker API,提供等同Docker命令行的大部分功能,支持Container管理,Image管理。

使用:

$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui

kevana/ui-for-docker: An unofficial web interface for Docker, formerly known as DockerUI

https://github.com/kevana/ui-for-docker

microbox/dockerui: 精简版dockeui ~ 16 MB

https://github.com/microbox/dockerui

2、Shipyard

Shipyard也是完全基于Docker API。

https://github.com/shipyard/shipyard

Docker云平台

现在已经有很多云平台已经支持Docker,包括应用编排、代码构建、集群等功能。

  • DaoCloud:提供镜像仓库、应用管理、应用编排、数据卷、集群管理,并且免费使用1~2个容器,或者加入自己的服务器进行管理。
  • 百度BAE:提供弹性、分布式的应用托管服务,帮助开发者一站式轻松开发并部署应用程序(Web应用及移动应用)。每月花几元钱就可以使用容器服务部署应用程序。
  • 阿里云容器 :提供镜像仓库、容器云服务,除镜像仓库其它均属按量付费,且需要开通负载均衡。
  • 网易蜂巢:提供镜像仓库、容器云服务。
  • 灵雀云:容器云平台,提供企业级应用集成、交付、运维的一站式解决方案。

集群

Docker Swarm

(学习中...)

Kubernetes

(学习中...)

Mesos

博客已发表文章

1、Docker学习笔记

http://www.cnblogs.com/52fhy/p/5638571.html

2、Fig 应用编排

http://www.cnblogs.com/52fhy/p/5962440.html

3、Docker实践:安装wordpress

http://www.cnblogs.com/52fhy/p/5962287.html

4、Docker实践:运行Python应用

http://www.cnblogs.com/52fhy/p/5962770.html

5、Docker之Compose服务编排

http://www.cnblogs.com/52fhy/p/5991344.html

6、Docker私有仓库搭建

http://www.cnblogs.com/52fhy/p/5998747.html

更多详见:随笔分类 - Docker

Docker学习总结的更多相关文章

  1. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  2. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  3. docker学习资料整理(持续更新中..)

    docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ...

  4. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  5. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

  6. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  7. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  8. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  9. Docker 学习8 Dockerfile详解2

    一.继续上章节Docker学习7 CMD命令后. 11.ENTRYPOINT a.容器启动后相当于会启动ENTRYPOINT + CMD 命令,CMD相当于参数传给entrypoint的 [root@ ...

随机推荐

  1. Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系

    祝各位2017年事业辉煌!开年第一篇博客,继续探索Xamarin.Forms… 为什么我做Xamarin开发的时候中意于Prism.Forms框架?本章为你揭晓. 实例代码地址:https://git ...

  2. Kali对wifi的破解记录

    好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...

  3. 你知道C#中的Lambda表达式的演化过程吗?

    那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型.(用来传递数字的类型有int.float ...

  4. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  5. 让kindeditor显示高亮代码

    kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: ...

  6. 模拟AngularJS之依赖注入

    一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...

  7. B样条基函数的定义和性质

    定义:令U={u0,u1,…,um}是一个单调不减的实数序列,即ui≤ui+1,i=0,1,…,m-1.其中,ui称为节点,U称为节点矢量,用Ni,p(u)表示第i个p次(p+1阶)B样条基函数,其定 ...

  8. java中易错点(一)

    由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/".如果想替换的只是&qu ...

  9. [转载]SQL语句中的日期计算

    1. 本月的第一天SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0) 2. 本月的最后一天SELECT  dateadd(ms,-3,DATEADD( ...

  10. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...