首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共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

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

Lakehouse 时代已到,如何基于 StarRocks 搭建大数据底座

StarRocks 是一个开源的 Lakehouse 引擎, 采用 Apache License v2.0 许可证,商业使用友好,GitHub Star 数已经超过了9.8 K。 在存算分离架构、物化视图查询加速和湖仓分析等方面,StarRocks 具备高效、稳定的性能,支持主流开放数据湖表格式,包括 Apache Hive、Apache lceberg、Apache Hudi、 Delta Lake 和Apache Paimon,提供高效的查询与写入能力。 腾讯音乐数据基建团队曾 分享过,在将原有的上千节点 ClickHouse 和 Druid 集群业务迁移至 StarRocks 存算分离后,效率不变的情况下,成本下降了 50%。 4月18日晚,镜舟科技高级技术专家 单菁茹将做客开源中国直播栏目《技术领航》,聊一聊 StarRocks 的成长之路,解析 StarRocks 技术架构以及核心功能。 单菁茹是开源社区 StarRocks 的重要贡献者,主要负责指导 StarRocks 的落地实践与生态工具的开发。本次直播,她还将 基于管理工具 StarRocks Manager,演示集群状态监控、SQL执行与优化、任务管理、资源管理和版本升级与维护等。 微信扫码,预约直播 本次直播得到了诸多社区或组织的大力支持,在此特别表示感谢: Gitee Gitee(码云)是开源中国于 2013 年推出的基于 Git 的代码托管平台、企业级研发效能平台,提供中国本土化的代码托管服务。 目前,Gitee 已经有超过 1350 万名开发者,累计托管超过 3600 万个代码仓库,是中国境内规模最大的代码托管平台。同时,旗下企业级 DevOps 研发效能管理平台 Gitee 企业版已服务超过 36 万家企业。 网址:https://gitee.com/ 镜舟科技 北京镜舟科技有限公司是一家专注开源商业化的中国公司,由 StarRocks 项目核心成员于2022年创立。基于开源项目 StarRocks ,镜舟打造了符合国家标准并适配国内外生态体系的企业级分析型(OLAP)数据库,在行业适配度、场景成熟度、产品稳定性等方面有着卓越表现。作为 StarRocks 社区中国最大贡献者,镜舟大力参与社区推广工作,未来也将持续与各大头部厂商一起创造世界顶级的开源项目,为社区发展贡献力量。 官网: https://www.mirrorship.cn/zh-CN/index 《技术领航》是开源中国 OSCHINA 推出的一档直播栏目,旨在为开源软件、商业产品、前沿技术、知名品牌活动等各类项目提供一个展示平台,每周五晚上开播。栏目邀请项目的创始人、核心团队成员或资深用户作为嘉宾,通过路演式直播分享项目的亮点和经验,有助于提高项目的知名度,吸引更多的用户和开发者关注。 如果你手上也有好的项目,想要跟同行交流分享,欢迎联系我,栏目随时开放~

资源下载

更多资源
优质分享App

优质分享App

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

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应用均可从中受益。

用户登录
用户注册