首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Docker容器中运行MySQL

在Docker容器中运行MySQL
EN

Server Fault用户
提问于 2014-07-30 05:11:28
回答 2查看 16K关注 0票数 6

因此,我的最终目标是运行一个MySQL Docker容器(例如,在公共注册表中运行一个tutum/mysql ),然后将一个Gitlab容器(例如sameersbn/gitlab)链接到它,其中两个容器都使用持久存储。

然而,我被困在了MySQL部分。每次我试着运行一个预先制作好的MySQL Docker容器(mysql、tutum/mysql和sameersbn/mysql),我就会得到以下输出。

步骤

这只是获取下面错误信息的一种方法。

  1. docker.io拔管/mysql:最新
  2. docker.io运行-it管/mysql bash
  3. 一旦附加到新的容器,运行"/run.sh“(如tutum/mysql的dockerfile)
  4. 此时,一条“等待确认MySQL服务启动”的消息不断重复。
  5. 此时,如果我取消"/run.sh“命令并自己启动MySQL,我将得到下面的错误消息。

输出:

根@1bbeb34f3491:/# mysqld 140730 4:49:04 警告使用唯一选项前缀key_buffer代替key_buffer_size是不推荐的,并将在以后的发行版中删除。请用全名代替。140730 4:49:04 警告使用唯一的选项前缀myisam-recover而不是myisam-recover选项被废弃,并将在以后的发行版中删除。请用全名代替。140730 4:49:04 备注插件“联邦”被禁用。mysqld:表' mysql.plugin‘不存在140730 4:49:04 错误无法打开mysql.plugin表。请运行mysql_upgrade来创建它。140730 4:49:04 InnoDB: InnoDB内存堆禁用140730 4:49:04 InnoDB: Mutexes和rw_locks使用GCC原子构建器140730 4:49:04 InnoDB:压缩表使用zlib 1.2.8 140730 4:49:04 InnoDB:使用Linux本机AIO 140730 4:49:04 InnoDB:初始化缓冲池,大小= 128.0M 140730 4:49:04 InnoDB:完成缓冲池初始化140730 4:49:04 InnoDB:最高支持的文件格式是Barracuda。140730 4:49:04 InnoDB:等待后台线程启动4:49:05 InnoDB: 5.5.37启动;日志序列号1595675 140730 4:49:05 备注服务器主机名(绑定地址):'0.0.0.0';端口: 3306 140730 4:49:05 备注 - '0.0.0.0‘解析为'0.0.0.0';140730 4:49:05在IP上创建备注服务器套接字:'0.0.0.0’。140730 4:49:05 错误无法启动服务器:在unix上绑定:权限被拒绝140730 4:49:05 错误您是否已经有另一个mysqld服务器运行在套接字上:/var/run/mysqld.sock? 140730 4:49:05 错误中止140730 4:49:05 InnoDB:启动关闭140730 4:49:06 InnoDB:关闭已完成;日志序列号1595675 140730 4:49:06 mysqld:备注已关闭

寻址错误

  • “请运行mysql_upgrade来创建它”=> run mysql_upgrade命令输出

根@1bbeb34f3491:/# mysql_upgrade寻找' mysql‘as: mysql寻找' mysqlcheck’as: mysqlcheck致命错误:升级失败

  • “您是否已经在套接字上运行了另一个mysqld服务器”=> Nope。运行服务mysql stop什么也不做,运行ps不显示mysqld。运行ls /var/ -a /mysqld/表示套接字文件不存在。

无论我尝试哪个MySQL容器,最终当我启动MySQL时,都会出现相同的错误消息。这几乎肯定意味着我的设置有问题,这使我感到困惑,因为我认为没有公开端口或持久存储的Docker容器将与安装在系统上的Docker隔离?

我还尝试运行一个带有MySQL标志的-d容器,然后运行一个新的ubuntu14.04容器(docker.io run -it -link mysql:mysql ubuntu :14.04bash)。在Ubuntu容器上,我通过apt安装了MySQL,并试图连接到MySQL容器,但这也不起作用。

我的主机系统正在运行Ubuntu14.04,Docker是通过apt安装的,版本为0.9.1。

我不太清楚在这个解释中该怎么解释,因为这个问题在我看来很奇怪。如果我漏掉了什么,请问一下,我会帮你补充的。

谢谢,JamesStewy

编辑如果有人可以创建一组指令,创建一个MySQL容器和一个链接容器,并为他们工作,这样我就可以试一试。

EN

回答 2

Server Fault用户

发布于 2014-07-30 09:59:18

使用sameersbn/mysql

我不相信你能以互动的方式运行它。

代码语言:javascript
复制
docker run --name mysql -d sameersbn/mysql:latest

因此,您只需将其作为守护进程运行,检查容器以找到IP地址,如下所示:

代码语言:javascript
复制
docker inspect mysql | grep IPAddres

然后你可以在那个IP上连接到mysql。

票数 2
EN

Server Fault用户

发布于 2014-08-26 10:27:11

我们也遇到了同样的问题--似乎您需要等待mysql启动(或者至少要启动侦听器)。否则,你会得到你得到的2013年的问题。我们刚刚添加了睡眠60,这是一个相当不雅的黑客,但似乎是有效的。希望听到一个更好的解决办法。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/616494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档