当前位置: 首页 > ops >正文

初学docker

        最近有个蛋疼的事情,要把开发好的软件安装到甲方的电脑上,但是他们的环境是不能联网的,而且保密性很高,还不能插U盘或者数据线,这样的话配置环境是个很大的问题,上网搜索了一下,发现docker很适合这种。那么什么是docker呢?

        打个比方,一间房子里有各种各样的家具,家具的摆放也很有讲究,但是有一天你要搬家了,如果是把家具一个个搬走的话,很不方便,而且到了新家,还得重新摆回去,这个时候如果有个大力士,可以直接把房子搬走,放到指定的位置就可以了(狗头)。那么把房间看作一个整体,这个也就是docker。电脑上的虚拟机其实也算是一种docker,包含了操作系统和依赖环境,相当于是一台电脑。

        怎么使用docker呢?首先要是linux的系统,其次要有docker和docker compose ,这样就可以使用docker了。通过 docker ps命令可以查看运行的容器,docker images可以看已有的镜像;镜像可以自己构建,这种一般是精简的版本;或者去 docker Registry 下载别人制作好的镜像,省去了自己安装依赖的时间。

        好了,言归正传。讲讲自己的牛马生活,真是集前端,后端,运维一体的核动力牛马,每天又要开发,又要设计理解需求,还要负责部署。。。加班熬的夜,太痛了!情况是有两个软件要安装到甲方的电脑上,刚开始不知道怎么弄,所以每个软件都整了配套的环境,然后打包成了离线tar,结果跑去别人那安装,还要求改代码,但是打包之后改不了了,只能回来重新想办法。

        刚开始的想法是下载好每个软件需要的离线软件deb包,然后到他们的电脑里build,但是环境的离线deb包很难下载全,只要有个不到位,就安装不成功,而且build界面不会报错误的具体原因,也找不到日志,很麻烦,尝试了一天未果,果断换了个方式。那就是解耦合,两个软件的基础环境差不多,把他们的环境抽离出来做成一个镜像:

        先把需要的环境打包进一个image-base里,然后把这个镜像导出离线tar,再写对应的两个软件的Dockerfile文件,把前后端的代码复制进去,build即可,这样子就可以在离线的情况下美滋滋改代码了(奸笑)。事实证明,有网的时候才能配置好环境,GAN!

        所以说,有时候换个思路很重要,一条路走不通了,换个方式,不要为难自己。当然了,运维的坑太多了,很多时候一个小问题,比如样式问题,加载不出来,一个问题对应很多的原因,还得一个个排查,就很浪费时间。。。比如从系统打开的终端和直接在桌面右击打开的终端是不一样的,模式不同;害,多积累经验把,希望能越来越强~

http://www.xdnf.cn/news/17022.html

相关文章:

  • 基于k8s环境下的pulsar常用命令(上)
  • 【Lua】题目小练8
  • nflsoi 8.2 题解
  • Druid与JdbcTemplate基本使用
  • vscode 关闭自动更新
  • 从达梦到 StarRocks:国产数据库实时入仓实践
  • Memcached 缓存详解及常见问题解决方案
  • P1002 [NOIP 2002 普及组] 过河卒
  • 06 基于sklearn的机械学习-欠拟合、过拟合、正则化、逻辑回归、k-means算法
  • 【RH124知识点问答题】第8章 监控和管理 Linux 进程
  • 关于解决WinRiver项目动态XmlElement的序列化与反序列化的问题
  • 2.1 vue组件
  • EXCEL删除数据透视表
  • HTTP各个版本对比
  • 网络资源模板--基于Android Studio 实现的消消乐游戏
  • 【机器学习】(算法优化二)提升算法之:AdaBoost与随机梯度
  • 37. line-height: 1.2 与 line-height: 120% 的区别
  • Redis真的是单线程的吗?
  • 【Unity3D实例-功能-镜头】第三人称视觉
  • 四、Linux 的实用操作
  • 【目标检测基础】——yolo学习
  • Servlet 相关笔记整理
  • Java 的 APT(Annotation Processing Tool)机制详解
  • 力扣 hot100 Day65
  • 基于Matlab实现LDA算法
  • 数据结构——单向链表部分操作及valgrind安装
  • 单片机裸机程序设计架构
  • webm 读取解析
  • 各种信号分解、模态分解方法合集【MATLAB实现】
  • 网络相关命令