阿里云docker防止挖矿
A. 怎样在阿里云上安装docker
怎样在阿里云上安装docker
更多1
Linux
因为debian 7安装docker的手续比较麻烦,所以我把阿里云的系统换成了ubuntu 14.04,然后参考:https://docs.docker.com/installation/ubuntulinux/
还算比较方便:apt-get update && apt-get install docker.io,然后再改两个配置就完事了。
不过,在你运行docker run -i -t ubuntu /bin/bash的时候,会报错,说是docker -d好象没有运行,这不科学 啊,刚刚不是装好的吗?
于是ps aux|grep docker,果然没有进程,于是直接输入:docker -d,然后就发现报错了:
2014/08/18 12:05:42 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
老规矩,内事不决问度娘,外事不决问谷歌,结果居然看到有人回复 :
当时这个心就碎了,心想这不科学啊,于是再google,就真的发现了:
OK,那就试试吧:
sudo brctl addbr docker0 # create your bridge
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
sudo ip link set dev docker0 up # bring it up - not really sure if this is necessary or is it done automatically
sudo ifconfig docker0 10.0.0.4 # give it an IP
当然要运行brctl还是要装一个bridge-utils工具的,当然这个ubuntu会提醒你,一步步的做完后,docker 果然可以启动了。这时候再运行一下,service docker.io start,然后ps aux|grep docker,进程还活着。
于是输入:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
2014/08/18 12:16:44 Get https://index.docker.io/v1/repositories/ubuntu/images: dial tcp: lookup index.docker.io on 10.143.22.118:53: no answer from server
咦。不能上网。其实就是上面的代码的问题,因为默认aliyun的eth0是内网IP,所以上述的
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
这里应该用eth1
重新执行一下。然后再次运行:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
c5881f11ded9: Download complete
。。。。。。。
整个就完成了
B. 阿里云安装docker故障,DOCKER无法启动,这是为什么
应该是docker没装好吧?(在阿里云上是不会犯关于虚拟化的问题的)
另外,你用的是linux还是windows虚拟机?怎么安装的?docker pull的镜像完整不?启动是docker程序无法启动还是images create 的容器无法启动?
那么windows下面无法启动的话,你安装hype-v了吗?如果安装了docker提示什么错误?
那么如果是linux下面无法启动的话它提示什么?
你没说清楚啊。
C. 阿里云 上的docker 怎么用
包括三部分:
从Docker Hub或者其他镜像源安装Docker镜像
从Image file安装Docker镜像
从Docker file制作Docker镜像
查找Docker镜像
安装Docker镜像的第一步,是查找你需要的Docker镜像列表,键入:
docker search mysql
如果出现权限问题,请在最前面加入sudo:
sudo docker search mysql
查询返回一个列表:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2981 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 194 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 46 [OK]
sameersbn/mysql 36 [OK]
jdeathe/centos-ssh-mysql CentOS-6 6.8 x86_64 / MySQL. 8 [OK]
appcontainers/mysql Centos/Debian Based Customizable MySQL Con... 8 [OK]
marvambass/mysql MySQL Server based on Ubuntu 14.04 6 [OK]
drupaldocker/mysql MySQL for Drupal 2 [OK]
azukiapp/mysql Docker image to run MySQL by Azuki - http:... 2 [OK]
yfix/mysql Yfix docker built mysql 2 [OK]
alterway/mysql Docker Mysql 2 [OK]
frodenas/mysql A Docker Image for MySQL 2 [OK]
andreluiznsilva/mysql A extension of the offical MySQL container... 1 [OK]
phpmentors/mysql MySQL server image 1 [OK]
sin30/mysql MySQL images with my own config files. 1 [OK]
tozd/mysql MySQL (MariaDB fork) Docker image. 0 [OK]
nanobox/mysql MySQL service for nanobox.io 0 [OK]
...
列表包含了所有的MySQL镜像,其中:
NAME字段是镜像的名字
DESCRIPTION字段是对镜像的简单描述
STARS数量反映了用户的喜爱程度
OFFICIAL字段如果是OK,代表了这个镜像是官方提供的,可以信任
AUTOMATED字段如果是OK,代表了这个镜像是基于公开的脚本制作的,可以信任
如果OFFICIAL和AUTOMATED都不为OK,那使用的时候需要额外小心了,这类镜像中可能包含恶意软件,不过对于个人非敏感数据还是可以使用的。
此外,你也可以通过访问https://hub.docker.com/,通过Web来搜索你需要的镜像。
下载Docker镜像
当你找到合适的镜像后,可以通过:
docker pull [REGISTRYHOST/][USERNAME/]NAME[:TAG]
来进行下载,方括号中的是可选项:
docker pull mysql
导出Docker镜像
你可以将本地镜像导出为文件,如我们刚才下载的MySQL镜像:
docker save -o mysql.tar mysql
将我们的MySQL镜像导出为mysql.tar.
导入Docker镜像
有导出就有导入,导入的命令是:
docker load -i mysql.tar
将我们的MySQL镜像导入。
删除Docker镜像
为了节约磁盘空间,有时候我们需要删除不需要的Docker镜像文件,首先查看我们拥有的Docker镜像文件:
docker images
然后删除不需要的镜像,释放磁盘空间:
docker rmi [REGISTRYHOST/][USERNAME/]NAME[:TAG]
通过Docker File编译Docker镜像
制作Docker File我们放在后面再讲,假设你有一个名为Dockerfile的文件,编译制作Docker的命令是:
docker build -f Dockerfile .
成功后将在当前路径下制作出一个Docker镜像文件。
Summary
我们简单的介绍了Docker镜像的使用方法。通过此实战,你应该对Docker镜像有了更深入的体会。
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索docker , 镜像 , docker使用镜像 , 删除镜像 查找镜像 docker 删除镜像、docker 镜像、docker 国内镜像仓库、docker hub 国内镜像、docker 镜像仓库,以便于您获取更多的相关知识。
D. Docker崛起,如何对待这个“坏孩子”
不久前,Docker官方公布的数据显示,全球已有46万个应用Docker 化,并且实现两年增长3000%。以Docker为代表的容器技术在发展速度上,业已超过了曾经的虚拟化技术和云计算技术。
或许也正因如此,2015年被称为Docker野蛮扩张的一年,先后通过了OCI和CNCF 两大标准组织的确立,更是在中国引发了如火如荼的Docker 创业之风,出现了阿里百川、网易蜂巢等大批基于Docker的容器云。诞生于2013年的Docker技术,让那些成熟的云计算服务突然显得老迈、迟缓且落伍,而国内外的云计算巨头们又是如何对待这个坏孩子呢?
Docker崛起,或受益于羸弱的传统PaaS服务
有关“PaaS已死”的说法由来已久,既不如IaaS那样灵活自由,又不如SaaS那样可以直接推向消费者。一个似乎可以用来佐证的事实是,DotCloud作为Docker技术的缔造者,在今年年初宣布倒闭,Docker的繁荣间接地导致dotCloud在PaaS平台上的衰败。
PaaS服务的羸弱在一定程度上受限于不成熟的框架和工具,导致有些PaaS解决方案让原来在IaaS上很容易实现的事变得更加复杂。一方面,企业应用环境多样化,单一PaaS平台很难满足企业客户的多样化需求。另一方面,PaaS没有像Openstack类似的标准,市场上的很多PaaS厂商都提供自己的私有API开发接口,并且互不兼容,导致企业在某个PaaS平台上开发的应用,很难移植到另一平台上。对很多工程师和程序员来说,他们更愿意作为PaaS的构建者,而非PaaS的使用者。企业则寄希望于PaaS来消除技术“周边环境”的不利因素,让开发者有更多的精力专注于开发。这种需求和初衷的不相符,尽管让传统 PaaS厂商在2015年依旧取得了不菲的成绩,但容器技术的热火朝天,或多或少反衬出了传统 PaaS提供商的些许落寞。
而被翻译成“码头集装箱”的Docker服务,允许开发者在Docker环境下,按一定的打包标准生产程序,生产出来的标准化程序被装进标准化的容器(Container)里。这便保证了开发环境、测试环境、生产环境的一致性。此外Docker还具有资源隔离的特点,不同来源、不同种类的容器内放着运行应用所需的完整用户环境空间,比如程序、组件、运行环境等,对某一容器的改动不会影响其他容器。而且,相比于传统的虚拟机,Docker的启动和部署非常快,具有轻量化的优势。
于是乎,Docker作为开源届的绝对“网红”,很多 PaaS 和 IaaS 厂商在2015年甚至更早开始宣布支持 Docker,包括Deis、Flynn、Tsuru、Dawn和Octohost等行业新贵,以及Cloud Foundry和OpenShift等第二代PaaS主力。
主角还是配角,愈演愈烈的云容器之争
Synergy Research最近发布的一项报告显示,2016年第一季度全球云服务市场收入达到70亿美元,但AWS、微软、IBM和谷歌依旧是市场的垄断者,AWS虏获了31%的云服务市场,微软、IBM和谷歌则分食了22%的市场份额。此外在市场增长率上,四大巨头也远超其他云服务玩家,特别是微软和谷歌的市场增幅均超过了100%。
相比于四大巨头在IaaS和PaaS服务上的跑马圈地,Docker作为新兴的服务模式,被云服务领域的追赶着和创业者视为“颠覆”云计算格局的机遇,至少在造势营销上是这样。各云计算巨头和明星玩家对容器似乎都展示出了欢迎的态度,可Docker是主角还是配角,中美的互联网玩家们却给出了不同的答案。
从美国的云计算圈来看,不少云计算创业者成了Docker的忠实拥趸,这在前面已经有所举例,但云计算巨头们却有着各自的衡量。
2015年,Google 和 RedHat 联盟以 Kubernetes 1.0 为阵地宣告了大规模容器编排与管理领域的领主地位。不久后,微软、IBM、VMware、Docker、CoreOS以及SaltStack等多家公司纷纷加入了Kubernetes社区,业已成为当下最受欢迎的容器集群管理系统。
自从2014年6月份起,微软已经允许用户在Azure的Linux上运行Docker应用程序。不久前Docker官方对外宣布面向微软Azure、AWS、Windows 10和 Mac全面推出新的Docker测试版。近日更是传出了微软试图40亿美金收购Docker的消息。
事实上,亚马逊、思科、Vmware等也都宣布支持Docker。不过在这些云计算巨头的眼中,Docker不过是一个容器引擎,当CoreOS如谷歌分道扬镳推出名为Rocket的容器引擎后,谷歌照旧向其抛出了橄榄枝。未来或许还会出现其他Docker的竞争对手或取代者,而Docker们不过是云计算巨头们维持市场地位的行业工具,远未成为影响云计算现有格局的关键力量,至少在市场份额上,容器在未来很长一段时间内还不能和IaaS服务相提并论。
相比之下,以 Docker 为主的容器技术在国内的发展势头要更为凶猛,不仅吸引了阿里、腾讯、网易、新浪等互联网巨头,一些在亚马逊、谷歌、Vmware有过工作经验的工程师也纷纷投入的容器云创业的大潮中来。综合来看,国内云计算厂商在容器云上的布局可以细分为三种形态:
其一,阿里、华为等IaaS领域的行业先驱。以Docker为代表的容器服务在2015年势如野火,被它吸引了不只是创业者,还有在IaaS领域的诸多云计算厂商,阿里和华为就是两个典型的例子。先是阿里百川在TAE的基础上使用了Docker技术,随后阿里云也推出了基于Docker的容器服务。华为则在去年12月推出了基于Kubernetes和Docker技术打造的CCE容器云。不过,这类厂商的主要业务仍集中在IaaS领域,也多把容器云归为新型PaaS服务。对于瞬息万变的云服务市场,即便是行业巨头也不愿错过任何一个机会。
其二,网易、新浪等踏入云服务市场的第二梯队。对于网易、新浪等具有十多年研发运营经验的老牌互联网企业,在云计算的萌芽期便成为云服务的使用者和推动者,但在近两年才完成了私有云到公有云的过渡,而容器云就是其所青睐的云服务之一。以网易蜂巢为例,这一基于Kubernetes容器集群管理技术打造的容器云,在2015年上线后便成受到市场追捧。原因似乎不难理解,这些企业本身就是容器云的重度使用者,并拥有自研IaaS等优势资源做支撑。而从另一方面来看,相比于竞争已经十分激烈的IaaS,容器云被这类企业进军云计算基础设施服务的一条绿色通道。
其三、时速云、灵雀云等Docker红利下的创业者。用“Docker红利下的创业者”来形容这些厂商似乎并不为过,正如前面所说不少有国外云计算公司从业背景的工程师们看到Docker的崛起后纷纷回国创业,并一度成为国内容器云行业的主流。尽管容器服务的用户规模和客单价远不及IaaS,但在针对当前IT系统的资源管理复杂、运维成本高、产品迭代效率差、微服务架构实施困难等问题上似乎是不错的解决方案。或许也正因如此,资本依旧对这些容器云领域的创业者纷纷报以厚爱。
此外,不少厂商以CaaS(容器即服务而非通讯即服务)来形容容器云,并被誉为下一代云计算。可就目前来看,Docker的处境似乎并不十分乐观,至少在国内面临着如何落地的考验。
下一代云计算?Docker该如何落地
前两年火爆的是Openstack,近两年受宠的当属Docker,融资、并购、发布会、行业峰会,从云服务厂商到媒体无不对Docker表现出了近似膨胀的热情。然而,在高歌Docker和容器云一系列优点的同时,却鲜有人谈及落地的问题。
一般来说,很多企业尤其是中小企业,所需要的不是如何将Docker或其他容器技术移植到公有云或私有云上,而是看到了容器云的微服务化、运维流程的标准化、持续集成部署的自动化等特点,希望通过容器云服务来降低产品研发成本,并最大程度的降低系统风险等。事实上,这类企业也正是网易蜂巢、时速云等容器云产品的目标用户。没有人知道这个市场到底有多大,围绕Docker开展创新服务的公司却开始“你方唱罢我登场”。这便注定容器云市场在未来将迎来一场恶战,目前似乎已经有所端倪。
就目前而言,不管是阿里、腾讯等云计算巨头还是诸多的创业者,在容器云的技术方面并没有拉开太大的距离,无非是稳定性和易用性方面的些许差别。由此便导致,当前容器云市场呈现出拼价格、拼渠道以及拼运营的姿态。可以预见,在不远的将来,容器云市场势必会迎来一场淘汰赛,而能够解决Docker落地的云服务厂商才会是最后的赢家。
不管怎样,Docker 已经成为云服务市场一枚极具意义的战略性棋子,无论是在服务层面还是系统层面,云计算的未来似乎已经被Docker这个坏孩子占据了一席之地。
E. 阿里云服务器部署docker 有必要么
可以玩玩,还是蛮强大的,结合一些集成工具一起使用,可以实现应用自动化部署等等功能。
F. 如何使用阿里云 docker 镜像仓库使用
查看前系统及docker安装情况
wzb@wzb-pc:~$ sudo docker info
使用配置文件 /etc/docker/daemon.json(没新建该文件)
没 /etc/docker文件夹 请执行
wzb@wzb-pc:~$ sudo mkdir -p /etc/docker
写入镜像加速址(镜像加速址 阿云容器Hub服务控制台 加速器 查看)
sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["自镜像加速址"]}EOF
3
重启daemon及docker
wzb@wzb-pc:~$ sudo systemctl daemon-reload
wzb@wzb-pc:~$ sudo systemctl restart docker
4
测试拉传镜像
例拉简单busybox镜像
busyboxLinux系统提供该系统主要功能包含些与GNU相关功能选项
wzb@wzb-pc:/etc/docker$ sudo docker pull busybox
G. 阿里云,cloud的docker是啥os/docker 注意事项
Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多IT厂商的参与,其中更是包括Google、Microsoft、VMware等业界行业领导者。同时,Docker在开发者社区也是一石激起千层浪,许多如我之码农纷纷开始关注、学习和使用Docker,许多企业,尤其是互联网企业,也在不断加大对Docker的投入,大有掀起一场容器革命之势。
Docker镜像命名解析
镜像是Docker最核心的技术之一,也是应用发布的标准格式。无论你是用docker pull image,或者是在Dockerfile里面写FROM image,从Docker官方Registry下载镜像应该是Docker操作里面最频繁的动作之一了。那么在我们执行docker pull image时背后到底发生了什么呢?在回答这个问题前,我们需要先了解下docker镜像是如何命名的,这也是Docker里面比较容易令人混淆的一块概念:Registry,Repository, Tag and Image。
下面是在本地机器运行docker images的输出结果:
我们可以发现我们常说的“ubuntu”镜像其实不是一个镜像名称,而是代表了一个名为ubuntu的Repository,同时在这个Repository下面有一系列打了tag的Image,Image的标记是一个GUID,为了方便也可以通过Repository:tag来引用。
那么Registry又是什么呢?Registry存储镜像数据,并且提供拉取和上传镜像的功能。Registry中镜像是通过Repository来组织的,而每个Repository又包含了若干个Image。
Registry包含一个或多个Repository
Repository包含一个或多个Image
Image用GUID表示,有一个或多个Tag与之关联
那么在哪里指定Registry呢?让我们再拉取一个更完整命名的镜像吧:
上面我试图去拉取一个ubuntu镜像,并且指定了Registry为我本机搭建的私有Registry。下面是Docker CLI中pull命令的代码片段 (docker/api/client/command.go中的CmdPull函数)
在运行时,上面的taglessRemote变量会被传入localhost:5000/ubuntu。上面代码试图从taglessRemote变量中解析出Registry的地址,在我们的例子中,它是localhost:5000。
那我们回过头再来看看下面这个耳熟能详的pull命令背后的故事吧:
我们跟着上面的示例代码,进一步进入解析函数ResolveRepositoryName的定义代码片段(docker/registry/registry.go)
我们发现,Docker CLI会判断传入的taglessRemote参数的第一部分中是否包含’.’或者':’,如果存在则认为第一部分是Registry地址,否则会使用Docker官方默认的Registry(即index.docker.io其实这里是一个Index Server,和Registry的区别留在后面再去深究吧),即上面代码中高亮的部分。背后的故事还没有结束,如果你向DockerHub上传过镜像,应该记得你上传的镜像名称格式为user-name/repository:tag,这样用户Bob和用户Alice可以有相同名称的Repository,通过用户名前缀作为命名空间隔离,比如Bob/ubuntu和Alice/ubuntu。官方镜像是通过用户名library来区分的,具体代码片段如下(docker/api/client/command.go中的CmdPull函数)
我们回过头再去看Docker命令行中解析Tag的逻辑吧(docker/api/client/command.go中的CmdPull函数):
代码会试着在用户输入的Image名称中找’ : ‘后面的tag,如果不存在,会使用默认的‘DEFAULTTAG’,即‘latest’。
也就是说在我们的例子里面,命令会被解析为下面这样(注意,下面的命令不能直接运行,因为Docker CLI不允许明确指定官方Registry地址)
配置Registry Mirror
Docker之所以这么吸引人,除了它的新颖的技术外,围绕官方Registry(Docker Hub)的生态圈也是相当吸引人眼球的地方。在Docker Hub上你可以很轻松下载到大量已经容器化好的应用镜像,即拉即用。这些镜像中,有些是Docker官方维护的,更多的是众多开发者自发上传分享的。而且你还可以在Docker Hub中绑定你的代码托管系统(目前支持Github和Bitbucket)配置自动生成镜像功能,这样Docker Hub会在你代码更新时自动生成对应的Docker镜像,是不是很方便?
不幸的是Docker Hub并没有在国内放服务器或者用国内的CDN,下载个镜像20分钟最起码,我等码农可耗不起这么长时间,老板正站在身后催着我们搬运代码呢。为了克服跨洋网络延迟,一般有两个解决方案:一是使用私有Registry,另外是使用Registry Mirror,我们下面一一展开聊聊.
方案一就是搭建或者使用现有的私有Registry,通过定期和Docker Hub同步热门的镜像,私有Registry上保存了一些镜像的副本,然后大家可以通过docker pull private-registry.com/user-name/ubuntu:latest,从这个私有Registry上拉取镜像。因为这个方案需要定期同步Docker Hub镜像,因此它比较适合于使用的镜像相对稳定,或者都是私有镜像的场景。而且用户需要显式的映射官方镜像名称到私有镜像名称,私有Registry更多被大家应用在企业内部场景。私有Registry部署也很方便,可以直接在Docker Hub上下载Registry镜像,即拉即用,具体部署可以参考官方文档。
方案二是使用Registry Mirror,它的原理类似于缓存,如果镜像在Mirror中命中则直接返回给客户端,否则从存放镜像的Registry上拉取并自动缓存在Mirror中。最酷的是,是否使用Mirror对Docker使用者来讲是透明的,也就是说在配置Mirror以后,大家可以仍然输入docker pull ubuntu来拉取Docker Hub镜像,除了速度变快了,和以前没有任何区别。
了以更便捷的方式对接Docker Hub生态圈,使用Registry Mirror自然成为我的首选。接下来我就和大家一起看看Docker使用Mirror来拉取镜像的过程。下面的例子,我使用的是由DaoCloud提供的Registry Mirror服务,在申请开通Mirror服务后你会得到一个Mirror地址,然后我们要做的就是把这个地址配置在Docker Server启动脚本中,重启Docker服务后Mirror配置就生效了(如何获得Mirror服务可以参考本篇文章的附录)
Ubuntu下配置Docker Registry Mirror的命令如下:
sudo echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=http://your-id.m.cloud.io -d\”” >> /etc/default/docker
sudo service docker restart
如果你是用的Boot2Docker,配置命令为:
# 进入Boot2Docker Start Shell,并执行
sudo su
echo “EXTRA_ARGS=\”–registry-mirror=http://your-id.m.cloud.io\”” >> /var/lib/boot2docker/profile
exit
# 重启Boot2Docker
配置好Registry Mirror后,就可以拉取Docker镜像了,经我测试,使用DaoCloud的Mirror后,拉取常见镜像的速度可以达到1.5M左右,具体速度在你的网络环境可能会略有不同。
我们来看看配置了Registry Mirror后,Docker拉取镜像的过程吧。首先是CLI拉取镜像命令代码片段(docker/api/client/command.go中的CmdPull函数)
首先,Docker CLI会试图获得授权,在我们的例子中会向https://index.docker.io/v1请求认证,认证完成后,认证服务器会返回一个对应的Token。注意,这里用户认证与配置的Registry Mirror完全无关,这样我们就不用担心使用Mirror的安全问题了。接着Docker CLI会调用Docker Server(即Docker daemon程序)的创建镜像命令,Docker Server随之会执行具体的拉取镜像动作,代码片段如下(docker/graph/pull.go的pullRepository函数)
从代码中可以发现,如果配置了Registry Mirror,Docker Server会首先从Mirror中拉取镜像,如果Mirror拉取失败会退而求其次从镜像中指定的Registry拉取。大家又可以松口气了,就算配置的Registry Mirror失效,也不会影响用户拉取镜像,只不过速度就。。。
镜像拉下来后,就可以运行容器了
H. 阿里云服务器 能安装docker么
可以,可以在网上找找阿里云出的一键脚本,或者是上网搜索一下手动安装的相关教程。
I. 阿里云ecs和docker的区别
ecs是个可以自行管理的服务器,你可以在上面安装各种应用各种软件各种服务,而docker呢时一种虚拟化容器,专门跑专门的应用的。阿里云ecs和docker的区别