ubuntu – 在Docker容器中运行MySQL

前端之家收集整理的这篇文章主要介绍了ubuntu – 在Docker容器中运行MySQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
因此,我的最终目标是运行 MySQL Docker容器(例如来自公共注册表的tutum / MysqL),然后将Gitlab Docker容器(比如sameersbn / gitlab)链接到两个容器使用持久存储的容器.

但是,我被困在MysqL部分.每次我尝试运行预制的MysqL Docker容器(MysqL,tutum / MysqL和sameersbn / MysqL),如下所述,我得到以下输出.

脚步

这只是获取下面的错误消息的一种方法.

> docker.io pull tutum / MysqL:latest
> docker.io运行-it tutum / MysqL bash
>一旦附加到新容器运行“/run.sh”(根据tutum / MysqL dockerfile)
>此时,“等待确认MysqL服务启动”消息不断重复.
>此时,如果我取消“/run.sh”命令并自己启动MysqL,我会收到以下错误消息.

输出

root@1bbeb34f3491:/# MysqLd

140730 4:49:04 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.

140730 4:49:04 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.

140730 4:49:04 [Note] Plugin ‘FEDERATED’ is disabled.

MysqLd: Table ‘MysqL.plugin’ doesn’t exist

140730 4:49:04 [ERROR] Can’t open the MysqL.plugin table. Please run MysqL_upgrade to create it.

140730 4:49:04 InnoDB: The InnoDB memory heap is disabled

140730 4:49:04 InnoDB: Mutexes and rw_locks use GCC atomic builtins

140730 4:49:04 InnoDB: Compressed tables use zlib 1.2.8

140730 4:49:04 InnoDB: Using Linux native AIO

140730 4:49:04 InnoDB: Initializing buffer pool,size = 128.0M

140730 4:49:04 InnoDB: Completed initialization of buffer pool

140730 4:49:04 InnoDB: highest supported file format is Barracuda.

140730 4:49:04 InnoDB: Waiting for the background threads to start

140730 4:49:05 InnoDB: 5.5.37 started; log sequence number 1595675

140730 4:49:05 [Note] Server hostname (bind-address): ‘0.0.0.0’; port: 3306

140730 4:49:05 [Note] – ‘0.0.0.0’ resolves to ‘0.0.0.0’;

140730 4:49:05 [Note] Server socket created on IP: ‘0.0.0.0’.

140730 4:49:05 [ERROR] Can’t start server : Bind on unix socket: Permission denied

140730 4:49:05 [ERROR] Do you already have another MysqLd server running on socket: /var/run/MysqLd/MysqLd.sock ?

140730 4:49:05 [ERROR] Aborting

140730 4:49:05 InnoDB: Starting shutdown…
140730 4:49:06 InnoDB: Shutdown completed; log sequence number 1595675
140730 4:49:06 [Note] MysqLd: Shutdown complete

解决错误

>“请运行MysqL_upgrade来创建它”=>运行MysqL_upgrade命令输出

root@1bbeb34f3491:/# MysqL_upgrade

Looking for ‘MysqL’ as: MysqL

Looking for ‘MysqLcheck’ as: MysqLcheck

FATAL ERROR: Upgrade Failed

>“你已经在socket上运行了另一个MysqLd服务器”=>不.运行服务MysqL stop什么都不做,运行ps不显示MysqLd.运行ls -a / var / run / MysqLd /表明套接文件不存在.

无论我尝试哪个MysqL容器,最终当我启动MysqL时,出现了相同的错误消息.这几乎可以肯定意味着我的设置出了问题让我感到困惑,因为我认为没有暴露端口或持久存储的Docker容器会与系统中的Docker隔离?

我还尝试使用-d标志运行MysqL容器,然后运行链接到它的新的ubuntu 14.04容器(docker.io run -it -link MysqLMysqL ubuntu:14.04 bash).在Ubuntu容器上,我通过apt-get安装了MysqL-client,并尝试连接到MysqL容器,但这也不起作用.

我的主机系统运行的是Ubuntu 14.04,Docker是通过apt-get安装的,版本是0.9.1.

我不太清楚在这个解释中应该放什么,因为这个问题对我来说似乎很奇怪.如果有什么我错过了请问,我会为你添加.

谢谢,
JamesStewy

编辑
如果有人可以创建一组指令来创建一个MysqL容器和一个链接容器并为它们工作,那么我可以试一试.

使用sameersbn / MysqL

我不相信你可以以交互方式运行它.

docker run --name MysqL -d sameersbn/MysqL:latest@H_301_100@ 
 

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

docker inspect MysqL | grep IPAddres@H_301_100@ 
 

然后你可以连接到那个IP上的MysqL.

猜你在找的Ubuntu相关文章