首页 文章 精选 留言 我的

精选列表

搜索[命令行界面],共10000篇文章
优秀的个人博客,低调大师

Docker集中化web界面管理平台—Shipyard部署

/关闭防火墙 并禁止自启[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# systemctl disable firewalld //安装Docker[root@localhost ~]# yum install docker //修改docker配置文件,添加下面一行,进行docker加速设置[root@localhost ~]# vi /etc/sysconfig/dockerADD_REGISTRY='--add-registry xxx.mirror.aliyuncs.com' //启动Docker服务[root@localhost ~]# systemctl start docker //下载相关镜像(这些镜像如果不提前下载,则在下面一键安装部署时会自动下载,不过要等待一段时间. 所以最好提前下载,一键部署时就很快了)[root@localhost ~]# docker pull rethinkdb[root@localhost ~]# docker pull microbox/etcd[root@localhost ~]# docker pull shipyard/docker-proxy[root@localhost ~]# docker pull swarm[root@localhost ~]# docker pull dockerclub/shipyard //脚本文件下载 链接:https://pan.baidu.com/s/1u3Y4faASJ4O2NtU6JWAhyg 提取码:hs6c //将脚本文件 放在当前目录下 [root@localhost ~]# lsanaconda-ks.cfg shipyard-deploy //更改文件权限[root@localhost ~]# chmod 755 shipyard-deploy //一键部署[root@localhost ~]# sh shipyard-deployDeploying Shipyard -> Starting Database -> Starting Discovery -> Starting Cert Volume -> Starting Proxy -> Starting Swarm Manager -> Starting Swarm Agent -> Starting ControllerWaiting for Shipyard on 192.168.56.51:8080 Shipyard available at http://192.168.56.51:8080Username: admin Password: shipyard //部署后,可以看到相应的shipyard容器已经创建好了[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf0053bf796e0 dockerclub/shipyard:latest "/bin/controller -..." 16 minutes ago Up 16 minutes 0.0.0.0:8080->8080/tcp shipyard-controller5ddce4c32760 swarm:latest "/swarm j --addr 1..." 16 minutes ago Up 16 minutes 2375/tcp shipyard-swarm-agent8deee2bfb70c swarm:latest "/swarm m --replic..." 16 minutes ago Up 16 minutes 2375/tcp shipyard-swarm-manager72a89c385dc4 shipyard/docker-proxy:latest "/usr/local/bin/run" 16 minutes ago Up 16 minutes 0.0.0.0:2375->2375/tcp shipyard-proxy82410e4ac7ce alpine "sh" 16 minutes ago Up 16 minutes shipyard-certsb91d4eb077c4 microbox/etcd:latest "/bin/etcd -addr 1..." 16 minutes ago Up 16 minutes 0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp shipyard-discovery2f777c47cb87 rethinkdb "rethinkdb --bind all" 16 minutes ago Up 16 minutes 8080/tcp, 28015/tcp, 29015/tcp shipyard-rethinkdb //最后访问http://192.168.56.51:8080,使用admin/shipyard用户名和密码登录即可. (注意:一键部署之后,需要稍等一会儿,8080端口才能起来)

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

MongoDB Web界面 管理工具Rockmongo的安装

RockMongo是PHP5写的一个MongoDB管理工具。 通过 Rockmongo 你可以管理 MongoDB服务,数据库,集合,文档,索引等等。 它提供了非常人性化的操作。类似 phpMyAdmin(PHP开发的MySql管理工具)。 安装 PHP WEB环境 安装mongo的php扩展 a) 下载php_mongo.dll 官方下载地址:http://pecl.php.net/package/mongo 下载时看准文件版本,要和你使用php的版本相同 如果版本使用错了mongo扩展就无法启用,下载后放到php扩展文件夹下 b) 修改php.ini文件 最下面添加extension =php_mongo.dll c) 重启apache 查看Phpinfo()中mongo扩展存在,配置完成 安装 Rockmongo 下载 Rockmongo: https://github.com/iwind/rockmongo 解压至网站目录,用编辑器打开config.php,修改host, port, admins等参数 在浏览器中访问index.php,比如说:http://localhost/rockmongo/index.php 使用用户名和密码登录,默认为"admin"和"admin" 然后就可以管理 MongoDB了。

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

android用户界面-组件Widget-选项卡Tab

使用Tab的步骤: 1、在布局文件中使用FrameLayout列出Tab组件及Tab中的内容组件。 2、Activity要继承TabActivity。 3、调用TabActivity的getTabHost()方法获得TabHost对象。 4、通过TabHost创建Tab选项。 /Chapter04_UI_Tab01/src/com/amaker/test/MainActivity.java 代码 packagecom.amaker.test; importandroid.app.TabActivity; importandroid.os.Bundle; importandroid.view.LayoutInflater; importandroid.view.Window; importandroid.view.WindowManager; importandroid.widget.TabHost; importandroid.widget.Toast; importandroid.widget.TabHost.OnTabChangeListener; publicclassMainActivityextendsTabActivity{ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); /*requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);*/ TabHostth=getTabHost(); LayoutInflater.from(this).inflate(R.layout.main,th.getTabContentView(),true); th.addTab(th.newTabSpec("all").setIndicator("所有通话记录").setContent(R.id.TextView01)); th.addTab(th.newTabSpec("ok").setIndicator("已接来电").setContent(R.id.TextView02)); th.addTab(th.newTabSpec("cancel").setIndicator("未接来电").setContent(R.id.TextView03)); th.setOnTabChangedListener( newOnTabChangeListener(){ @Override publicvoidonTabChanged(StringtabId){ Toast.makeText(MainActivity.this,tabId,Toast.LENGTH_LONG).show(); } } ); } } /Chapter04_UI_Tab01/res/layout/main.xml 代码 <?xmlversion="1.0"encoding="utf-8"?> <FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/FrameLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="所有通话记录"></TextView> <TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="已接来电"></TextView> <TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="未接来电"></TextView> </FrameLayout> 通过实现一个接口TabHost.TabContentFactory的createTabContent方法来制定Tab的内容 /Chapter04_UI_Tab02/src/com/amaker/test/MainActivity.java 代码 packagecom.amaker.test; importjava.util.ArrayList; importjava.util.List; importandroid.app.TabActivity; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.ArrayAdapter; importandroid.widget.ListView; importandroid.widget.TabHost; publicclassMainActivityextendsTabActivityimplements TabHost.TabContentFactory{ /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); TabHostth=getTabHost(); th.addTab(th.newTabSpec("all").setIndicator("所有通话记录").setContent(this)); th.addTab(th.newTabSpec("ok").setIndicator("已接来电").setContent(this)); th .addTab(th.newTabSpec("cancel").setIndicator("未接来电") .setContent(this)); } publicViewcreateTabContent(Stringtag){ ListViewlv=newListView(this); List<String>list=newArrayList<String>(); list.add(tag); if(tag.equals("all")){ list.add("tom"); list.add("kite"); list.add("rose"); }elseif(tag.equals("ok")){ list.add("tom"); list.add("kite"); }else{ list.add("rose"); } ArrayAdapteradapter=newArrayAdapter(this, android.R.layout.simple_list_item_checked,list); lv.setAdapter(adapter); returnlv; } } /Chapter04_UI_Tab02/res/layout/main.xml 代码 <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> 本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1080696

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

android用户界面-组件Widget-进度条ProgressBar

android的进度条有对话框进度条、标题进度条和水平进度条 一、对话框进度条 创建步骤 1、覆盖Activity的onCreateDialog()方法,并在其中创建对话框。 2、调用Activity的showDialog()方法,显示进度条对话框。 /Chapter04_UI_ProgressBar01/src/com/amaker/test/MainActivity.java 代码 packagecom.amaker.test; importandroid.app.Activity; importandroid.app.Dialog; importandroid.app.ProgressDialog; importandroid.content.DialogInterface; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; publicclassMainActivityextendsActivity{ privateButtonmyBtn; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); myBtn=(Button)findViewById(R.id.Button01); myBtn.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ showDialog(0); } }); } @Override protectedDialogonCreateDialog(intid){ ProgressDialogdialog=newProgressDialog(this); //可以不显示标题 dialog.setTitle("测试对话框"); dialog.setIndeterminate(true); dialog.setMessage("程序正在加载请稍后!"); dialog.setCancelable(true); dialog.setButton(Dialog.BUTTON_POSITIVE,"确定", newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ dialog.cancel(); } } ); returndialog; } } 二、标题栏进度条 1、调用Activity的requestWindowFeatures()方法,获得进度条。 2、调用Activity的setProgressBarIndeterminateVisibility()方法,显示进度条对话框。 /Chapter04_UI_ProgressBar02/src/com/amaker/test/MainActivity.java 代码 packagecom.amaker.test; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.view.Window; importandroid.view.View.OnClickListener; importandroid.widget.Button; publicclassMainActivityextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ privateButtonb1,b2; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.main); b1=(Button)findViewById(R.id.Button01); b2=(Button)findViewById(R.id.Button02); b1.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ setProgressBarIndeterminateVisibility(true); } }); b2.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ setProgressBarIndeterminateVisibility(false); } }); } } 三、水平进度条 创建步骤 1、在布局文件中声明ProgressBar。 2、在Activity中获得ProgressBar实例。 3、调用ProgressBar的incrementProgressBy()方法增加和减少进度。 /Chapter04_UI_ProgressBar03/src/com/amaker/test/MainActivity.java 代码 packagecom.amaker.test; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.ProgressBar; publicclassMainActivityextendsActivity{ privateButtonb1,b2; ProgressBarprogressBar; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); b1=(Button)findViewById(R.id.Button01); b2=(Button)findViewById(R.id.Button02); progressBar=(ProgressBar)findViewById(R.id.ProgressBar01); b1.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ progressBar.incrementProgressBy(1); } }); b2.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ progressBar.incrementProgressBy(-1); } }); } } /Chapter04_UI_ProgressBar03/res/layout/main.xml 代码 <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ProgressBar android:id="@+id/ProgressBar01" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dip" android:layout_height="wrap_content" android:max="100" android:progress="50" ></ProgressBar> <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增加"></Button> <Button android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="減少"></Button> </LinearLayout> 本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1080695

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

疯狂ios讲义疯狂连载之加载界面的图片

正如前面FKBaseBoard类的代码中所看到的,当程序需要创建N个FKPiece对象时,程序会直接调用getPlayImages()函数去获取图片,该函数将会随机从项目包下取得N张图片。为了让getPlayImages()函数从项目包下随机取得N张图片,程序的实现思路可分为如下几步。 ①使用NSBundle的方法获取项目包下所有以p_开头的图片(假设约定所有的图片都以p_开头),并将这些图片名添加到一个NSMutableArray集合中。 ②从第1步得到的NSMutableArray集合中随机“抽取”N/2个图片ID。 ③将第2步得到的N/2个图片ID全部复制一份,这样就得到了N个图片ID,而且每个图片ID都可以找到与之配对的。 ④将第3步得到的N个图片ID再次“随机打乱”,并根据图片ID加载相应的UIImage对象,最后把图片ID及对应的UIImage封装成FKPieceImage后返回。下面是这些工具函数所在的C文件。程序清单:codes/13/Link/Link/sources/util/FKImageUtil.h ——————本文节选自《疯狂ios讲义(上)》 本文转自fkJava李刚51CTO博客,原文链接:http://blog.51cto.com/javaligang/1359037,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

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等操作系统。

用户登录
用户注册