1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管理,那么这一点非常有用.驱动程序(driver)在create命令上执行以下任务列表: 如果docker不在主机上运行,它将被自动安装 更新主机包(apt-get更新,yum更新…) 它生成证书来保护docker守护进程 如果主机使用systemd,它将创建/etc/systemd/system/dock…
1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 容器要想访问外部网络,需要本地系统的转发支持.在Linux 系统中,检查转发是否打开: root@36078e6ba58f:/opt/webapp# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 为1,说明打开了:如果为0,说明没有开启转发,则需要…
jquery系统学习笔记 一.初识:jquery的优势:1.轻量级(压缩后不到30KB)2.强大的选择器(支持css1.css2选择器的全部 css3的大部分 以及一些独创的 加入插件的话还可支持XPath)3.出色的Dom封装(简化原本复杂的操作)4.可靠的事件处理机制(跨浏览器兼容性)5.完善的Ajax操作(一个$.ajax()方法全部搞定)6.不污染顶级变量(只使用了一个名为jQuery的对象 其别名$也可随时让出其控制权 见解决和其它库混用时解决冲突部分)7.出色的浏览器兼容性(优秀的j…
Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境 Docker Machine是一种工具,它允许你在虚拟主机上安装Docker引擎,并使用docker-machine命令管理主机. 因为之前的内容都是在一个主机host上运行的,但是我们在真正使用的时候肯定是会有多个主机host的情况的,所以首先我们会遇见的一个问题就是怎么在多个host上将docker安装并配置好 docker machine的出现就能够…
Docker 数据管理 为什么要进行数据管理呢?因为当我们在使用container时,可能会在里面创建一些数据或文件,但是当我们停掉或删除这个容器时,这些数据或文件也会同样被删除,这是我们并不想看见的事情,所以我们要进行数据管理,实现持久化存储 在容器中管理数据主要有两种方式: 数据卷(Data volumes) 数据卷容器(Data volume containers) 一.如果使用的是-v参数的方法指定挂载的数据卷 其实本质都是在运行docker run命令时,使用-v参数将主机的某个目录作…
1.启动容器 启动容器有两种方式: 基于镜像新建一个容器并启动 将在终止状态(stopped)的容器重新启动 1)新建并启动——docker run 比如在启动ubuntu:14.04容器,并输出“Hello World”,之后终止容器: userdeMBP:~ user$ docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world 如果要启动一个bash终端,并且允许用户进行交互: userdeMacBook-Pro:~ user$…
前面已经讲解了FROM.RUN指令,还提及了COPY.ADD,接下来学习其他的指令 5.Dockerfile 指令详解 1> COPY 复制文件 格式: COPY  <源路径> ...<目标路径> COPY ["<源路径1>",..."<目标路径>"] 和 RUN指令一样,也有两种格式,一种类似于shell命令行,一种类似于exec函数调用 COPY指令将从构建上下文目录中 <源路径>的文件/目录复制…
仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像. 从这方面来说,仓库可以被认为是一个具体的项目或目录.例如对于仓库地址dl.dockerpool.com/ubuntu来说,dl.dockerpool.com是注册服务器(Registry),ubuntu是仓库(Repository) 1.Docker Hub(公共仓库) 登录——docker log…
3.利用 commit 理解镜像构成 在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像. 直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜像. 接下来的几节就将讲解如何定制镜像 回顾一下之前我们学到的知识: 镜像是多层存储,每一层是在前一层的基础上进行的修改; 容器同样也是多层存储,是在以镜像为基础层,在其基础上加一层作为容器运行时的存储层. 1)现在让我们以定制一个 Web 服务器为例子,来讲解镜像是如何构建的: userdeMBP…
Command-line completion https://docs.docker.com/machine/completion/ Installing Command Completion——实现docker命令的自动补全 Docker for Mac comes with scripts to enable completion for the docker, docker-machine, and docker-compose commands. The completion scri…
1) 快速配置指南(详细使用下面会讲) 其中有些命令选项只有在 Docker 服务启动的时候才能配置,而且不能马上生效 下面2个命令选项既可以在启动服务时指定,也可以 Docker 容器启动(docker run )时候指定.在 Docker 服务启动的时候指定则会成为默认值,后面执行docker run时可以覆盖设置的默认值. 最后这些选项只有在 docker run执行时使用,因为它是针对容器的特性内容: 2) 配置 DNS 怎么自定义配置容器的主机名和 DNS 配置呢? 秘诀就是它利用虚拟…
Compose 命令说明 1)命令对象与格式 对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中 的服务或者容器.如果没有特别的说明,命令对象将是项目,这意味着项目中所有 的服务都会受到命令影响. userdeMBP:compose-haproxy-web user$ docker-compose --help ... Options: -f, --file FILE Specify an alternate compose file (default: docke…
使用 Django 我们现在将使用 Compose 配置并运行一个 Django/PostgreSQL 应用.在此之前,先确保 Compose 已经安装. 1.通过编辑 Dockerfile文件来指定 Docker 容器要安装内容: FROM python:2.7 ENV PYTHONUNBUFFERED RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt AD…
Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景. 通过第一部分中的介绍,我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器.…
Docker 中的网络功能介绍 Docker 允许通过外部访问容器或容器互联的方式来提供网络服务 1) 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -p或 -P参数来指定端口映射 运行容器时如果使用-P,Docker 会随机映射一个在49000-49900区间内的端口到内部容器开放的网络端口. 比如下面的容器,就随机选取了本地的32768端口映射到了容器中正开放的5000端口,此时访问本机的 32768 端口即可访问容器内 web 应用提供的界面 userde…
其它生成镜像的方法 即除了标准地使用Dockerfile来生成镜像外,还有一些其他的方法 1)从 rootfs 压缩包导入 格式:docker import [选项] <文件>|<URL>|- [<仓库名>[:<标签>]] 压缩包可以是本地文件.远程 Web 文件,甚至是从标准输入中得到.压缩包将会在镜像 / 目录展开,并直接作为镜像第一层提交. 比如我们想要创建一个 OpenVZ 的 Ubuntu 14.04 模板的镜像: docker import ht…
镜像与容器之间的关系: 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体.容器可以被 创建.启动.停止.删除.暂停等. 为什么使用数据卷(Volume): 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡.因此,任何保存于容器存储层的信息都会随容器删除而丢失. 按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储 层要保持无状态化.所有的文件写入操作,都应该使用 数据…
C++Primer第5版学习笔记(四) 第六章的重难点内容         你可以点击这里回顾第四/五章的内容       第六章是和函数有关的知识,函数就是命名了的代码块,可以处理不同的情况,本章内容包括:         1.函数的概念基础,包括函数的定义声明以及函数如何生成值和返回结果.       2.函数重载,重载可以使函数接受不同种类或者数量不同的参数.       3.函数指针,指向函数的一类特殊指针.         下面是这一章的知识点:              知识点1:P…
C++Primer第5版学习笔记(三) 第四/五章的重难点内容           你可以点击这里回顾第三章内容       因为第五章的内容比较少,因此和第四章的笔记内容合并.       第四章是和表达式有关的知识,表达式是C++的基础设施,本章由三部分组成:         1.表达式概念基础,包括表达式的基本概念,左值和右值的概念,优先级结合律,求值顺序.       2.各种运算符,主要包括算数\关系\逻辑\赋值\递增递减\成员访问\条件\位运算\sizeof\逗号运算符 这10种运算…
C++Primer第5版学习笔记(一) 第一.二章的重难点内容        这个笔记本主要记录了我在学习C++Primer(第5版,中文版)的过程中遇到的重难点及其分析.因为第一.二章都比较简单,因此这里合并这两章我遇到的问题.        第一章 开始        这一章在第一部分之前,是一个helloworld式的章节,包含基本的函数,io流以及类的介绍.依靠这一章的内容可以创建第一个完整可被编译的cpp文件.        知识点1:P19,1.5,文件重定向(英文版22页) 可以在…
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark SQL相关的知识,如果对Spark不熟的同学可以先看看之前总结的两篇文章: [原]Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令 [原]Learning Spark (Python版) 学习笔记(二)----键值对.数据读取与保存.共享特性 #####…
原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证,然后将书上的内容和自己的总结一起分享出来,这样看书的效果就会有大大提升. 最近在看一本讲JAVA设计模式的书,本人是C#开发,并想将书上的内容转换成C#的,然后写到博客上,以后查阅也方便,大家也可以参考参考. 本篇是开篇,也是文章目录. 01.策略模式-上篇 02.单件模式 03.命令模式 参考文…
C++Primer第5版学习笔记(二) 第三章的重难点内容         这篇笔记记录了我在学习C++常用基本语法的学习过程,基本只记录一些重难点,对概念的描述不是一开始就详尽和准确的,而是层层深入的.第三章主要讲这么五个概念:       1.using声明,我知道挺多同学写代码练手都要在源文件前几句直接加using namespace std;然而using语句并不是什么情况都这么使用的,稍后我们将会看到详细的用法.  2.标准库类型string,和C味的字符数组有区别的string,到底…
javascript权威指南第6版学习笔记 javascript数组.函数是特殊对象 看一点少一点. 3.1.4 hello.js内容是 var x=.3-.2;var y=.2-.1 console.log(x==y);console.log(x==.1);console.log(y==.1); 控制台输出结果:…
<Linux内核分析>第二周学习笔记 操作系统是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1. 前言 计算机是如何工作的? 三个法宝: 存储程序计算机:所有计算机基础性的逻辑框架. 堆栈:高级语言的起点,函数调用需要堆栈机制. 中断机制:多道系统的基础,是计算机效率提升的关键. 2. 函数调用堆栈 2.1 堆栈 堆栈是C语言程序运行时必须的一个记录调用…
linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.函数调用堆栈 1.1小结 三把宝剑: 存储程序计算机 函数调用堆栈 中断机制 1.2堆栈 堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间 函数条用框架 传递参数 保存返回地址 提供局部变量空间 C代码中嵌入汇编代码的写法 0. 内嵌汇编语法 as…
STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源.各通道的A/D转换可以单次.连续.扫描或间断模式执行. 1.通道选择 stm32把ADC转换分成2个通道组:规则通道组相当于正常运行的程序:注入通道组相当于中断.程序初始化阶段设置好不同的转换组,系统运行中不用变更循环转换的配置,从而达到任务互不干扰和快速切换. 有16个多路通道.可以把转换组织成两组:规则组和注入组.在任意多个通道上以任意顺序进行的一系列转换构成成组转换.例如,可…
STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启TIM2时钟,配置PA0输入 APB1外设复位寄存器 (RCC_APB1RSTR) APB2外设时钟使能寄存器(RCC_APB2ENR) 置1开启.清0关闭. Eg:RCC->APB1ENR|=1<<0; //使能TIM2时钟  RCC->APB2ENR|=1<<2;  …
STM32除TIM6和TIM7外都可以产生PWM输出.高级定时器TIM1和TIM8可以同时产生7路PWM,通用定时器可以产生4路PWM输出. 1.TIM1 CH1输出PWM配置步骤 ①开启TIM1时钟,配置PA8为复用输出 APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设复位寄存器 (RCC_APB1RSTR) 置1开启.清0关闭. Eg:RCC->APB2ENR|=1<<11; //使能TIM1时钟 配置I/O口: 参见stm32寄存器版学习笔记01 GPIO口的配置…
stm32的每个I/O口都可以作为中断输入,要把I/O口设置为外部中断输入,必须将I/O口设置为上拉/下拉输入 或 浮空输入(但浮空的时候外部一定要带上拉或下拉电阻,否则可能导致 中断不停的触发),干扰大时,上拉/下拉输入模式也建议使用外部上拉/下拉电阻. 1.设置外部中断 的步骤 ①初始化I/O口为输入 参见 stm32寄存器版学习笔记01 GPIO口的配置. ②开启I/O口复用时钟, 设置I/O口与中断线的映射关系 这一步在函数void Ex_NVIC_Config(u8 GPIOx,u8…