学习docker已经有一段时间了,一直没有静下心来好好总结一下。

最近用docker搭了一整套Gitlab的持续集成环境。(会在下一篇中详细的讲解具体步骤,敬请期待)

感觉是时候写点东西和大家一起分享了,如果写的不好还请帮忙指正。

先从docker的一些官方网站说起。

1. www.docker.com

  这个是docker的官网,经常参考的是Install&Docs,学会这里面的所有内容你就是docker使用的大师(...)了。

2. http://index.docker.io/

  介绍这个网站要稍微多说一点,docker的目的是把环境(image)打包分享,所以需要一个存这些环境(image)的地方,方便大家去查找和分享,这个网站就是干这个的了。称为public registry(有经验的同学可能注意到了,既然有public,那肯定有private了。是的,我们也可以搭建自己的private registry,方便局域网内的人进行image共享,搭建方法会在后续的章节中介绍)。

  就像App Store/安卓市场一样,说不定以后真的会变成和App Store/安卓市场一样的使用方式呢。(这句只代表本人想法,不同意请忽略)

3. https://github.com/

  大家可能奇怪为什么会和github有关系呢,因为docker的环境是可以通过build文件(Dockerfile)来自动编译出来的,docker中提到的automated build可以根据在github中存放的build文件来自动编译出image,然后push到public registry中。

4. Linux基础知识

  因为docker是在linux container基础上发展起来的,所以对于linux的了解还是少不了的。

  这个可以在使用docker过程中慢慢学习,毕竟涉及的命令太多了。

5. Git(optional)

  这个是可选的,因为docker的很多命令和git差不多,如果之前用过git,那docker命令学起来就方便多了。

接下来简单介绍下为什么用docker呢?

拿一个简单的例子来说明一下,作为一个开发者,我想要搭建一个mysql的环境,一般的步骤是:download -> install -> configure -> use.

尤其是configure,如果没有经验,还需要在网上查找资料,各种各样的配置信息都会被你搜出来,浪费时间和精力。

如果另一个开发者,也需要一个mysql的环境,又需要这么来一边。

  第一个问题,为什么不能有现成的呢?

  答案是:有,使用VM, 搭建好后,把VM Template进行共享。

  但是VM会引出其它的问题:

    1. 占用空间大,动不动就几G, 里面有太多和运行mysql无用的程序和进程,和一整套的底层OS.

    2. 一旦以后底层OS换了,原来的MySQL配置还好不好用,就需要进行测试了。

  所以需求来了,不能有这么一套既轻量级,又统一的mysql的环境吗?

  可以把 download -> install -> configure -> use 过程变成 use 吗?

  答案是:docker,用docker registry提供的mysql image。pull下来后可以直接使用。

  只要保证从开发,到最终上线都用相同的mysql image,就不会有兼容性的问题。

上面只是一个简单的例子,想了解详情,请查看https://docs.docker.com/#why-docker

一个统一的mysql image可以代替网上各种各样的mysql配置信息,对于开发者来说方便快捷。

docker是一个面向开发者使用的软件。

更详细的信息可以参考上面提供的链接。

[Docker]学习笔记--简单介绍的更多相关文章

  1. docker学习笔记(一)--介绍和基本组成

    Docker基本介绍 1.什么是docker docker本身不是容器,是创建容器的工具,是应用容器引擎,将应用程序自动部署到容器的开源引擎. 2.docker的目标特点 简单轻量,快速开发,具备可移 ...

  2. RestfulApi 学习笔记——简单介绍(一)

    前言 什么是restapi? 直接看:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 阮一峰的blog,即可明白,下面是一些例子,增强理 ...

  3. Docker学习笔记-简单运行.netcore

    前言: 环境:centos7.5 64 位 正文: 拉取 microsoft/dotnet, 安装完毕后执行 docker images 可以看到本地已经包含 microsoft/dotnet #包含 ...

  4. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

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

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

  6. docker~学习笔记索引

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

  7. docker学习笔记-1

    docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...

  8. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  9. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  10. Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...

随机推荐

  1. Selenium webdriver Java 开始

    最早接触的selenium是 selenium IDE,当时是为了准备论文.为了用IDE还下载了Firefox浏览器.后来接触过两个项目都需要selenium,一个采用selenium webdirv ...

  2. B8:中介者模式 Mediator

    用一个中介对象来封装一系列的对象交互,中介者使得各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互. 减少了各对象之间的耦合,使得可以独立的改变或复用各个Mediator或 ...

  3. pcap学习

    #include <pcap.h> char errbuf[PCAP_ERRBUF_SIZE]; pcap_t *pcap_open_live(const char *device, in ...

  4. Ubuntu 11.04 (Natty) 已经停止支持 但可以使用old-releases源了

    Ubuntu 11.04 (Natty) 已经停止支持,但可以使用old-releases源了,先备份源列表文件: sudo cp /etc/apt/sources.list /etc/apt/sou ...

  5. hdu1509(Windows Message Queue) 优先队列

    点击打开链接 Problem Description Message queue is the basic fundamental of windows system. For each proces ...

  6. 《深入PHP:面向对象、模式与实践》(一)

    第1章  PHP:设计与管理 本章主要介绍了本书有哪些内容. 第2章  PHP与对象 本章总结了PHP面向对象特性的发展过程,逐步介绍对象的概念. PHP/FI:支持变量.关联数组和函数.没有对象. ...

  7. jsoup爬虫简书首页数据做个小Demo

    代码地址如下:http://www.demodashi.com/demo/11643.html 昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固, ...

  8. iOS开发-在Swift里使用AFNetworking方法

    在OC里使用惯了AFNetworking,比较喜欢这一个第三方库,在别的途径里得知可以在Swift里使用AFNetworking.但是那个时候我不知道具体的操作是怎样的,于是我只能去百度.GOOGLE ...

  9. 02-3设置第一启动项--进入BIOS设置USB方式启动

    设置USB方式启动 https://zhinan.sogou.com/guide/detail/?id=1610014869 如何设置电脑从U盘启动呢?今天小编教大家如何进入BIOS设置USB方式启动 ...

  10. vue 记一次编译没反应、无进度、没有任何报错的提示,但后台却TM一直消耗内存的BUG:

    控制台一直提示“building for production...”,而且spinner停止了动画! 由于没有任何的提示.况且项目的代码.结构.设计完全未知模糊的情况下,我只能按照unix的理念“使 ...