以下整理自第四期答疑内容,由 时速云 软件工程师 丁麒伟分享。
说起做TCE的初衷,就是希望通过命令行简单的操作,就可以达到登陆web页面操作的效果。免去用户在终端和浏览器间切换等繁琐步骤,尽量简化工作。
还有一点是对于习惯使用windows和mac开发的用户来说,通过TCE可以直接写Dockerfile来构建镜像,而不需要登陆linux机器。
接下来具体介绍一下使用方法:
首先从安装说起。
从我们官网下载的TCE客户端是一个二进制的可执行文件,只需要将TCE的存放路径添加到环境变量里就可以执行TCE命令了。关于配置环境变量可以百度一下,有很多。
配置好以后打开终端,输入tce或者tce help查看tce帮助。TCE安装成功后输入tce login,然后输入时速云账号密码,即可登录。
登陆成功的图片示例:
登录后可以观察到warning,我们将你的账号密码加密后存储在了user_folder/.tcecfg文件里。windows路径为: C:/Users/user_name/.tcecfg。linux路径为: /home/user_name/.tcecfg。
我们采用了和Docker一样的加密方式。如果你不小心把这个文件删除了或者更改了,重新登录即可。
然后说一下TCE push命令。
有的时候我们开发的项目还不想放到类似github这些代码托管平台。这样的话如果想把项目部署起来可能需要在本地构建、修改tag、push到时速云官方等等,有很多步骤,想想确实比较复杂。
为了能简化这一系列操作,我们开发了TCE push命令。首先通过终端进入到我们存放Dockerfile的目录,输入tce push <project_name>:<tag>(tag 省略默认为latest)。
TCE push的示例:
TCE通过解析Dockerfile来将涉及到的文件打成zip压缩包,然后上传到我们时速云服务器,并且开始构建镜像。构建完成后,镜像自动存储到我们的registry,命名方式是yourname/project_name,镜像默认为私有。这时你可以在你账户的镜像栏下查阅到此镜像。同时也可以在持续集成栏目找到该项目。
例如,输入tce push test:v1。我们会将持续集成项目名取为test,镜像名为test:v1。
如果Dockerfile里写了一句 ADD example/ /root/myproject/example 我们会解析将example文件夹添加到zip文件进行上传。如果是ADD example/test.txt /root/myproject/example/,我们只会将test.txt文件打包,而example文件夹下其他文件不会被打包,所以你不用担心自己的私密文件会上传到我们服务器。如果要了解上传文件的具体内容,可以查看在当前目录打包后的.zip文件。
在push过程中,可以看到上传的进度条,进度条是严格按照上传百分比显示的,也会实时打印服务器上的构建日志,方便你查看构建进度。如果构建日志的输出由于网络原因中断,你可以继续输入TCE logs test查看日志确认构建进度。
接下来说一下TCE projects 命令。
当项目构建完成后,想查阅我们自己持续集成的项目,可以输入TCE projects(早先版本为TCE images,后更改,原因是后续会推出查看镜像功能)。如果想查阅github或者其他方式构建的项目,可以输入TCE projects -a,就可以看到所有的持续集成项目了。
TCE ps
TCE不仅支持查阅持续集成的项目,也可以查看我们已经启动的应用(相当于容器),随时监控我们应用的状态。
接下来要说一下TCE一个比较强大的功能,是TCE exec。
首先Docker是不推荐ssh到容器里面进行操作的,这是因为如果想ssh到容器里面,不仅要装ssh server 和一些监控软件,使得容器变得很重,而且还要管理升级ssh密码秘钥等等,非常繁琐。
仔细分析,我们希望进入到容器里面其实主要通过以下几个动作:调试程序,查看日志,重启进程,查看服务器状态,调整配置等。这些动作是可以通过类似Docker exec或类似功能来实现,所以我们推出TCE exec,既没有违背Docker初衷,又可以保证你可以方便使用。
使用方法:先通过tce ps查看应用的全名。然后输入tce exec app_name + command。例如,你想查看应用ubuntu-cz4er内部/root/example位置文件可以输入tce exec ubuntu-cz4er ls /root/example就会输出这个目录下的文件名。如果想查看进程就输入tce exec ubuntu-cz4er ps -ef。
附上一张TCE exec的图片:
可以发现这个ubuntu应用里只有两个进程。
如果是刚刚开始使用Docker,这个功能将是你使用linux系统的习惯和操作Docker容器的习惯的一个过渡。
TCE还有很多功能正在开发中,比如下个版本将推出tce run的功能,可以不用登陆web页面,通过tce run一键启动一个容器服务。
Q&A精选:
所以你们把ssh的入口没有放到主要页面,记得以前可以点一下就直接ssh?
答:一直都没有开放ssh, web端也有exec功能,不知道你说的是不是那个,两个exec原理是一样的。
以前说的数据库集群那个就没法满足吧?比如gitlab,需要gitlab,postgres,redis一起跑。
答:gitlab有一个单独的镜像可以跑的,不过应用本身对内存要求较高,可以尝试1G内存的配置。
虽然平台可以构建可以跑应用,服务可靠性咋保证?
答:服务可以部署多个实例,down一个会自动在其他节点立刻启动一个,保证后端服务节点数量。
阅读全文
收起全文