首页 文章 精选 留言 我的

精选列表

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

【干货】区块链技术基础与典型应用

理安科技及其创始人简介: 理安科技由李丰、李笑来和熊立健三人联合创立。熊立健之前创建了DigInForce代理销售矿机,14年初一度成为全球最大的矿机销售商,后来组建软件团队和硬件团队,开发WiiBox软件和矿机产品。WiiBox改变了之前挖矿命令行式的操作界面,是第一个用户体验很好的挖矿软件,一度是全球用户规模最大的挖矿管理软件。 2014年下半年挖矿芯片市场竞争加剧,理安科技另一位合伙人李丰想做下一代28纳米芯片,需要大量资金,李笑来提议两个公司合并,所以三个人共同创立了现在理安科技。当时国内以及美国、以色列等已经有企业开发出28纳米的挖矿芯片,理安也做一颗28nm芯片,出于竞争定位上的差异化,做了颗集成比特币和莱特币两种算法的芯片,这也是世界上第一颗28纳米技术的双算法芯片,当时两种算力性能均位居世界第一。 14年后,因为市场滑坡

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

.Net Micro Framework移植基础(包编译通过)

借斯巴达之际,今天在QQ群1600838直播MF移植环境的准备工作,大家可随时询问移植相关问题! 如果对MF移植之前的东西有疑问,请看论坛置顶帖.Net Micro Framework导航总贴(新手必看)硬件:STM32F103ZET6/STM32F103VET6,采用这两种MCU的任何开发板、学习板、核心板…… 软件环境:系统:Win7 x86 其它系统我不肯定行不行,我两个都是Win7x86,估计WinXP也行。操作系统的影响应该不大!http://msdn.itellyou.cn/开发:Visual Studio 2010 C#/C++ 必须安装VC++,很多人可能只有C#,那是不行的。vs2008据说可以,而vs2012没试过。http://msdn.itellyou.cn/ ed2k://|file|cn_visual_studio_2010_ultimate_x86_dvd_532347.iso|2685982720|4AE6228933DDE49D9BFA4C3467C831C2|/汇编:Keil MDK 4.54 这是编译为单片机固件用的,以前用4.12,后来升级到4.54,现在不确定4.12/4.50是否还可以。据说4.54成功的几率比4.12要高http://pan.baidu.com/share/link?shareid=109154&uk=2432978109http://www.kuaipan.cn/file/id_2378544298640124.htm和谐包http://www.kuaipan.cn/file/id_2378544298617835.htm.Net Micro Framework Porting Kit 4.2(RTM QFE2) (我们称之为MFPK422)http://netmf.codeplex.com/releases/view/91594http://pan.baidu.com/share/link?shareid=109166&uk=2432978109 另外,你还需要一个高级的文本编辑器,我用的是Notepad++! 强烈建议你把MFPK安装到有固态硬盘上!!!(为此我专门买了三星64G,419块)一、安装 Keil MDK安装到C:\Keil,一会我们要用C:\Keil\ARM,如果不是这个位置,一会就自己用Win7建立软链接,或者修改编译脚本,我不负责!自己河蟹,否则一会编译出错可自己负责。(今天果真就有人犯错,怎么换MFPK和MDK都是报两百多个错误) MFPK安装到C:\PK或者E:\MF\PK都行。二、编译脚本 我把编译做成了双击可用的批处理脚本,跟别人的有些不同,大家统一按照我的做。建议大家建立自己的SVN,托管整个PK目录,还可以记录每一次修改历史! 1,PK根目录下有个setenv_MDK.cmd,如果没有,就新建一个,如果Keil安装目录不对,也是这里修改,整个文件就这两行! @echo off setenv_base.cmd MDK PORT %* C:\Keil\ARM 2,修改根目录的setenv_base.cmd大概在14行,加上一种编译器MDK,因为写MDK4.12之类的太累了,也不方便升级MDK :ERROR @echo. @echo Error: Invalid Arguments! @echo. @echo Usage: setenv_base COMPILER_TOOL_VERSION @echo where COMPILER_TOOL_VERSION is ADI5.0, GCC4.2, ADS1.2, RVDS3.0, RVDS3.1, RVDS4.0,RVDS4.1, MDK3.1, MDK3.80a, MDK4.12, MDK4.13, MDK, SHC9.2, VS9, VS10 @echo. 大概89行,增加这种MDK编译器 IF /I "%COMPILER_TOOL_VERSION%"=="ADI5.0" CALL :SET_BLACKFIN_VARS IF /I "%COMPILER_TOOL_VERSION%"=="GCC4.2" CALL :SET_GCC_VARS IF /I "%COMPILER_TOOL_VERSION%"=="MDK3.1" CALL :SET_MDK_VARS IF /I "%COMPILER_TOOL_VERSION%"=="MDK3.80a" CALL :SET_MDK_VARS IF /I "%COMPILER_TOOL_VERSION%"=="MDK4.12"CALL :SET_MDK_VARS IF /I "%COMPILER_TOOL_VERSION%"=="MDK4.13"CALL :SET_MDK_VARS IF /I "%COMPILER_TOOL_VERSION%"=="MDK" CALL :SET_MDK_VARS 3,Solutions目录里面,就存放着针对不同板子的编译方案。为了方便编译,我们直接在每个方案里面放置一个编译批处理脚本,这个脚本是通用的,拷贝到不同方案目录都可以。 这里以STM32Stamp为例,路径是:E:\MF\PK\Solutions\STM32Stamp\Release_Flash.bat ::@echo off :: 设置一些参数 set x_flavor=release set x_memory=flash set x_root=..\..\ :: 先尝试取得当前目录名,作为方案名 for %%i in ("%cd%") do set x_name=%%~ni title 编译MF方案[%x_name%][%x_flavor%][%x_memory%] pushd %x_root% call setenv_MDK.cmd popd call msbuild dotnetmf.proj /t:build /p:flavor=%x_flavor%;memory=%x_memory% :: > build.log echo 编译完成 :copybin :: 把生成的文件复制出来 set x_buildout=%x_root%BuildOutput\THUMB2\%COMPILER_TOOL_VERSION%\le\%x_memory%\%x_flavor%\%x_name%\bin if not exist %x_buildout% set x_buildout=%x_root%BuildOutput\THUMB2FP\%COMPILER_TOOL_VERSION%\le\%x_memory%\%x_flavor%\%x_name%\bin set x_bindir=%x_root%..\MFBin\%x_name% if not exist %x_bindir% md %x_bindir% :: 复制TinyBooter.bin copy %x_buildout%\*.bin %x_bindir%\ /y copy %x_buildout%\*.axf %x_bindir%\ /y del %x_buildout%\*.bin /f/q del %x_buildout%\*.axf /f/q :: 复制ER_FLASH和ER_CONFIG set x_buildout=%x_buildout%\tinyclr.bin copy %x_buildout%\*.* %x_bindir%\ /y copy %x_bindir%\ER_FLASH %x_bindir%\TinyCLR.bin /y del %x_bindir%\ER_FLASH /f/q echo 输出已复制到 %x_bindir%\ pause 编译完成后,会把输出赋值到E:\MF\MFBin目录,MFBin目录与PK并排!4,既然我们前面增加了一种MDK编译器,那么还有一个地方要修改 MFPK是采用MSBuild这个编译系统的,所以我们要修改E:\MF\PK\tools\Targets\Microsoft.Spot.system.mdk.targets,大概40行增加 <CCCondition="'$(COMPILER_TOOL_VERSION)'=='MDK'">"$(MDK_TOOL_PATH)\bin40\armcc.exe"</CC> <CPPCondition="'$(COMPILER_TOOL_VERSION)'=='MDK'">"$(MDK_TOOL_PATH)\bin40\armcc.exe"</CPP> <ASCondition="'$(COMPILER_TOOL_VERSION)'=='MDK'">"$(MDK_TOOL_PATH)\bin40\armasm.exe"</AS> <LINKCondition="'$(COMPILER_TOOL_VERSION)'=='MDK'">"$(MDK_TOOL_PATH)\bin40\armlink.exe"</LINK> <ARCondition="'$(COMPILER_TOOL_VERSION)'=='MDK'">"$(MDK_TOOL_PATH)\bin40\armar.exe"</AR> <FROMELFCondition="'$(COMPILER_TOOL_VERSION)'=='MDK'">"$(MDK_TOOL_PATH)\bin40\fromelf.exe"</FROMELF> 脚本这一步,如果没改对,就直接下载现成的吧!两个月前发布的,可能不适用于MF4.2(RTM QFE2)以上版本!.Net Micro Framework移植编译脚本三、编译 没错,到了这里,可以编译了!双击STM32Stamp里面的Release_Flash.bat,编译就开始了!输出目录是E:\MF\PK\BuildOutput 第一次编译,需要非常非常久,传统SATA超过半个小时,SSD也得二十多分钟。 后面编译就快了,SATA需要5到10分钟,SSD需要两三分钟 然后,第一次编译,基本上会有错误,这个不用管它,再来一次,多编译几次,直到没有错误或者错误个数恒定下来为止! 在这一步,可能会产生各种各样的问题,只要我们找到问题所在,就可以使用相应的招数来对付! 编译脚本详解请看:.Net Micro Framework移植编译脚本 为了尽可能的保持跟大家一样,我通过SVN把代码更新到刚安装PK的时候,2012年5月1日! 还删除了输出目录BuildOutput! 我很幸运,编译一次性成功,这标志着MF移植的第一步已经完成! 在E:\MF\MFBin\STM32Stamp目录中,我们已经看到了一个241KB的TinyCLR.bin,这就是我们所需要的MF固件! 赶紧把它刷入板子测试一下!有JLink的同学用JLink,没有的就用串口,看《开发板通用刷机教程》 接上串口,上电,开机,串口软件显示出来MF的启动信息:看到这些启动信息,标志着MF移植第二步已经完成!剩下的就是精雕细琢了!四、编译原理 了解编译原理更利于我们的移植工作。 1,MFPK整个编译体系采用MSBuild,所以Visual Studio和.Net 4.0必不可少!(上面脚本中可以看到调用msbuild命令)2,前面我们修改的Microsoft.SPOT.System.MDK.targets就是MSBuild格式,有兴趣的可以自己慢慢看; 3,每一个MF方案就是一个项目proj,它引入其它更多的项目; 4,编译一个方案时,它会根据先后顺序和引用关系先编译其它项目,这跟C#项目引用一起编译有点类似。首次编译需要编译所有项目,所以要很久,以后只需要编译修改过的项目即可,所以就快多了;5,targets指定如何去编译每一个项目生成obj文件,我们这里自然就是调用MDK来编译啦; 6,MF大部分源码由C++编写,项目文件里面除了源代码以外更重要的是头文件,也就出现了很多目录的引用,绝对能让你头晕。C++项目之间的引用是通过引用头文件来实现的,不同于C#项目只需要引用项目或者程序集即可,所以,目录结构非常重要。 7,MSBuild会为每一个项目源代码创建一个进程,这很浪费时间(频繁创建进程),但是很保险,相互间不干扰;五、纠错 出错在所难免,但是MSBuild是针对每个项目逐个编译的,尽管某个项目编译出错,它也会继续往下编译。屏幕滚得太快,我们根本就没有机会查看详细错误!然后它最后之后报告有多少个错误,大概哪里错了,几乎很难知道错误的详细信息,这就是MF移植的最大困难所在! 在上面的编译脚本中,msbuild那一行后面有个注释,那就是把msbuild的结果输出到一个日志文件build.log里面去。编译完成以后我们就可以用文本编辑器打开,搜索关键字“error”,一般那里就有详细的错误信息啦! 当然,具体的代码错误只能靠各人的功力了!我们欢迎交流各种常见的非代码错误! 常见错误: 1,没有和谐MDK。新手编译直接报几百个错误的,多数就是它; 2,VC++ 2010、MDK 4.54、MFPK 4.2(RTM QFE2)这些版本不对; 3,缺少碎片文件。比如不少项目就没有TinyCLR\scatterfile_tinyclr_mdk.xml文件; 前前后后忙活了一天,修改了三四十次,才最终完成本文! 如果喜欢.Net Micro Framework,对C#玩单片机,对物联网和工农业自动化感兴趣,MF将是一个不错的选择! MF是微软开源的项目,本系列移植教程将让你具有独立的移植能力,配合市场上40~300RMB的各种单片机学习板,可以让你走得更远! End. 我不相信神话,我只相信汗水!我不相信命运,我只相信双手! 分类: 物联网 本文转自大石头博客园博客,原文链接:http://www.cnblogs.com/nnhy/archive/2012/11/08/MFPK.html,如需转载请自行联系原作者

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

Docker基础之三: 安装docker+HelloWorld

安装Docker (提示:对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者社群里面。) Docker最核心的程序是Docker Engine,根据参数,它既可以作为后台daemon运行,也可以作为命令行工具使用。 1 Linux上安装 Docker本身是基于linux内核的,因此只要内核版本足够新,一般大于3.10左右,就可以运行。各种系统的安装方式基本相同,只是针对各系统的进程管理或者目录结构略有不同。下面是docker在linux系统下的物理逻辑结构: 2 Ubuntu上安装Docker 在所有系统中,Docker对ubuntu的支持是最好的,因此如果使用docker,我推荐都适用ubuntu系统。Ubuntu系统的可视化、安装以及内核的更新,我认为都是最好的。Docker支持的Ubuntu系统: Ubuntu Wily 15.10 Ubuntu Vivid 15.04 Ubuntu Trusty 14.04 (LTS) Ubuntu Precise 12.04 (LTS) 环境要求: 64位系统 3.10以上linux内核,具体可以根据uname –r进行查看 具体安装步骤: 更新apt源#添加gpg key sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D #增加/etc/apt/sources.list.d/docker.list #增加下面一行(选择你的具体版本) Ubuntu precise 12.04: deb https://apt.dockerproject.org/repo ubuntu-precise main Ubuntu trustry 14.04: deb https://apt.dockerproject.org/repo ubuntu-trusty main Ubuntu trustry 15.04: deb https://apt.dockerproject.org/repo ubuntu-vivid main Ubuntu trustry 15.10: deb https://apt.dockerproject.org/repo ubuntu-wily main #执行apt-get update,更新源 删除旧版本Dockerapt-get purge lxc-docker 检查Docker的apt源是否正常apt-cache policy docker-engine 不同版本的处理#Ubuntu Wily 15.10, Ubuntu Vivid 15.04, Ubuntu Trusty 14.04 (LTS) $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra内核包安装后,可以使用aufs #Ubuntu Precise 12.04(LTS) 对于这个版本的ubuntu,需要3.13内核及一些相关的包,执行下面的命令进行安装: $ sudo apt-get install linux-image-generic-lts-trusty 重启系统(如果没有安装内核包,忽略本条)reboot -nf 安装docker-engine$ sudo apt-get update $ sudo apt-get install docker-engine $ sudo service docker start $ sudo docker run hello-world #验证是否安装成功 其他配置 创建docker用户 docker daemon默认绑定在unix socket上,而不是tcp的端口。而unix socket默认是属于root用户,所以其他用户要访问该 socket需要通过sudo命令。如果想避免使用sudo,你需要将当前用户添加到docker 用户组。具体步骤: $ sudo usermod -aG docker ubuntu #退出当前用户,并登入当前用户 $ docker run hello-world#验证是否成功 #如果失败会报错: Cannot connect to the Docker daemon. Is 'docker daemon' running on this host? 调整Memory和Swap的配额 有时候你在启动时会出现: WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded. 这个提示说明,你当前的内核不支持cgroup对swap的控制。如果需要支持,会使用大约1%的系统总内存,同时会有10%左右的性能损失。具体步骤如下: #以root用户编辑/etc/default/grub #添加GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" #保存文件,并执行sudo update-grub #sync #reboot系统 同UFW一起使用 如果你使用了UFW(Uncomplicated Firewall),你需要做额外的配置,因为UFW默认会屏蔽所有的Forwarding流量,所以你需要zuo如下配置: $ sudo ufw status $ sudo vi /etc/default/ufw DEFAULT_FORWARD_POLICY="ACCEPT" $ sudo ufw reload $ sudo ufw allow 2375/tcp 配置docker的DNS Ubuntu系统默认使用127.0.0.1作为DNS服务器,具体配置文件为/etc/resolv.conf。同时,还使用dnsmasq作为DNS的缓存。当你启动容器的时候,可能会遇到下面的警告: WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4] 这个警告说明Docker容器不能使用主机的本地DNS,因此使用外部的默认DNS(8.8.8.8,8.8.4.4)这两个地址都是google的免费DNS地址。如果想自己指定 DNS,具体步骤如下: $ sudo vi /etc/default/docker DOCKER_OPTS="--dns 8.8.8.8 192.168.1.1" $ sudo restart docker #或者修改dnsmasq sudo vi /etc/NetworkManager/NetworkManager.conf #注释掉这一行 dns=dnsmasq # 重启网络 $ sudo restart network-manager # 重启docker $ sudo restart docker 让Docker随系统启动 首先需要了解你所使用的系统用的什么启动管理工具,在ubuntu 15.04及其以上版本使用的是systemd,在14.10及其以下使用的是upstart。在15.04及以上版本需要执行: $ sudo systemctl enable docker 在14.10以下,安装程序会自动将docker加入到upstart中。 升级docker$ apt-get upgrade docker-engine 卸载docker $ sudo apt-get purge docker-engine $ sudo apt-get autoremove --purge docker-engine #删除 docker的镜像及工作目录 $ rm -rf /var/lib/docker 3 CentOS上安装 docker 3.1 环境要求 CentOS 7.X及其以后版本 3.10以后版本 3.2 通过脚本安装 更新yum源: $ sudo yum update 下载脚本并安装: $ curl -sSL https://get.docker.com/ | sh 启动服务: $ sudo service docker start 验证docker: $ sudo docker run hello-world 3.3 通过yum安装 更新源: $ sudo yum update 添加源及gpg key: $ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF 安装docker-engine: $ sudo yum install docker-engine 启动docker daemon: $ sudo service docker start 验证docker: $ sudo docker run hello-world 3.4 添加docker用户组(同ubuntu) $ sudo usermod -aG docker your_username 3.5 随系统启动 $ sudo chkconfig docker on` 3.6 卸载 #检查是否安装 $ yum list installed | grep docker yum list installed | grep docker docker-engine.x86_64 1.7.1-1.el7 @/docker-engine-1.7.1-1.el7.x86_64.rpm #删除包 $ sudo yum -y remove docker-engine.x86_64 #删除docker镜像及中间文件 $ rm -rf /var/lib/docker 4 Mac上安装 背景 Mac OSX下Docker通过Docker Toolbox来进行安装,Docker Toolbox是Docker公司的一个工具包,里面包括: Docker Machine: 运行docker-machine程序 Docker Engine: Docker可执行程序 Docker Compose: docker-compose程序 Kitematic: Docker GUI 包含预定义的shell脚本,用于命令行运行环境 Oracle VM VirtualBox 由于Docker Daemon 使用了linux kernel的众多特性,我们不能在OS X本地运行Docker,所以我们必须使用docker-machine来创建并关联到一个虚拟机。这个虚拟机就是Docker的实际运行环境。下面是docker在mac或windows下的物理逻辑结构 环境要求: OS X 10.8及其以上版本 安装Toolbox 地址是https://www.docker.com/toolbox, 下载完成后根据提示进行安装。默认情况,Docker Toolbox安装在/usr/local/bin,每个用户都可以使用这些可执行程序,同时会安装带有Docker运行环境的Virtual Box。 启动Docker Machine 通过Launchpad启动程序: 执行程序后,会自动执行一段shell脚本启动虚拟机并进入一个shell终端。 Hello World, Docker 我们先来执行一个最简单的docker容器: docker run hello-world 这个命令包含三部分: docker - 所有docker命令的可执行程序,默认在/usr/local/bin/docker run - docker 的子命令,该命令首先查看本地是否有相应的镜像,如果没有将默认从Docker Hub进行拉取,之后再运行该镜像 hello-world - 镜像名称,这个镜像就是echo一句hello world 容器本身是一个简化的经过裁减的linux系统,容器可以运行一个简单命令,就像上例一样;也可以运行比较复杂的应用程序,比如:数据库,web后台等。那hello-world镜像是由谁生成的呢?是Docker官方生成的,通过docker容器,你可以在任何系统容器中运行镜像。 查找Image 你可以在docker hub主页,或者本机通过命令行进行搜索,一般我喜欢通过命令行进行搜索。例如,搜索ubuntu: root@gctest:~# docker search ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating s... 2761 [OK] ubuntu-upstart Upstart is an event-based replacement for ... 48 [OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC on po... 28 [OK] torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK] sequenceiq/hadoop-ubuntu An easy way to try Hadoop on Ubuntu 24 [OK] ubuntu-debootstrap debootstrap --variant=minbase --components... 20 [OK] tleyden5iwx/ubuntu-cuda Ubuntu 14.04 with CUDA drivers pre-installed 18 [OK] neurodebian NeuroDebian provides neuroscience research... 15 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 15 [OK] consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC sessi... 7 [OK] n3ziniuka5/ubuntu-oracle-jdk Ubuntu with Oracle JDK. Check tags for ver... 5 [OK] nuagebec/ubuntu Simple always updated Ubuntu docker images... 4 [OK] ioft/armhf-ubuntu [ABR] Ubuntu Docker images for the ARMv7(a... 4 [OK] nimmis/ubuntu This is a docker images different LTS vers... 3 [OK] maxexcloo/ubuntu Docker base image built on Ubuntu with Sup... 2 [OK] sylvainlasnier/ubuntu Ubuntu 15.04 root docker images with commo... 1 [OK] densuke/ubuntu-jp-remix Ubuntu Linuxの日本語remix風味です 1 [OK] seetheprogress/ubuntu Ubuntu image provided by seetheprogress us... 1 [OK] rallias/ubuntu Ubuntu with the needful 0 [OK] tvaughan/ubuntu https://github.com/tvaughan/docker-ubuntu 0 [OK] zoni/ubuntu 0 [OK] partlab/ubuntu Simple Ubuntu docker images. 0 [OK] teamrock/ubuntu TeamRock's Ubuntu image configured with AW... 0 [OK] konstruktoid/ubuntu Ubuntu base image 0 [OK] esycat/ubuntu Ubuntu LTS 0 [OK] 在搜索结果中,你可以看到有的是通过"/"划分的,有的没有。凡是没有"/"分级的就是Docker Hub自带的镜像;否则该镜像就出自于某个Docker Hub用户,从这里你也可以看到,Docker Hub是一个Public仓库,你的任何镜像,别人都可以搜索到。因此,一定要注意安全,不要把敏感信息放上去了。 拉取镜像 我们尝试拉取一个centos镜像: root@gctest:~# docker pull centos Using default tag: latest Pulling repository docker.io/library/centos ce20c473cd8a: Pulling dependent layers 47d44cb6f252: Pulling metadata ce20c473cd8a: Download complete 168a69b62202: Download complete 812e9d9d677f: Download complete 4234bfdd88f8: Pulling fs layer 4234bfdd88f8: Download complete Status: Downloaded newer image for centos:latest root@gctest:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ghostcloud.cn:5000/gcali 1.5 6ff13e5ab907 29 hours ago 213.9 MB centos latest ce20c473cd8a 7 weeks ago 172.3 MB 编译Image 除了拉取官方的Image,也可以自己编译Image,编译的方法和Makefile类似。 创建Dockerfileroot@gctest:~# mkdir myimage root@gctest:~# cd myimage/ root@gctest:~/myimage# vi Dockerfile root@gctest:~/myimage# cat Dockerfile FROM centos:latest CMD echo "Hello myimage" 编译Imageroot@gctest:~/myimage# docker build -t myimage . Sending build context to Docker daemon 2.048 kB Step 1 : FROM centos:latest ---> ce20c473cd8a Step 2 : CMD echo "Hello myimage" ---> Running in 1421c66fa1a6 ---> 2408b71c40c0 Removing intermediate container 1421c66fa1a6 Successfully built 2408b71c40c0 root@gctest:~/myimage# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE myimage latest 2408b71c40c0 6 seconds ago 172.3 MB ghostcloud.cn:5000/gcali 1.5 6ff13e5ab907 30 hours ago 213.9 MB centos latest ce20c473cd8a 7 weeks ago 172.3 MB 运行自己的Imageroot@gctest:~/myimage# docker run myimage Hello myimage

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册