首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

android基础学习-Fragment和eclipse快捷键

使用Fragment的原因 1. Activity间的切换不流畅 2. 模块化Activity,方便做局部动画(有时为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragment来代替,只有在需要的时候才加载Fragment,提高性能,有点类似于网页的ajax) 使用方法FragmentActivity 1. 在内部的某个ViewGroup内动态添加或替代一个Fragment fg: 快捷键的使用 Ctrl+F10 显示行号 Ctrl+/ 注释 Ctrl+L 定位行 Ctrl+K Ctrl+shift+K 查找下一个 Ctrl+shift+G 查找引用 Ctrl+G 查找变量声明 Ctrl+D 删除行 ALT+/ 自动提示方法 Alt+← Alt+→ 后退历史记录和前进历史记录,在跟踪代码时非常有用 Ctrl+Shift+F 规范代码 Ctrl+Shift+T 查找工作空间(Workspace)构建路径中的可找到Java类文件,不要为找不到类而痛苦,而且可以使用“*”、“?”等通配符。 Ctrl+Shift+R 查找工作空间(Workspace)中的所有文件(包括Java文件),也可以使用通配符。 Ctrl+Shift+O 快速生成import,当从网上拷贝一段程序后,不知道如何import进所调用的类,试试【Ctrl+Shift+O】快捷键,一定会有惊喜。 Ctrl+O 显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。 Ctrl+M 最大化窗口 F3 快速定位光标位置的某个类、方法和属性。 F4 显示类的继承关系,并打开类继承视图。 先敲“/”在敲两个**,然后回车或在方法名之前按Alt+Shift+J可以添加Javadoc 注释 方法注释 重新组织Import Ctrl+Shift+O,能帮你一次去掉所有未使用的Import声明! 快速修正 Ctrl+1 引入某个类(接口)ctrl + shift + m 调试快捷键 1. 【Ctrl+Shift+B】:在当前行设置断点或取消设置的断点。 2. 【F11】:调试最后一次执行的程序。 3. 【Ctrl+F11】:运行最后一次执行的程序。 4. 【F5】:跟踪到方法中,当程序执行到某方法时,可以按【F5】键跟踪到方法中。 5. 【F6】:单步执行程序。 6. 【F7】:执行完方法,返回到调用此方法的后一条语句。 7. 【F8】:继续执行,到下一个断点或程序结束。 其他快捷键 1. 【Ctrl+F6】:切换到下一个编辑器。 2. 【Ctrl+Shift+F6】:切换到上一个编辑器。 3. 【Ctrl+F7】:切换到下一个视图。 4. 【Ctrl+Shift+F7】:切换到上一个视图。 5. 【Ctrl+F8】:切换到下一个透视图。 6. 【Ctrl+Shift+F8】:切换到上一个透视图。 分类: Android 本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/p/3592104.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

云计算---openstack基础构架以及服务方式详解

一:什么是openstack 是Rackspace和NASA共同发起的开源项目,他是一系列软件项目的组合。 这些项目是松耦合的关系,可以进行独立的安装,启动和停止,只有在必要的时候才进行通信(优点:扩展性好,安全性高,缺点:安装和配置比较复杂) 二:openstack的主要功能组件 1:简介 主要分为5个不同的层次16个不同功能模块: Presentation【表示层】:api模块,ui模块 Logic(Control)【逻辑控制层】:Orchostration【编排服务】,Scheduling【调度服务】,Policy【策略服务】,Image Registry【镜像注册服务】,Logging【日志服务】 Resource【资源管理层】:Compute【计算资源管理模块】,Volume【存储资源管理模块】,Network【网络资源管理模块】 Integration【集成层】:Billing【计量模块】,Identity【身份认证模块】 Mabagement【管理层】:Admin【管理api】,Monitoring【监测】 子项目是怎样对接起来的: Horizon-UI服务:对应User Dashboard【云下服务给运维用户使用】和Customer Portal【给云上用户使用】 Keystone-身份认证:对应Identity Nova-计算服务模块:Compute API,scheduling【调度服务】,policy【策略服务】和Compute【计算管理模块】以及部分Admin API Glance-镜像服务:Image Registry【镜像注册】,Image Registry【镜像API】 Cinder【块存储】/swift【网络对象存储】-存储服务:volume【存储资源管理模块】 Neutron-网络服务:Network【网络资源管理模块】 Heat-编排组织服务:Orchostration【编排服务】 Ceilometer-监控计量服务:Billing【计量模块】,,Monitoring【监测】 2:Horizon-UI模块 主要服务为openstack用户提供UI服务,也就是负责用户在管理控制台上的所有操作转化为后台API的调用。 用户:云管理员【负责整个云平台的运营,资源管理和分配】,普通云用户【在配额范围内,自由操作,使用资源】 云管理员界面: 3:Keystone-身份认证模块 主要负责openstack中的身份认证和权限控制, User:即用户,代表可以通过keystone进行访问的人或者程序,User通过认证信息(如密码,api Key等)进行验证 Tenant:即租户,它是各个服务中的一些可以访问的资源集合 Role:即角色,代表一组用户可以访问资源的权限 一家人【租户】租用了一百平米的房子【角色权限】那么这家人每个人【用户】的管理权限是不同的,父母比孩子的管理权限大。 Service:即服务,如Nova,Glance,Swift。服务只有在keystone上进行注册才能被分配 Endpoint:一个服务暴露出来的访问点,如果要访问一个服务,则必须要知道他的endpoint Token:访问资源的令牌,相当于钥匙 keystone到底提供了什么服务: Identity服务:验证了身份验证凭证。 Token服务:将会验证并管理用于验证请求身份的令牌 Catalog:每个服务需要在keystone上进行注册,而他们就是注册在catalog上 Policy:决定每个用户有哪些访问控制的权限 4:Nova-计算服务 openstack的核心服务。 一:主要功能包括: 1:实例生命周期管理:实例的创建,删除,启动,停止 2:计算资源的管理 3:向外提供Rest风格的API 二:3个不同的功能模块组成 nova-api:位于表示层主要接受外部的rest请求 nova-scheduler:位于逻辑控制层,主要负责居中调停,选择由哪个主机创建vm nova-compute:负责虚拟机测创建,以及资源的分配,本身并不提供任何虚拟化功能,但他却支持不同的虚拟机形式 他们之间并不是听过直接传递,而是通过消息中间件进行消息的传递 5:Glance-镜像服务 功能:提供虚拟机镜像的存储,查询和检索服务 主要为Nova组件提供服务,通过nova创建虚拟机的时候,就必须听过glance获取相应的镜像,然后根据镜像创建虚拟机。 依赖于存储服务和数据库服务:存储服务用于存储镜像本身,数据库服务主要用于存储跟镜像相关的各种元数据 glance的架构图 6:swift-存储服务 功能:对外提供高可用分布式对象存储服务 特点:无限可扩展,没有端点故障,使用swift不用担心使用的对象会丢失,因为它本身就提供高可用的功能 可以通过HTTP(S),object api及s3接口存取 swift原理图 所有的请求都通过proxy进行处理,通过proxy到合适的Account下面找相应的Containe中的某一个object进行存储服务 在这中间会针对不同的object进行复制,从而保证某一个对象的信息丢失时能够从其他地方找回来 7:cinder-块存储服务 功能:管理所以的块存储设备,为vm服务, 对象存储服务主要用于存储分布式的对象,也就意味着你可以从任何地方发起请求存储你的对象 块存储服务是本地的,它只能挂在vm上进行使用 cinder原理图: 当一个请求发来时,首先还是发送到cinder本身的api上面,api模块对发过来的请求进行处理,处理后的结果通过消息中间件进行传递,通过消息中间件mq传到cinder-scheduler上面再通过调度器, 再决定到哪里申请块存储服务,并且创建一个vm,cinder具体的存储模块的管理都是通过cinder-volume来进行生命周期管理 8:Neutron-网络服务 功能:提供云计算环境下的虚拟网络功能,为每个租户建立独立的网络环境 三种模式: Flat模式:网桥模式,所有的都需要手工配置 Flat DHCP模式:网桥模式,在网关处单独取了一个DHCP的进程,可以辅助用户进行网络配置 VLAN模式:为每个不同的租户设置了不同的虚拟子网,在这个虚拟子网中,用户可以有自己的ip 三:组件间关系和访问流程 1:组件之间的关系 2:访问控制流程

优秀的个人博客,低调大师

Linux基础之sed流编辑器详解

之前介绍了三大文本编辑器的grep,这里介绍比grep功能更强的sed流编辑器 sed是什么? sed是Stream EDitor的缩写,man中对sed的简介为 sed - stream editor for filtering and transforming text 它的主要功能是对文本的过滤与替换。 sed的工作原理 sed的工作过程:sed是一个流编辑器,所谓流编辑器是指sed每次只从文件或stdin中读入一行,将读入的行保存至模式空间然后根据指定的要求对其进行处理,并将处理后的结果输出至屏幕,接着读入下一行,整个文本的过程如流水线般被逐行处理后输出。 sed对内容的处理方式:sed不是在原文件中或原输入上直接进行处理的,它将读入的行放入缓存区,对缓存区里的内容进行处理,处理完毕后默认不会写入或覆盖源文件,而是直接输出到屏幕上。 它有两个内存缓冲区分别叫做:模式空间(pattern space)、保持空间也有称作暂存缓存区(holding space)。 一般情况下sed首先把第一行装入模式空间,进行处理后输出屏幕,然后第二行装入模式空间替换掉模式空间里原来的内容,再进行处理,依次循环,直至结束。 下面是我对sed工作流程的理解图。 1、sed每次将stdin中的内容中的一行读入模式空间 2、之后根据模式空间中的匹配条件进行匹配,符合条件进入下一阶段即普通编辑,不满足则默认至标准输出,结束 3、普通编辑之后分三个阶段,1)普通编辑之后选择性显示至STDOUT,结束;2)进入holding space进行高级编辑,编辑结束后选择性显示至模式空间,之后再次根据编辑命令重复2-3过程;3)若是出现多编辑命令则需要再返回模式空间根据编辑条件再次进行2-3步骤。 限于个人理解程度上述的理解免不了跟真实的工作流程有些出入,大家要抱着质疑的态度去看,我写的不一定都是对的,不过错的应该不至于很多。 sed语法 sed OPTIONS... <SCRIPT>[INPUTFILE...] [SCRIPT]:可以理解为地址定界加编辑命令。 常用选项: -n:不输出模式空间中的内容至屏幕;通俗点可以理解为它可以自动过滤掉模式空间中未匹配到的行,-n 要与命令编辑中的p合用(命令编辑见下文),用于显示模式空间中被匹配到的内容。 suppress automatic printing of pattern space -n的具体应用见后面的sed编辑高级命令演示 -e:多点编辑 add the script to the commands to be executed -f:每行一个编辑命令 add the contents of script-file to the commands to be executed -r:使用扩展表达式 use extended regular expressions in the script. -i:直接编辑原文件 edit files in place (makes backup if SUFFIX supplied) SCRIPT: 之前对这块很迷糊,因为info中sed显示语法有[]表示可加可不加,于是就在sed后直接加想要编辑的文本 于是就出现如下情况 [root@localhosttest]#sedsed1 sed:-e表达式#1,字符4:未终止的“s”命令 报错信息没找到终止的限制条件,所以上面的sed语法格式并不准确。 通过实验,sed可以不加[OPTION]但是[SCRIPT]则必须添加 SCRIPT分两部分:地址定界(用于限定编辑文本的范围)、编辑命令(用于对匹配到的内容进行什么样的操作或编辑),前者可少后者必不可少,如果没有编辑的命令会发生如下错误 [root@localhosttest]#sed'1'cat1 sed:-e表达式#1,字符1:遗漏命令 [root@localhosttest]#catcat1 hi,everyone nowIwillshowhowtousecat [root@localhosttest]#sed'p'cat1 hi,everyone hi,everyone nowIwillshowhowtousecat nowIwillshowhowtousecat 地址定界: 1、空地址:对全文处理。 2、单地址: #:指定行; /pattern/:被此模式所匹配到的每一行; 3、地址范围: #,#:从#开始到#结束的所有行 #,+#:从#开始向下至+#的行之间的所有行 #,/pat1/ 从#开始至匹配到第一次出现/pat1/模式的行之间的所有行 /pat1/,/pat2/:第一次匹配到/pat1/的行到第一次匹配到/pat2/的行之间的所有行 4、步进:~ 1~2:所有奇数行 2~2:所有偶数行 编辑命令:若少了编辑命令会报错,编辑命令在SCRIPT中至少出现一次。 d:删除模式空间中匹配到的内容 Delete pattern space a \text 在行后面插入文本“text”,支持使用\n实现多行插入 Append text, which has each embedded newline preceded by a back slash. i \text 在行前面插入文本“text”,支持使用\n实现多行插入 Insert text, which has each embedded newline preceded by a back slash. c\text 把匹配到的行替换为此处指定的文本“text” Replace the selected lines with text, which has each embedded new line preceded by a backslash. w filename 保存模式空间匹配的行至指定的文件中 Write the current pattern space to filename. r filename 读取指定文件内容至当前文件被模式匹配到的行文件后合并 Append text read from filename. = : 为模式匹配到的行打印行号 Print the current line number. !: 条件取反(它比较特殊,它必须跟其他编辑命令一起使用) s/regexp/replacement/ : 查找替换,其分隔符可自行指定,常用有s@@@,s### 它有一个特殊的用法s//x&/:表示将被查找的内容在其前面添加x内容 s//&x/:表示将被查找的内容在其后面添加x内容 &代表被查找的内容 [root@localhosttest]#catcat1 hi,everyone nowIwillshowhowtousecat [root@localhosttest]#sed's/e/&#/'cat1 hi,e#veryone nowIwillshowhowtouse#cat [root@localhosttest]#sed's/e/#&/'cat1 hi,#everyone nowIwillshowhowtous#ecat p :显示替换成功的行 g :全局替换 w filename : 将替换成功的结果保存至指定文件中 查找替换在sed中应用很广,下面很多例子都是以sed的替换功能实现的 p :显示当前模式空间中的内容 Print the current pattern space. 注:同时使用多个编辑命令,命令之间要用;隔开(!除外) 例子如下: [root@localhosttest]#sed'p;='cat1 hi,everyone 1 hi,everyone nowIwillshowhowtousecat 2 nowIwillshowhowtousecat 实例演示: 1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符 sed's#^[[:space:]]\+##'/etc/grub2.cfg 这里##是将前面匹配到的内容删除的意思,上面文本内容太多,就不截取了。 2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#号及#后面的所有空白字符 sed's@^#[[:space:]]\+@@'/etc/fstab [root@localhosttest]#cat/etc/fstab # #/etc/fstab #CreatedbyanacondaonTueJul1923:52:412016 # #Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk' #Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo # /dev/mapper/centos-root/xfsdefaults00 UUID=6efb8a23-bae1-427c-ab10-3caca95250b1/bootxfsdefaults00 /dev/mapper/centos-swapswapswapdefaults00 [root@localhosttest]#sed's@^#[[:space:]]\+@@'/etc/fstab # /etc/fstab CreatedbyanacondaonTueJul1923:52:412016 # Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk' Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo # /dev/mapper/centos-root/xfsdefaults00 UUID=6efb8a23-bae1-427c-ab10-3caca95250b1/bootxfsdefaults00 /dev/mapper/centos-swapswapswapdefaults00 3、在/etc/fstab每一行行首增加#号 cat/etc/fstab # #/etc/fstab #CreatedbyanacondaonTueJul1923:52:412016 # #Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk' #Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo # /dev/mapper/centos-root/xfsdefaults00 UUID=6efb8a23-bae1-427c-ab10-3caca95250b1/bootxfsdefaults00 /dev/mapper/centos-swapswapswapdefaults00 sed's@^@#&@'/etc/fstab # ## ##/etc/fstab ##CreatedbyanacondaonTueJul1923:52:412016 ## ##Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk' ##Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo ## #/dev/mapper/centos-root/xfsdefaults00 #UUID=6efb8a23-bae1-427c-ab10-3caca95250b1/bootxfsdefaults00 #/dev/mapper/centos-swapswapswapdefaults00 4、处理/etc/fstab路径,使用sed命令取出其目录名和基名 目录名: [root@localhosttest]#echo'/etc/fstab'|sed-r's#(.*/)([^/]+/?)#\1#' /etc/ 基名: [root@localhosttest]#echo'/etc/fstab'|sed-r's#(.*/)([^/]+/?)#\2#' fstab sed高级编辑命令: h:把模式空间中的内容覆盖至保持空间中; H:把模式空间中的内容追加至保持空间中; g:把保持空间中的内容覆盖至模式空间中; G:把保持空间中的内容追加至模式空间中; x:把模式空间中的内容与保持空间中的内容互换; n:覆盖读取匹配到的行的下一行至模式空间中; N:追加读取匹配到的行的下一行至模式空间中; d:删除模式空间中的行; D:删除多行模式空间中的所有行; 我知道看了上面这些高级命令一定很晕,下面通过5个例子来理一下使用sed高级编辑命令的思路 高级编辑命令实例演示: 1、 sed -n 'n;p' FILE: ''内意思:将读取到的行的下一行内容显示至模式空间 -n 'p':将模式空间中被匹配到的内容显示至屏幕 二者结合起来就是只显示偶数行。 [root@localhosttest]#cat-ncat1 1hi,everyone 2nowIwillshowhowtousecat [root@localhosttest]#sed-n'n;p'cat1 nowIwillshowhowtousecat 2、 sed '1!G;h;$!d' FILE: 这个命令按'x;x;x'中的;号分割分为三部分: 1、1!G:除读取的第一行都进行G编辑 2、h:将模式空间中的内容覆盖至保持空间中 3、$!d:删除非最后一行的内容 命令解释完了,我想大家对此应该还是一头雾水,那么就具体说明这个命令的意思: 1)读取文本信息的1行内容至模式空间,由于是第一行所以模式空间中的1行不进行G操作,之后触发h,将模式空间中的1行放入保持空间中,再之后触发$!d,由于1行不是最后一行,所以将模式空间中的1行删除; 2)读取2行内容至模式空间,由于不是1行所以触发G操作,将保持空间中1行追加到2行后面,此时模式空间中的顺序内容为2行,1行,之后h命令将模式空间中内容覆盖至保持空间中,此时保持空间内容为2行,1行,因为2行不是最后一行,所以$!d删除模式空间中内容; 3)上述过程不断重复,直到最后一行时不进行d操作,此时模式空间中的第一行就是原文件的最后一行。 因此这个命令就是原文件内容反过来的排列。 [root@localhosttest]#catcat1 hi,everyone nowIwillshowhowtousecat [root@localhosttest]#sed'1!G;h;$!d'cat1 nowIwillshowhowtousecat hi,everyone 3、 sed '$!d' FILE: 经过了上面两个命令的磨练,这个就显得简单了。 '$!d':不是最后一行则删除 意思是说模式空间中只保留文本的最后一行 [root@localhosttest]#sed'$!d'cat1 nowIwillshowhowtousecat 4、 sed '/^$/d;G' FILE '/^$/d':查找模式空间中的每行是否包含空白行,若包含则将其删除 G:将保持空间中的内容追加至模式空间中的每行后面 删除原有的所有空白行,而后为所有的非空白行后添加一个空白行; 二者结合在一起即:保证指定文件每一行后方有且只有一个空白行 [root@localhosttest]#sed'/^$/d;G'cat1 hi,everyone nowIwillshowhowtousecat 5、 sed 'n;d' FILE:显示奇数行; 这个就很简单了,大家按照sed的工作原理及编辑命令n与d很容易就能明白其所表达的意思 [root@localhosttest]#catcat1 hi,everyone nowIwillshowhowtousecat [root@localhosttest]#sed'n;d'cat1 hi,everyone 学习sed的一些感受 学习sed如果对于sed的编辑命令或高级命令很困惑,那么不妨试试照着我上面的sed工作流程图,一步一步的自己画图分析每一步所代表的意思。这既能加强自己对sed这个工具的了解也可有助于理清我们的使用思路。这是我在学习过程中觉得很有用的一种方法。 sed这个工具它的精髓在于它的替换,替换的精髓在于精确匹配,而精确匹配又离不开正则表达式的,所以如果觉得自己对于替换很不擅长的话那么可以好好练习一下正则表达式。 sed是一个实用性很强的文本编辑工具,由于能力所限,也只能对sed进行下简要的介绍,大家若对其有进一步的兴趣可以查找更专业的书籍。

优秀的个人博客,低调大师

Docker基础之九: 管理容器的数据

管理容器的数据 (对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面。) 到目前为止,我们已经介绍了Docker的一些基本概念,如:容器的操作,镜像的操作和网络的操作等。在本节,我们将介绍如何管理容器内部的数据,以及容器间的数据交互。我们将介绍如何创建: 数据卷 数据型容器 1 数据卷 数据卷是一个经过特殊设计的文件夹,提供给容器使用。数据卷并不由UnionFS管理,因此数据卷可以用作持久化和数据分享,它具有以下特性: 数据卷在容器创建的时候进行初始化。如果容器的镜像在特定的Mount点下有数据,那么已有的数据将被拷贝到指定目录。 数据卷可以在容器间共享和复用 对数据卷的改变是直接操作,不会回滚。 当你更新镜像时,数据卷的改变不会被保存。 即使容器被删除了,数据卷也不会丢失。 因此,数据卷是用来持久化数据的,跟容器本身的生命周期是无关的。Docker删除容器的时候,不会自动删除数据卷,因此当你使用数据卷的时候也要注意不要产生过多的垃圾数据。 2 添加数据卷 数据卷是通过-v来指定的,在docker create和docker run的时候可以使用多个-v参数,指定多个数据卷。 $ docker run -d -P --name web -v /webapp training/webapp python app.py 这条命令在创建容器时,会创建一个/webapp目录。注意:我们也可以通过VOLUME指令在Dockerfile中指定需要Mount的数据卷。 默认情况下,数据卷是可读可写的,但是你也可以设置为只读: $ docker run -d -P --name web -v /opt/webapp:ro training/webapp python app.py 3 定位卷的位置 $ docker inspect web ... Mounts": [ { "Name": "fac362...80535", "Source": "/var/lib/docker/volumes/fac362...80535/_data", "Destination": "/webapp", "Driver": "local", "Mode": "", "RW": true } ] ... 其中source是文件系统在主机上的地址(注意这个地址是随机分配的,因此一定要注意垃圾回收),Destination是容器中的地址。 4 Mount本地文件夹作为数据卷 通过-v我们可以给容器添加一个随机的数据卷,但是这种卷是不好控制的,因此我们可以Mount一个本地文件夹作为数据卷。 $ docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py 上面这条命令,我们将本地的/src/webapp映射到了容器的/opt/webapp目录。由于将主机的文件系统映射到了容器中,因此容器有了主机的完全访问权限,因此一定要注意安全。 5 Mount本地文件到容器中 -v参数除了可以Mount文件夹,还可以做文件的映射。比如: $ docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash 这条命令,将把主机的~/.bash_histroy映射到容器中,因此主机和容器可以共享Bash命令的历史数据。如果将~/.bash_profile映射进去,那就可以共享Bash的配置。 6 数据型容器 如果你希望在容器间共享卷,那么就可以使用数据型容器。我们可以先创建一个命名容器: $ docker create -v /dbdata --name dbdata ubuntu 接下来,我们通过--volumes-from选项来进行数据卷的复用: $ docker run -it --volumes-from dbdata --name db1 ubuntu 然后再建一个容器: $ docker run -it --volumes-from dbdata --name db2 ubuntu 之后我们就可以在db1和db2中同时对/dbdata进行操作了。 7 数据备份、还原和迁移 我们可以通过下面的命令进行数据备份: $ docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata --volumes-from将把dbdata容器的数据卷Mount到当前容器; -v 将当前目录映射到/backup目录 tar命令将/dbdata打包 接下来,我们可以对容器进行数据恢复: $ docker run -v /dbdata --name dbdata2 ubuntu /bin/bash $ docker run --volumes-from dbstore2 -v $(pwd):/backup ubuntu bash -c "cd /dbdata && tar xvf /backup/backup.tar" 通过上面的操作,我们就可以自动备份、还原和迁移数据了。 8 注意事项 由于数据卷的共享,会出现多个容器同时写一个卷的情况,因此可能会导致数据丢失,这里面一定要特别注意。可以采取一定的同步机制来保证数据的一致性。

优秀的个人博客,低调大师

Docker基础之十: 存储镜像到Docker Hub

存储镜像到Docker Hub (对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面。) 到目前为止,我们已经学习了docker的基本用法,包括拉取镜像,运行容器,编译镜像文件等等。接下来,我们将学习如何通过docker hub来简化你的操作,并提高你的工作效率。 Docker Hub是Docker的主仓库,由Docker公司进行维护。这个仓库里面包含了系统的官方镜像,同时提供简单的用户认证信息,以及其他的附属功能。默认情况下,这个仓库是免费的,但是你的所有镜像也是公开的。跟github类似,如果你需要一个私有的仓库,那么需要付费。 1 Docker Hub相关的命令 Docker 本身和仓库相关的命令包括docker search, pull, login, push。下面我们将详细介绍这些命令的用法。 1.1 用户创建和登录 如果你没有Docker Hub账号,你可以从https://hub.docker.com进行注册。注册成功后,通过下面命令进行登录: $docker login 这个命令将提示你输入用户名和密码。你的用户信息将被纪录在~/.docker/config.json文件中。 1.2 搜索镜像 你可以在Docker Hub主页上搜索镜像,不过我一般喜欢在命令行中进行搜索。 $ docker search centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS 1223 [OK] tianon/centos CentOS 5 and 6, created using rinse instea... 33 ... 上面查找出了两个镜像,第一个是centos,这个是官方镜像,没有任何前缀; tianon/centos 是tianon用户自己的centos,从这而你也可以看出,用户的镜像默认是公开的。 当你找到镜像以后,你可以执行docker pull: $ docker pull centos Using default tag: latest latest: Pulling from library/centos f1b10cd84249: Pull complete c852f6d61e65: Pull complete 7322fbe74aa5: Pull complete Digest: sha256:90305c9112250c7e3746425477f1c4ef112b03b4abe78c612e092037bfecc3b7 Status: Downloaded newer image for centos:latest 执行完毕后,centos镜像就被拉取到本地了。 1.3 下载指定版本的镜像 使用docker pull centos 等同于docker pull centos:latest。如果想下载其他版本的镜像,可以指定相应的tag,比如:docker pull centos:centos5。 2 提交镜像到Docker Hub 每个人都可以将公共的镜像提交到Docker Hub Registry,只是这个是公共的仓库。 2.1 推送镜像到Docker Hub 如果你要推送镜像到Docker Hub,你需要一个命名的Image。其格式如下: $ docker push yourname/newimage 2.2 Tag镜像 如果你的镜像是自己构建的,你需要用docker tag来进行标记后,再进行提交。如果你想提交容器,就需要先docker commit成镜像,再提交。 root@gctest:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ghostcloud.cn:5005/gcali 2.0.7 e1ccd7f9bf75 22 minutes ago 219.6 MB ubuntu vivid d893c6708298 2 weeks ago 131.3 MB ubuntu trusty e9ae3c220b23 4 weeks ago 187.9 MB ubuntu latest e9ae3c220b23 4 weeks ago 187.9 MB ubuntu precise 2a7a952931ec 4 weeks ago 136.1 MB ubuntu wily 5eb72b199374 6 weeks ago 131.4 MB root@gctest:~# docker tag ubuntu:latest shev/ubuntu:latest root@gctest:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ghostcloud.cn:5005/gcali 2.0.7 e1ccd7f9bf75 23 minutes ago 219.6 MB ubuntu vivid d893c6708298 2 weeks ago 131.3 MB shev/ubuntu latest e9ae3c220b23 4 weeks ago 187.9 MB ubuntu latest e9ae3c220b23 4 weeks ago 187.9 MB ubuntu trusty e9ae3c220b23 4 weeks ago 187.9 MB ubuntu precise 2a7a952931ec 4 weeks ago 136.1 MB ubuntu wily 5eb72b199374 6 weeks ago 131.4 MB

优秀的个人博客,低调大师

40+篇服务器操作及运维基础知识!实用基础、最佳实践、服务器安全…快来!

这是一篇纯干货分享帖,不谈个人经验,只搬运牛人的技术“经验”。ECS是阿里云非常重要的一款云服务产品,大多数人的云端之旅也是从ECS开始,以下知识将从浅入深,从图文到视频,再到最佳实践,相信看过这些内容之后,您就可以飞升成为云计算达人啦。 第一部分:实用知识贴 1.如何选择阿里云云服务器ECS操作系统2.ECS控制台使用小贴士3.使用TAG标签对云服务器ECS的分组和管理4.如何用阿里云服务器建立一个wordpress网站5.阿里云ECS如何部署并运行一个JavaWeb项目6.阿里云服务器使用全攻略7.阿里云服务器配置常见FAQ8.如何选择服务器操作系统9.深度剖析阿里云ECS最强计算实例10.ECS数据分区丢失问题处理方法、常见误区和最佳实践 第二部分:看完知识贴,还有一波视频: 1.阿里云服务器ECS产品介绍2.ECS操作入门1 -

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册