• 容器化时代到来!跳转机分配问题终于“有救”了


    摘要: 想必大家在利用跳转机进行解决方案开发和测试过程中,都会遇到各种各样关于跳转机的资源分配问题,通过学习和实践利用容器化跳转机方案,我们便可将这些问题彻底解决,现就该方案跟大家做个分享,欢迎大拿们一起交流。

    跳转机容器化方案介绍

    想必大家在利用跳转机进行解决方案开发和测试过程中都会遇到这些问题:

    1、 hi,兄弟,帮我分配个跳转机

    2、 谁呀,XX跳转机我在使用,不要抢占

    3、 跳转机全分配完了,没有可用的了,而实际上有很多跳转机分而不用

    4、 我想用跳转机来模拟用户,可没有足够的跳转机资源进行容量测试

    5、 我们跳转机是WINDOWS系统,而实际交付版本配套工具是需要安装在LINUX上的,无资源进行镜像测试

    ……

    遇到以上问题怎么办?通过学习和实践利用容器化跳转机方案将如上问题彻底解决,现就该方案跟大家做个分享,欢迎大拿们一起交流。

    一、什么是容器

    容器是应用层的抽象,多个容器可以在同一台宿主机上运行,并共享操作系统资源,每个容器在用户界面是独立运行的,互相不干扰。

    二、 解决方案思路介绍

    面对上面的问题我想出如下三套解决思路,通过验证得出思路2最可行。相比方案1来说资源独立;相比思路3,操作简单。所以,具体实施时按照思路2展开。

    思路2中,关键难点在于自定义进行制作和容器自动化管理部分,下面就这两部分做一个介绍。

    三、 自定义桌面版镜像制作

    相信大家跟我一样,已经习惯了windows桌面版操作系统办公,所以我们这次目标是制作一个带有常用办公软件的桌面版镜像,为下面拉起批量容器做好准备。自定义桌面版镜像制作步骤:

    1、 服务器基础操作系统和网络已经完成配置,这部分不再赘述。

    2、 DOCKER系统安装,并设置开机自启动。

    Ø 在宿主机上执行yum install docker 安装docker

    Ø 在宿主机上执行systemctl enable docker.service 设置自动开启启动

    3、 DockerHub上拉取支持RDP协议的桌面版基础镜像

    Docker pull soff/ubuntu-xfce-vnc(该镜像支持VNC+RDP+XFCE),由于我负责的项目需要通过RDP协议登录到容器上,所以拉取上面的镜像。

    备注:

    根据大家需要,可以拉取不同的基础镜像如:

    Docker pull dorowu/Ubuntu-desktop-lxde-vnc(该镜像支持VNC+XFCE)

    4、 远程登录上容器上进行办公软件安装

    5、 镜像调试

    5.1先拉取容器界面管理镜像,并运用容器,可实现容器和镜像文件可视化管理。

    Ø Docker pull portainer/portainer 拉起镜像

    Ø docker run -d --name docker-admin -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer 运行镜像

    Ø http:IP+port 页面访问可视化管理工具

    5.2 手工拉取基础镜像

    参数说明:

    Ø --name:容器名称

    Ø -p 5903:vnc协议端口,可以通过VNC工具访问

    Ø -p 6903:novnc协议端口,可以采用+6903直接访问

    Ø -p 7903:RDP协议访问端口,可以通过支持RDP协议的远程工具访问

    Ø --shm-size=256m容器内存设置

    Ø -v /etc/localtime:/etc/localtime:ro 容器时间跟宿主机同步

    Ø --restart=”on failure” 容器异常自动重启

    其他参数可以执行docker run –help进行查看。

    5.3远程登录,并业务验证

    执行mstsc /v:IP:port远程登录容器,然后根据每个人的需要进行相关业务验证,不再叙述。

    6、 确认镜像可用,通过commit命令制作可以复制的镜像

    Docker commit –a “author” test3 myimages-xfce:v1,将上面创建的容器test3作为可以复制的镜像,并重新命名为为myimages-xfce:v1,后面就可以使用该镜像进行拉起和运行。

    commit语法说明:

    四、 容器自动拉起和关闭流程

    通过前面的介绍,相信大家已经完成了自己想要的镜像文件,如何利用镜像文件完成容器自动拉起和自动关闭呢?下面图为例,做一个简单介绍。

    Ø 应用程序负责调用宿主机利用自定义镜像创建或删除容器脚本

    Ø 生成的Docker可在业务中使用

    Ø 用户使用VNC或RDP协议登录Docker

    五、 参考学习材料汇总

    https://blog.csdn.net/zhuquan945/article/details/82110245

    http://www.mamicode.com/info-detail-2326734.html

    https://blog.csdn.net/Rafe_ma/article/details/77838613

    https://blog.csdn.net/sudaroot/article/details/89623506

    https://www.jianshu.com/p/9ce0d9dac37e

    https://blog.csdn.net/Blackrosetian/article/details/83036491

    https://www.cnblogs.com/jameszh/p/4455405.html

    https://www.cnblogs.com/jameszh/p/4455405.html

    有了容器镜像服务的解决方案,跳转机资源分配问题将得到很好的解决,希望对大家今后的工作有所助益。

    为了促进技术交流,欢迎大家积极参与回帖盖楼有奖活动。

    六、加入“华为数通开发者社区”

    欢迎加入数通开发者社区,加入后在论坛模块可与同行大咖进行技术交流,并有机会赢得其他活动大奖,赶快扫码加入吧(https://devzone.huawei.com/cn/network/portal.html)!!

    本文分享自华为云社区《【盖楼有奖】跳转机容器化方案,预示着容器化时代的到来。》,原文作者:长期飘在公有云上 。

     

    参与盖楼有奖,赢取精美奖品

  • 相关阅读:
    HttpClientFacotry Part 4: 集成 Polly 处理瞬时失效
    在 ASP.NET Core 2.1 之后与 HttpClient 工厂一起使用 Polly
    PDFSharp 1.5 更新
    .NetCore HttpClient发送请求的时候为什么自动带上了一个RequestId头部?
    PDFSharp 常见问题
    PDFSharp Graphics 绘制接口
    HttpClientFactory in ASP.NET Core 2.1 Part 5: 日志
    oracle 关于0和null的计算
    【Python基础】如何向 google colab 上传文件?
    【Python基础】Python 实现 时间的格式化输出(例如: Oct 24, 2019 1:26:45 PM)
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/14034773.html
Copyright © 2020-2023  润新知