docker好难用啊!为啥说它移植性好?

刚刚接触docker,真的好麻烦啊,不明白为什么要选择docker,我都搞了两天还在搭环境,又告诉我Windows版本过低不适配docker,转而在Ubuntu里装docker,然后MySQL、php、Nginx又得重新装一遍。。。好麻烦啊

1 用的人越多,越需傻瓜式操作

就不说docker了,以前有一次做项目,全国42个机构要安装,我做了很详细的文档,100页(根据各单位实际情况要求改ip,改端口,改路径盘符,改管理员密码,改虚拟机名称,更新各自的许可证等),自己试了好多次,确认没问题,最后一次全国范围的培训,看了下大家的情况,真心觉得技术参差不齐,最后决定发虚拟机:

  • 一个VMware的版本
  • 一个hyperv的版本

把文档缩成三页,七步。终于顺利完成。太香了!配置的人痛苦,接电话解决配置问题的人更痛苦!

2 文档真这么长???

nginx这些算框架、中间件,如果买你软件的人也是在你软件的基础上做二次开发,那1万页、几十万页的文档才是正常情况(大型企业级软件的使用手册就是这样)。

但如果买你软件是为了直接使用,那你就必须保证软件可以傻瓜式一键安装成功。如果每个项目的需求不同需要定制、裁剪,那正确做法应该是设置交付岗位,由专业的交付工程师根据合同要求来给客户安装硬件和软件,并通过验收测试。

3 显然没被环境毒打过

之前复现一篇论文,按照说明文档的要求配了无数遍的环境,发了无数封邮件给作者,前后历时大概一周,最后作者终于甩给我一个镜像,不到半小时就搞定了。当时我就觉得,要没有docker,我这辈子应该都弄不出来。

任何饱受配环境折磨的人最终都会由衷赞叹“docker 真香”。

可以通过直接看dockerfile 还可以知道自己搞的环境和作者搞的环境究竟哪里不同

4 真香定律

不知道你的身份角色。

  • 若是偏运维,你之后会明白的,等你的用户和领导要求你同一台机器上同时安装很多不同版本的php、安装不同版本的nginx时,你就知道麻烦了
  • 若是偏开发,你去求别人在服务器上安装依赖时就知道了,你青睐ubuntu而运维说服务器只能是centos时你就知道差异了

docker正是调和这个矛盾的利器。开发部门将软件以及软件所有的依赖全部封装到一个镜像里,爱用debian用debian,爱用alpine也可以, 爱装java11就尽情用。这些真不香么?

运维部分呢,只需要拿到镜像,设置好网络和服务器资源就可以了, 软件依赖再也与你无关,不香么?

5 总结

docker 其实本质就是一个跨平台安装包,新一代安装神器,非要上理论扯些容器,虚拟化啥的,反而搞的玄乎。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/59399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于异数OS服务器CPU效能分析工具

该工具发布背景 近年来,国产服务器CPU产业的逐渐发展,但由于专业性较差,与国外存在40年以上技术差距,一些服务器CPU厂商利用信息差来制造一些非专业的数据夸大并虚假宣传混淆视听,成功达到劣币驱良币的目标&#xff0…

【论文笔记】最近看的时空数据挖掘综述整理8.27

Deep Learning for Spatio-Temporal Data Mining: A Survey 被引用次数:392 [Submitted on 11 Jun 2019 (v1), last revised 24 Jun 2019 (this version, v2)] 主要内容: 该论文是一篇关于深度学习在时空数据挖掘中的应用的综述。论文首先介绍了时空数…

react css 污染解决方法

上代码 .m-nav-bar {background: #171a21;.content {height: 104px;margin: 0px auto;} }import React from "react"; import styles from ./css.module.scssexport default class NavBar extends React.Component<any, any> {constructor (props: any) {supe…

数组(个人学习笔记黑马学习)

一维数组 1、定义方式 #include <iostream> using namespace std;int main() {//三种定义方式//1.int arr[5];arr[0] 10;arr[1] 20;arr[2] 30;arr[3] 40;arr[4] 50;//访问数据元素/*cout << arr[0] << endl;cout << arr[1] << endl;cout &l…

Redis怎么测试?

有些测试朋友来问我&#xff0c;redis要怎么测试&#xff1f;首先我们需要知道&#xff0c;redis是什么&#xff1f;它能做什么&#xff1f; redis是一个key-value类型的高速存储数据库。 redis常被用做&#xff1a;缓存、队列、发布订阅等。 所以&#xff0c;“redis要怎么…

目标检测任务数据集的数据增强中,图像垂直翻转和xml标注文件坐标调整

需求&#xff1a; 数据集的数据增强中&#xff0c;有时需要用到图像垂直翻转的操作&#xff0c;图像垂直翻转后&#xff0c;对应的xml标注文件也需要做坐标的调整。 解决方法&#xff1a; 使用pythonopencvimport xml.etree.ElementTree对图像垂直翻转和xml标…

HiveSQL刷题

41、同时在线人数问题 现有各直播间的用户访问记录表&#xff08;live_events&#xff09;如下&#xff0c;表中每行数据表达的信息为&#xff0c;一个用户何时进入了一个直播间&#xff0c;又在何时离开了该直播间。 user_id (用户id)live_id (直播间id)in_datetime (进入直…

web自动化框架:selenium学习使用操作大全(Python版)

目录 一、浏览器驱动下载二、selenium-python安装&#xff08;打开网站、操作元素&#xff09;三、网页解析&#xff08;HTML、xpath&#xff09;四、selenium基本操作1、元素定位八种方法2、元素动态定位3、iframe切换4、填充表单_填充文本框5、填充表单_单选按钮6、填充表单_…

山海优选卷轴模式源码实例分享

山海优选通过与绿色有机产品供应商和生产商的合作&#xff0c;建立起稳定的供应链关系&#xff0c;确保产品的绿色、有机、健康。通过产品认证和检测&#xff0c;为会员提供可信赖的绿色产品。积分激励机制设计 山海优选引入“绿色积分”机制&#xff0c;通过会员购买产品、参与…

【Java Web】用拦截器的方式获取用户信息

流程&#xff1a;从cookie中获取凭证&#xff0c;根据凭证查询用户&#xff0c;并在本次请求中持有用户&#xff0c;在视图模板上显示登录用户的信息。 1. 定义拦截器 package com.nowcoder.community.controller.Interceptor;import com.nowcoder.community.entity.LoginTic…

MyBatis-Plus的公共字段自动填充

文章目录 1. 在实体类的相应属性上添加TableField注解2. 自定义元数据对象处理器3. 为了解决对象处理器MyMetaObjecthandler 获取不到外界数据的情况 1. 在实体类的相应属性上添加TableField注解 package com.itheima.reggie.entity;import com.baomidou.mybatisplus.annotati…

docker 搭建私有仓库和制作镜像

目录 1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 1.1 启动mysql镜像 1.2 启动owncloud镜像 1.3 浏览器访问 1.4 总结 2、安装搭建私有仓库 Harbor 2.1 下载docker-compose并赋予执行权限 2.2 磁盘挂载&#xff0c;保存harbor 2.3 修改配置文件…

4G WiFi LoRa无线外夹式超声波管道流量计MQTT/http协议 json数据说明

ip&#xff1a;114.128.112.131 port&#xff1a;1883 uname&#xff1a;scwl_flowmeter pwd&#xff1a;b123 topic&#xff1a;iot/data/scwlflowmeter { “deviceId”:“设备序列号”, “flow”:“瞬时流量&#xff08;浮点数&#xff09;”, “heatFlow”:“瞬时热流量&am…

Docker技术--Docker容器管理

1.Docker容器相关的指令(单个容器操) 我们之前在Docker中部署了一个实际应用的案例wordpress,其中使用到了一些相关于容器的指令,那么下面我们一起来总结使用。 Docker指令的语法规则如下所示: Docker + 命令关键字 [+参数选项] -1类:关闭、开启、重启、开启自启 systemct…

mysql问题处理大全

mysql问题处理大全 一&#xff1a;mysql中文乱码问题&#xff1a; 解决一次问题 show variables like “%chara%” character_set_client 为客户端编码方式&#xff1b; character_set_connection为建立连接使用的编码方式&#xff1b; character_set_database为数据库的编码…

Web 自动化神器 TestCafe—页面高级操作篇

♥ 前 言 在【Web 自动化神器 TestCafe — 页面基本操作篇】这篇文章中我们介绍了TestCafe页面交互的一些基本使用 Web 自动化神器 TestCafe — 页面基本操作篇 这篇文章接着上一篇来给大家介绍一下 TestCafe 页面交互的一些高级操作。 一、鼠标拖拽 鼠标拖拽鼠标拖拽 …

枚举分片容错性动态扩展

枚举分片之前的《mycat字符串枚举分片示例》中已经介绍过。 使用这种分片策略之后碰到了一个问题&#xff1a; 场景&#xff1a; 使用连锁店的店铺编号枚举分片&#xff08;第1至第100分布店分在第一个分片&#xff0c;第101至第250分店&#xff09;&#xff0c;全国的连锁店会…

JavaScript常见的运算符

一、运算符和运算元 1.认识运算符 在小学的时候我们就学习了各种运算符&#xff0c;比如加号 、乘号 *、减号 - 、除号/ 几乎所有的编程语言都有各种各样的运算符(也被称之为操作符&#xff0c;operators) 初次接触这些运算符, 你会感觉种类繁多, 难以记忆.但是并不需要特别…

Kotlin判断null比较let布尔值Boolean

Kotlin判断null比较let布尔值Boolean class MyData {val count: Int? 2023val number: Int? null }fun main(args: Array<String>) {val data MyData()val year 2022if (data.count ! null) {if (data.count > year) {println("data.count ! null")}}…