有幸在Arukas免费开放的时候注册到一个账号,同时也让自己对docker有了第一次认识。作为做了几年的虚拟化工作者,还是第一次去了解容器的概念,让我想起微软的应用虚拟化。先来看下虚拟机与容器的区别吧:
上图:Docker 下图:虚拟机
虚拟机的客户机都是内核隔离、容器共享一个系统内核,当然两者都有优缺点:
容器比较轻量,能够在几秒启动一个准备好的容器,方便移值,虚拟机相比起来则比较笨重,它们每台虚拟机都相互独立互不干扰,(当然容器也是容器之间进行隔离,只不过共用一个内核)下面我们通过一个在Arukas简单的例子,来了解一下Docker
首先登陆Arukas的官网:https://arukas.io/
Arukas服务器在日本,网友们都叫它日本樱花,主要在Arukas搭建SS进行科学上网,目前官网已经对新用户注册进行了限制,不过大家可以去尝试下。
据我所知Arukas的docker好像还不支持客户端登陆,只提供一个API KEY,应该是用在Python\node.js等应用中,不能通过Linux的Docker客户端进行登陆,我们登陆到Arukas的控制台:(官网说是支持HUB.Docker.com的images)
创建一个新的应用,目前Arukas最多支持10个应用
APP NAME:输入自己的应用名称,可以随便填写,方便自己识别
Image:就是Docker 的image,可以到hub.docker.com找自己需要的image
例如我们部署一个nginx:那我们直接输入nginx:tags <nginx:latest&nginx:1.10>TAGS在HUB上都有记录
选择容器的Instances,实例数量,通常是1个,你也可以选择5-10个,用不到那么多,1个就好
内存可以选择最高512M,你创建10个应用,那么10个应用都可以是512M
Endpoint:有点像一个在某个网络上进行网络通讯的接口,你可以不填,系统会默认生成一个*.arukascloud.io的https网址,info说:
Endpoint only supports the first port. It doesn’t listen on multiple ports.
只支持第一个端口,不支持多端口
Port:很重要的一项,你需要指定容器要映射到公网IP的端口号,Arukas不支持公网IP的自定义端口号,也就是说它的公网端口是随机的,例如:部署nginx一定会用到80端口或8080端口,那么就会产生一个内网IP和公网IP,不然用户怎么访问呢。内网IP就是容器的内部IP,公网IP就是你的计算机访问Arukas服务器的地址,这里的Port,要填你要映射出来的端口,可以理解为内网端口80&8080(支持TCP&UDP)
ENV:环境变量,一般要看你部署image的时候是否会需要环境变量,就是docker -d -p 80 -e 中的-e
最后,我们创建看看
选择启动
稍等片刻,直到这个应用部署成功,如果失败则以红色显示,反之绿色
点进去看一下系统生成的信息
从上图中我们可以看到系统为我们生成了2条关键的信息,分别是
Endpoint:https://berserk-hugle-2046.arukascloud.ioPort:http://seaof-153-125-234-175.jp-tokyo-10.arukascloud.io:31291 (80/tcp)