学习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. C语言经典算法五个人问岁数!——————【Badboy】

    有5 个人坐在一起,问第五个人多少岁?他说比第4 个人大2 岁.问第4 个人岁数.他说比第3 个人大2 岁.问第三个人,又说比第2 人大两岁.问第2 个人.说比第一个人大两岁.最后问第一个人.他说是1 ...

  2. 传统项目目录结构下maven+junit+junitReport

    <build> <defaultGoal>compile</defaultGoal> <sourceDirectory>${basedir}/src&l ...

  3. arm-linux-gdb+gdbserver环境搭建以及远程调试

    0) gdb源码下载:http://ftp.gnu.org/gnu/gdb/ 1) 编译arm-linux-gdb 指定交叉编译工具链的位置 export PATH=$PATH:/usr/local/ ...

  4. Destroy reall destroy ?!

    最近做战斗逻辑的时候发现一个问题 测试脚本mTest: public class mTest : MonoBehaviour { public mTest2 tmp2; void OnGUI() { ...

  5. SkipList的实现

    当做笔记记录下来:) 相比于bTree,skiplist占用更多的空间. 而在并发的环境下skiplist会比bTree效率更高. (bTree插入的时候需要rebalance,需要lock比较多的结 ...

  6. EXTJS4自学手册——组合图像

    Ext.create('Ext.panel.Panel', { title: '组合图像', renderTo: 'ComplexDiagram', items: [{ xtype: 'button' ...

  7. Android设置拍照或者上传本地图片

    效果例如以下: 看代码: MainActivity类中: package com.example.ceshidemo; import java.io.ByteArrayOutputStream; im ...

  8. linux文本命令

    1.find和grep find命令的作用是在目录中根据文件名搜索文件,grep命令的作用是在目录中根据文件内容搜索文件,find和grep的使用权限是所有用户. (1)find命令: find 列出 ...

  9. android中几个很有用的的api

    0x0001 public PackageInfo getPackageArchiveInfo (String archiveFilePath, int flags) Since: API Level ...

  10. 推送本地文件夹到github

    1.首先鼠标右键,Git Init Here将文件夹初始化为仓库 2.打开github桌面版 3.点击添加本地仓库 4.填好summary和description并提交 5.push到自己的githu ...