做为Linux系统管理员、或者是系统运维工程师,肯定会在工作遇到这样的需求:需要开发环境、测试环境、准生产环境等等环境,有时候建一个环境费时间不说,还容易出各种错误,好不容易建好了,可能还用不了几天。如果这时候有一个工具:能即用即建,不用则删,随时随地去创建一个系统多好!
所以,今天民工哥给大家推荐一个开源项目:Instantbox,为大家来解决这个烦恼。
什么是Instantbox?
使用Instantbox可以让你随时随地构建一个系统,开箱即用,不用登录服务器;任何地方都可以登录,只要一个浏览器就可以随时访问。几秒钟快速搭建一个开箱即用的临时Linux系统。
这是一个通过任何浏览器即时访问webshell来激活临时Linux系统的项目。
项目地址:https://github.com/instantbox/instantbox
Instantbox功能
-
为演示文稿提供干净的Linux环境
-
让学生在您的学校或您的下一次LUG见面会上体验Linux的魅力
-
在干净的环境中灵感奔跑
-
从任何设备管理服务器
-
试验一个开源项目
- 在资源限制下测试软件性能
Instantbox支持的发行版
目前支持Ubuntu,CentOS,Arch Linux,Debian,Fedora和Alpine的各种版本。
安装部署
1、安装Docker
[root@centos7 ~]# yum install docker -y
[root@centos7 ~]# systemctl start docker
关于Docker的安装之前也有旧文:Docker容器技术入门(一)有介绍过。
2、安装instantbox
[root@centos7 ~]# mkdir instantbox && cd $_
[root@centos7 instantbox]# bash <(curl -sSL https://raw.githubusercontent.com/instantbox/instantbox/master/init.sh)
Welcome to instantbox, please wait...
docker is installed
Enter your IP (optional):
192.168.1.8
Choose a port (default: 8888):
6666
You‘re all set!
Run ‘docker-compose up -d‘ then go to http://192.168.1.8:6666 on your browser.
注:安装期间需要你输入端口等相关信息,按提示输入即可。
3、启动过程
[root@CentOS instantbox]# docker-compose up -d
Unable to find image ‘docker/compose:1.25.1‘ locally
Trying to pull repository docker.io/docker/compose ...
1.25.1: Pulling from docker.io/docker/compose
050382585609: Pull complete
-----------省略一些拉取镜像的过程
Status: Downloaded newer image for docker.io/instantbox/cron:latest
Creating instantbox_server ... done
Creating instantbox_frontend ... done
Creating instantbox_cron ... done
4、浏览器访问
使用Server_ip+port的形式来访问
下面是选择你要创建的系统版本
我这里选择的是CentOS7,直接点下一步即可。
输入信息,这里的端口是你浏览器访问创建的新系统的端口,点击Create直接创建。
会有一个提示,点继续即可。
会有一段时间的等待,上图上也可以看出默认创建的系统有效期是24小时。
直接可以打开webshell界面了
其实,这个项目实际就是把docker容器的创建流程图形化、自动化了,让你只需点点鼠标就可以完成了。所以你在第一次创建某个系统版本时会需要耗费一些时间,第二次创建时就很快了,因为第一次需要去拉取镜像文件。
是不是很神奇?是不是很好用?是不是很流弊?最后如果你不想用了,直接删除,想用了直接创建,太方便了。
这里肯定有人要问了,光装个系统有个球用?也得系统里跑应用,外部能访问吧,不然这个系统有啥用?确实,所以,民工哥给大家演示一下,如何访问内部的应用?以安装httpd服务为例。
#安装httpd服务
[root@instantbox_managed_mcsak3ltv0j2pe9f /]# yum install httpd -y
#启动httpd服务并检查
[root@instantbox_managed_mcsak3ltv0j2pe9f conf]# httpd
AH00558: httpd: Could not reliably determine the server‘s fully qualified domain name, using 172.17.0.18. Set the ‘ServerName‘ directive globally to suppress this message
[root@instantbox_managed_mcsak3ltv0j2pe9f conf]# ps -ef|grep httpd
root 107 1 0 09:28 ? 00:00:00 httpd
apache 108 107 0 09:28 ? 00:00:00 httpd
apache 109 107 0 09:28 ? 00:00:00 httpd
apache 110 107 0 09:28 ? 00:00:00 httpd
apache 111 107 0 09:28 ? 00:00:00 httpd
apache 112 107 0 09:28 ? 00:00:00 httpd
root 114 7 0 09:28 pts/0 00:00:00 grep --color=auto httpd
从上创建的时候知道这个创建的系统外部端口的是32786,那么下面我们就用32786这个端口进行访问,看看能不能访问到刚刚安装并启动完成的Apache服务?
修改默认首页内容试一试
[root@instantbox_managed_mcsak3ltv0j2pe9f html]# echo "Welcome to here">>index.html
[root@instantbox_managed_mcsak3ltv0j2pe9f html]# ll
total 4
-rw-r--r-- 1 root root 16 Mar 23 10:02 index.html
[root@instantbox_managed_mcsak3ltv0j2pe9f html]# cat index.html
Welcome to here
好了,民工哥今天的分享就到这里了