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

在Docker容器中运行MySQL
EN

Stack Overflow用户
提问于 2014-07-31 22:18:55
回答 1查看 5.2K关注 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,我将得到下面的错误消息。

输出:

root@1bbeb34f3491:/# mysqld 140730 4:49:04使用唯一选项前缀key_buffer而不是key_buffer_size的警告是不推荐的,并将在以后的版本中删除。请用全名代替。 140730 4:49:04警告使用唯一的选项前缀myisam-恢复而不是myisam-恢复选项被废弃,并将在未来的版本中删除。请用全名代替。 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本机 140730 4:49:04 InnoDB:初始化缓冲池,大小= 128.0M 140730 4:49:04 InnoDB:完成缓冲池初始化 140730 4:49:04 InnoDB:最受支持的文件格式是Barracuda。 140730 4:49:04 InnoDB:等待后台线程启动 140730 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上创建的Note套接字:'0.0.0.0‘。 140730 4:49:05错误无法启动服务器:在unix上绑定:权限被拒绝 140730 4:49:05错误您是否已经在套接字上运行另一个mysqld服务器: /var/run/mysqld/mysqld.sock? 140730 4:49:05错误中止 140730 4:49:05 InnoDB:启动关机140730 4:49:06 InnoDB:关闭完成;日志序列号1595675 140730 4:49:06

寻址错误

  • “请运行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容器在MYSQL_PORT_3306_TCP_ADDR的ip地址上,但这也不起作用。

同样,问题可能是我不明白Docker是如何工作的。如果是这样的话,是否有人可以创建一组步骤,使用Docker索引上的MySQL容器之一,然后将容器链接到可以连接的容器。这也将有助于了解我的Docker安装是否有问题(或导致此问题的其他未知问题)。

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

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

谢谢,JamesStewy

EN

回答 1

Stack Overflow用户

发布于 2016-02-05 22:06:58

这对我有用:docker run -d -p 3306:3306 -e MYSQL_PASS="mypass" tutum/mysql

不需要从bash运行脚本,也不需要任何聪明的东西。

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

https://stackoverflow.com/questions/25069860

复制
相关文章

相似问题

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