首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不建议 Docker 跑 MySQL?

认真分析大家的各种观点,发现赞同者仅仅是从容器优势的角度来阐述 MySQL 需要容器化,几乎没有什么业务场景进行验证自己的观点;反过来再看反对者,他们从性能、数据安全等多个因素进行阐述 MySQL不需要容器化...下面,我们就聊一下 Docker 不适合跑 MySQL 的 N 个原因! —2— 数据安全问题 不要将数据储存在容器,这也是 Docker 官方容器使用技巧的一条。容器随时可以停止、或者删除。...目前腾讯云的 TDSQL 和阿里的 Oceanbase 都是直接部署物理机器,而非 Docker 。 —4— 状态问题 Docker 水平伸缩只能用于无状态计算服务,而不是数据库。...Docker 快速扩展的一个重要特征就是无状态,具有数据状态的都不适合直接放在 Docker 里面,如果 Docker 安装数据库,存储服务需要单独提供。...目前,腾讯云的 TDSQL(金融分布式数据库)和阿里云的 Oceanbase(分布式数据库系统)都直接运行物理机器上,并非使用便于管理的 Docker 上。

2.9K20

为什么 strace Docker 不起作用?

在编辑“容器如何工作”爱好者杂志的能力页面时,我想试着解释一下为什么 strace Docker 容器无法工作。...这里的问题是 —— 如果我笔记本上的 Docker 容器运行 strace,就会出现这种情况: $ docker run -it ubuntu:18.04 /bin/bash $ # ... install...为什么?! 假设 2:关于用户命名空间的事情? 我的下一个(没有那么充分的依据的)假设是“嗯,也许这个过程是不同的用户命名空间里,而 strace 不能工作,因为某种原因而行不通?”...这个假设并没有什么意义,但我(之前)没有意识到 Docker 容器的 root 用户和主机上的 root 用户同一个,所以我觉得这很有意思。...这很容易解释为什么 strace Docker 容器不能工作 —— 如果 ptrace 系统调用完全被屏蔽了,那么你当然不能调用它,strace 就会失败。

6.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

为什么不建议 Docker 跑 MySQL?

下面,我们就聊一下 Docker 不适合跑 MySQL 的 N 个原因! 数据安全问题 不要将数据储存在容器,这也是 Docker 官方容器使用技巧的一条。容器随时可以停止、或者删除。...项目地址:https://github.com/YunaiV/onemall 状态问题 Docker 水平伸缩只能用于无状态计算服务,而不是数据库。...Docker 快速扩展的一个重要特征就是无状态,具有数据状态的都不适合直接放在 Docker 里面,如果 Docker 安装数据库,存储服务需要单独提供。...目前,腾讯云的TDSQL(金融分布式数据库)和阿里云的Oceanbase(分布式数据库系统)都直接运行物理机器上,并非使用便于管理的 Docker 上。...相比专用环境而言,容易水平伸缩是Docker的一大优势。然而在 Docker 水平伸缩只能用于无状态计算服务,数据库并不适用。 难道 MySQL 不能跑容器里吗?

3.6K20

为什么不建议 Docker 跑 MySQL Redis

为什么不建议 Docker 跑 MySQL Redis ? 容器的定义:容器是为了解决“切换运行环境时,如何保证软件能够正常运行”这一问题。...状态问题 Docker 打包无状态服务是很酷的,可以实现编排容器并解决单点故障问题。但是数据库呢?将数据库放在同一个环境,它将会是有状态的,并使系统故障的范围更大。... Docker 水平伸缩只能用于无状态计算服务,而不是数据库。...目前,腾讯云的 TDSQL(金融分布式数据库)和阿里云的 Oceanbase(分布式数据库系统)都直接运行物理机器上,并非使用便于管理的 Docker 上。...云简化了虚拟机操作和替换的复杂性,因此不需要在夜间或周末没有人工作时间来测试新的硬件环境。当我们可以迅速启动一个实例的时候,为什么我们需要担心这个实例运行的环境?

10710

【DB笔试面试565】Oracle为什么索引没有被使用?

♣ 题目部分 Oracle为什么索引没有被使用? ♣ 答案部分 “为什么索引没有被使用”是一个涉及面较广的问题。有多种原因会导致索引不能被使用。...还有很多其它原因会导致不能使用索引,这个问题在MOS(MOS即My Oracle Support)“文档1549181.1为何在查询索引未被使用”中有非常详细的解释,作者已经将相关内容发布到BLOG(...二、索引本身的问题 n 索引的索引列是否WHERE条件(Predicate List)? n 索引列是否用在连接谓词(Join Predicates)?...n 总体成本,表扫描的成本是否占大部分? n 访问空索引并不意味着比访问有值的索引高效? n 参数设置是否正确? 四、其它问题 n 是否存在远程表(Remote Table)?...n 是否WHERE子句中对索引列进行了IS NULL值判断? n 是否查询转换失败导致不能选择索引? n 是否使用了视图或子查询? ? 详细情况如下表所示: ?

1.1K20

记录Gerrit2.8.4环境迁移、安装、配置以及问题解决

2、使用跟原系统gerrit版本一致,重新搭建新环境,做到数据环境一致平滑迁移(不要问我为啥不用docker镜像搭建,因为原系统版本很老了,木有现成的docker镜像了,自己写一个镜像也是很麻烦的。。...2、Administrators以及Non-Interactive Users组会重新创建新的group_uuid,这个跟数据库account_groups表对应的原组uuid不一致,会导致系统即使管理员也没有读写权限...基于docker搭建最新版gerrit 2.13.x步骤 1、拉取gerrit镜像 从docker hub官网拉取openfrontier/gerrit镜像 地址:https://hub.docker.com...2、这里KEY跟gerrit.conf文件的key映射关系,可通过[github openfrontier/docker-gerrit](https://github.com/openfrontier.../docker-gerrit) 查看自定义脚本映射关联。

2.7K90

为什么Java没有为空字符串设置访问API呢 | Java Debug 笔记

为什么Java没有为空字符串设置访问API呢?...=========================熟悉Java的朋友都知道,当我们通过双引号创建字符串的时候,Java 会将字符串存储常量池中以供我们下次使用但是为什么String类不为我们提供一个对空字符串的引用呢因为这样做至少可以节省了编译的时间...我个人认为这某种意义上来说这有点“代码味道”所以说,关于String的空字符一说Java是否有更加复杂的涉及考虑还说设计者没有考虑到这个问题呢回答1===String.EMPTY是12个字符,而"..."仅仅2个字符,它们在运行时都将引用内存完全相同的实例。...我不太确定为什么是String.EMPTY可以节省编译时间,实际上我认为应该是后者考虑到String被final修饰是不可变得。

12510

服务器使用宝塔面板出现“您的请求web服务器没有找到对应的站点!”的解决办法

服务器使用宝塔面板出现“您的请求web服务器没有找到对应的站点!”的解决办法 服务器使用宝塔面板出现“您的请求web服务器没有找到对应的站点!”...的解决办法 近期经常看到有站长朋友反应服务器出现以下报错: QQ图片20180720152852.png 这个提示是说您访问的域名,在这台服务器上没有找到对应的站点,其实就是配置文件没有正确读取才出现的...采用第二条方式 2.连接进入linux服务器SSH终端,输入以下命令: /etc/init.d/httpd stop pkill -9 httpd /etc/init.d/httpd start 这三条命令SSH...逐个输入,每输入一条就回车执行一次。

7.9K50

Gerrit设置开机启动方法

方法1 1.通过如下步骤设置gerrit服务开机自启动: sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh...方法2 1.安装gerrit的时候,会有一个安装目录 它的下面有个 bin/gerrit.sh文件 把这个文件拷贝到/etc/init.d下 改名叫做 gerrit 然后用sysv-rc-conf工具...,这个没有可以直接apt-get install进行安装 然后执行sysv-rc-conf,找到gerrit的那一行,我把2~5都X上 然后重启下系统,/etc/rc*.d下面就都有对应的文件了,我这里是...S20gerrit文件 2.然后一般安装gerrit的时候都建立了一个新的用户,我把安装目录给放到新用户下面了 我自己的用户下面没有写权限,就给把那个用户chmod 777 -R了 然后/etc/init.d.../gerrit脚本里把GERRIT_SITE给设置一下 这里,我用 都是修改GERRIT_SITE_1的值为绝对路径GERRIT_SITE_1=”/home/gerrit2/gerrit_application_directory

2.6K32

超级账本-如何贡献

如果没有,请通过评论提出问题,并要求对其进行评审。您还可以Hyperledger Chat中将问题发布到相关的相关的Hyperledger Fabric的频道。...如果你提交第一个CR的时候需要帮助,我们已经为你创建了一个简短的教程。 修复问题和认领正在进行的任务 查看问题列表找到你感兴趣的内容。您也可以从求助 列表寻找。...浏览 Gerrit上开放的CRs开始你的贡献。 设置开发环境 接下来,本地开发环境构建项目,以确保所有配置都是正确的。 什么是更好的变更请求? 一次只包含一个变更。不是五个,3个,或者10个。...为什么呢?因为它变更的影响范围。如果我们有一轮回归,那么将更容易证明一次影响较广的组合提交将是一个罪魁祸首。 JIRA的故事包含一个链接。为什么?...为什么呢?因为没有这些,我们无法知道你的代码是否真的正确地工作。 单元测试需要没有额外的依赖。你应该使用 go test 或者等价的语言的测试方式来运行单元测试。

1.1K20

sourceTree+gerrit管理代码

比如无法直接push 2 提交代码过程,如果冲突,gerrit默认不给merger权限。怎么处理?...4 配置本地gerrit 之前创建的 .ssh文件夹创建config文件(或直接拷贝配置好的config文件), config文件内容(注意user名称换成自己的的账户名,port端口默认29418...主要问题在于无法直接在sourceTree左上角push,我们需要在终端操作,而且不能使用  git push origin master 这是为什么呢?...三、冲突解决 因为gerrit默认没有merger权限,所以当冲突之后,就算本地解决了,上传的时候还是会提示错误。怎么办呢?...这时候把分支reset到最近一次没有冲突的节点,将自己的改动stash,暂存。然后拉最新代码,这时候不会冲突,因为你的工作区是干净的,然后应用stash,这时候就算冲突,你本地解决一下就可以提交了。

2.1K50

Git+Gerrit如何永久删除历史文件(大文件私密文件)

于是Gerrit上查看了近几次提交记录发现两个非常大的临时文件被上传了,并且审核通过被推送到Git仓库,没错就是这俩货: ? ?...git reset --soft命令一样是无法将提交记录从仓库抹掉的,虽然通过reset之后,大文件的提交记录在git log已经查找不到,但实际上,这个记录并不会真正的从仓库删除,只要能找到commit...删除命令 如果所有分支都是unchanged说明要么是该分支没有要删除的文件,要么是删除文件的路径不对。 执行以后命令以后,你会发现本地目录的.git文件并不会马上就变小,而是与原来是一样的!...别急,接下来就告诉你为什么。 2)原来Git仓库历史有个缓存期,如果不主动回收、清理仓库历史,一般的这些记录还会保存一段时间,以备你突然后悔了,没办法找回删掉的文件。那么怎么样才能主动回收资源能?...解决问题时,尝试一些方案时,最好先分析一下方案的可行性,已经结果评估,否则会浪费了许多时间,还有可能导致一些不可逆转的错误。

2.4K20

使用docker部署spring cloud项目详细步骤

:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 使环境变量生效 source /etc/profile 测试安装 java -version 2....Docker的安装 (1) 查看内核版本(Docker需要64位版本,同时内核版本3.10以上,如果版本低于3.10,需要升级内核) uname -r (2) 更新yum包: yum update (.../system/docker.service 找到这一行 ExecStart=/usr/bin/dockerd 改为 ExecStart=/usr/bin/dockerd -H tcp: unix:...(3)构建镜像并上传至docker 使用maven运行如下命令 clean package docker:build -DskipTests 上传成功后,服务器输入 docker images 可以看到所有的...down 作者:boonya 来源:https://blog.csdn.net/u011508407/article/details/82153562 ▼ 往期精彩回顾 ▼ 微服务为什么一定要用docker

1.1K41

Gerrit的用法及与gitlab的区别

找同事核实,同事却说根本没有看到我的代码。经过一番沟通了解,原来他们的代码没有直接在gitlab上操作,而是先提交到gerrit,然后提交到git。但是代码拉取的时候,不会直接从gitlab上拉取。...同事说最终代码还是保存在gitlab上,gerrit的作用就是用来审核的,当时有一个疑问,就是一个代码审核工具嘛,为什么不直接用gitlab呢,而要多一个工具审核呢?得到的答复是gitlab不好用。...他传统的源码工具管理协作流程强制性引入代码审核机制,通过人工代码审核和自动化代码验证的方式,不符合要求的代码屏蔽代码库之外,确保核心代码多人校验、多人互备和自动化构建核验。...- 安装mysql数据库:用来保存gerrit的用户以及用户提交的记录 - 安装gitlab:用来和gerrit做集成 - 集成jenkins:代码提交到gerrit时,自动提交到gitlab 2)Gerrit...其他功能都是差不多的 二、对比Gerrit和gitlab Gerrit其实就是多了一个审核功能,个人觉得没有必要非要使用gerrit,尤其是小团队。gitlab的审核功能足够了。

1.7K20

ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?

本文链接:https://blog.csdn.net/boling_cavalry/article/details/101855126 为什么需要ARM架构下的OpenJDK8的Docker镜像?...《ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本?》...一文,已经确定了OpenJDK官方并未提供8版本的Docker镜像,因此,原有的Java应用,如果是基于JDK8编译和运行的,现在从X86架构转战到ARM架构的Docker环境下,就会面临没有JDK基础镜像的问题...; 应对之道 《ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本?》...JDK11镜像 使用JDK11镜像,意味着Java工程所用的JDK从8升级到11,这个操作和Docker的关系不大,您只要验证应用在升级JDK后是否能运行正常即可,本文就不赘述了,我把自己升级过程遇到的问题列出来

3.6K41

使用Dockerfile创建一个tomcat镜像,并运行一个简单war包

:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH=/sbin:$JAVA_HOME/bin...成功的话,会有镜像id显示 4.使用docker images查看创建好的镜像 5.通过创建好的镜像,启动一个容器 [root@localhost helloword]# docker run -d...-p 8080:8080 --name hmk_tomcat jamtur01/tomcat:latest 启动后访问一下 6.进入容器,看下之前Dockerfile写好命令要创建的tomcat.../webapps原本的内容被置换为宿主机的webapps内容了(这和我预期的不符) 通过单个文件挂载的话,则只是把这个war包丢进容器,并没有影响容器中原本的内容(虽然我知道一般不建议挂载单个文件...,但是如何通过挂载目录来读取容器外的程序包、配置文件等的方法还没有找到) 另外挂载单个文件时注意宿主机的路径是绝对路径,容器也是绝对路径+文件名(也就是说虽然容器没有这个war文件,但是我们要假设有

1K10
领券