Docker学习总结
本文作为总结性文章,不会详细讲解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、Dockerrun参考:
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镜像时有必要准备梯子。当然也可以使用国内云平台提供的服务:
- DaoCloud https://www.daocloud.io/
- 阿里云 https://dev.aliyun.com/search.html?spm=5176.775974865.0.0.Iot0iJ
- 网易蜂巢 https://c.163.com/
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学习总结的更多相关文章
- Docker学习笔记 — 配置国内免费registry mirror
Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- docker学习资料整理(持续更新中..)
docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- Docker学习总结之Run命令介绍
Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...
- docker~学习笔记索引
回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
- Docker 学习8 Dockerfile详解2
一.继续上章节Docker学习7 CMD命令后. 11.ENTRYPOINT a.容器启动后相当于会启动ENTRYPOINT + CMD 命令,CMD相当于参数传给entrypoint的 [root@ ...
随机推荐
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- ImageView缩放选项
ImageView.ScaleType 将图片边界缩放到所在view边界时的缩放选项. Options for scaling the bounds of an image to the bounds ...
- .NET Core 系列5 :使用 Nuget打包类库
NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...
- CSS十问——好奇心+刨根问底=CSSer
最近有时间,想把酝酿的几篇博客都写出来,今天前端小学生带着10个问题,跟大家分享一下学习CSS的一些体会,我觉得想学好CSS,必须保持一颗好奇心和刨根问底的劲头,而不是复制粘贴,得过且过.本人能力有限 ...
- ABP文档 - 导航
文档目录 本节内容: 创建菜单 注册导航供应器 显示菜单 每个web应用都有一些菜单用来在页面/屏幕之间导航,ABP提供了一个通用的基础框架创建并显示菜单给用户. 创建菜单 一个应用可能由不同模块组成 ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- JAVA设计模式之模板模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式 ...
- 机器指令翻译成 JavaScript —— No.5 指令变化
上一篇,我们通过内置解释器的方案,解决任意跳转的问题.同时,也提到另一个问题:如果指令发生变化,又该如何应对. 指令自改 如果指令加载到 RAM 中,那就和普通数据一样,也是可以随意修改的.然而,对应 ...
- 构建Web API服务
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 构建动态Web API控制器 ABP可以自动地为应用层生成Web API 层.比如说我们之前创建的应用层: namespace N ...
- Javascript之变量作用域
分析: 无论是强类型语言c#.c++.java等语言,还是弱类型语言如Javascript,所有变量可以抽象为两种类型,即局部变量和全局变量. 全局变量:整个作用域可见. 局部变量:局部可见,退出作用 ...