[Docker]学习笔记--简单介绍
学习docker已经有一段时间了,一直没有静下心来好好总结一下。
最近用docker搭了一整套Gitlab的持续集成环境。(会在下一篇中详细的讲解具体步骤,敬请期待)
感觉是时候写点东西和大家一起分享了,如果写的不好还请帮忙指正。
先从docker的一些官方网站说起。
这个是docker的官网,经常参考的是Install&Docs,学会这里面的所有内容你就是docker使用的大师(...)了。
介绍这个网站要稍微多说一点,docker的目的是把环境(image)打包分享,所以需要一个存这些环境(image)的地方,方便大家去查找和分享,这个网站就是干这个的了。称为public registry(有经验的同学可能注意到了,既然有public,那肯定有private了。是的,我们也可以搭建自己的private registry,方便局域网内的人进行image共享,搭建方法会在后续的章节中介绍)。
就像App Store/安卓市场一样,说不定以后真的会变成和App Store/安卓市场一样的使用方式呢。(这句只代表本人想法,不同意请忽略)
大家可能奇怪为什么会和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]学习笔记--简单介绍的更多相关文章
- docker学习笔记(一)--介绍和基本组成
Docker基本介绍 1.什么是docker docker本身不是容器,是创建容器的工具,是应用容器引擎,将应用程序自动部署到容器的开源引擎. 2.docker的目标特点 简单轻量,快速开发,具备可移 ...
- RestfulApi 学习笔记——简单介绍(一)
前言 什么是restapi? 直接看:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 阮一峰的blog,即可明白,下面是一些例子,增强理 ...
- Docker学习笔记-简单运行.netcore
前言: 环境:centos7.5 64 位 正文: 拉取 microsoft/dotnet, 安装完毕后执行 docker images 可以看到本地已经包含 microsoft/dotnet #包含 ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- docker~学习笔记索引
回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...
- docker学习笔记-1
docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...
- Docker:学习笔记(1)——基础概念
Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...
- Docker学习笔记 — Docker私有仓库搭建
Docker学习笔记 — Docker私有仓库搭建 目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2 和Mavan的管理一样,Dockers ...
- Docker学习笔记二(linux下安装Docker)
Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...
随机推荐
- python3自己主动爬笑话
学校的server能够上外网了,所以打算写一个自己主动爬取笑话并发到bbs的东西,从网上搜了一个笑话站点,感觉大部分还不太冷.html结构例如以下: watermark/2/text/aHR0cDov ...
- Django—— 缓存框架
译者注:1.无用的,吹嘘的说辞不翻译:2.意译,很多地方不准确. 动态网站最为重要的一点就是好,网页是动态的.每一次用户请求页面,网站就要进行各种计算——从数据库查询,到render模板,到各种逻辑运 ...
- android js 互相调用
代码地址如下:http://www.demodashi.com/demo/13107.html android js 互相调用 第二版 支持js匿名函数接收 支持js json对象接收 支持js函数返 ...
- java基础入门-多线程同步浅析-以银行转账为样例
在说之前先普及一下线程是什么? 线程:说白了就是一个任务片段 进程:是一个具有独立功能的程序关于某个数据集合的一次执行活动.一个进程有一个或者多个线程 线程与进程的本质差别就是有么有数据共享空间.线程 ...
- Spring 常用类
一.拦截器 public class SysInteceptor implements HandlerInterceptor { /** * 最后执行,可用于释放资源 */ @Override pub ...
- QT学习二:工具栏
QT 的工具栏提供 Dock 功能.文字/图标显示排列的功能. void MainWindow::createToolBar(void) { QToolBar *toolBar = new QToo ...
- Camera2/HAL3
Android Camera HAL3中拍照Capture模式下多模块间的交互与帧Result与帧数据回调https://blog.csdn.net/gzzaigcnforever/article/d ...
- php使用N层加密eval gzinflate str_rot13 base64 破解方法汇总
php使用N层加密eval gzinflate str_rot13 base64 破解方法汇总 来源:本站转载 作者:佚名 时间:2011-02-14 TAG: 我要投稿 PHP使用eval(gzin ...
- script 标签里的 async 和 defer
无 async 和 defer 浏览器立即加载并执行指定脚本(读到即加载并执行),阻塞文档解析 async 脚本的加载执行和文档的加载渲染 并行. defer 脚本的加载和文档的加载渲染并行,但脚本的 ...
- Python 双向链表 快速排序
1.创建链表: from random import randint class DLinkedNode(object): def __init__(self, data=None, pre=None ...