因此,我的最终目标是运行一个MySQL Docker容器(例如,公共注册表中的tutum / mysql),然后将一个Gitlab Docker容器(例如sameersbn / gitlab)链接到该容器,这两个容器都使用持久性存储。
但是,我坚持使用MySQL。每次我尝试运行如下所示的预制MySQL Docker容器(mysql,tutum / mysql和sameersbn / mysql)时,都会得到以下输出。
脚步
这只是获取以下错误消息的一种方法。
docker.io pull tutum / mysql:最新
docker.io运行-it tutum / mysql bash
附加到新容器后,运行“ /run.sh”(根据tutum / mysql dockerfile)
此时,“等待确认MySQL服务启动”消息不断重复。
在这一点上,如果我取消“ /run.sh”命令并自己启动MySQL,则会收到以下错误消息。
输出:
root @ 1bbeb34f3491:/#mysqld
140730 4:49:04 [警告]不建议使用唯一的选项前缀key_buffer而不是key_buffer_size,并且在以后的版本中将删除它。请改用全名。
140730 4:49:04 [警告]不建议使用唯一的选项前缀myisam-recover代替myisam-recover-options,并将在以后的版本中将其删除。请改用全名。
140730 4:49:04 [注意]插件“ FEDERATED”已禁用。
mysqld:表'mysql.plugin'不存在
140730 4:49:04 [ERROR]无法打开mysql.plugin表。请运行mysql_upgrade创建它。
140730 4:49:04 InnoDB:InnoDB内存堆已禁用
140730 4:49:04 InnoDB:互斥体和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:支持的最高文件格式是梭子鱼。
140730 4:49:04 InnoDB:等待后台线程启动
140730 4:49:05 InnoDB:5.5.37开始; 日志序列号1595675
140730 4:49:05 [Note]服务器主机名(绑定地址):'0.0.0.0'; 端口:3306
140730 4:49:05 [Note]-'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/mysqld.sock?
140730 4:49:05 [ERROR]中止
140730 4:49:05 InnoDB:正在启动关机... 140730 4:49:06 InnoDB:已完成关机; 日志序列号1595675 140730 4:49:06 [注意] mysqld:关闭完成
解决错误
“请运行mysql_upgrade创建它” =>运行mysql_upgrade命令,输出
root @ 1bbeb34f3491:/#mysql_upgrade
寻找“ mysql”为:mysql
寻找“ mysqlcheck”为:mysqlcheck
严重错误:升级失败
“您是否已经在套接字上运行了另一个mysqld服务器” =>否。运行服务mysql stop不会执行任何操作,而运行ps不会显示mysqld。运行ls -a / var / run / mysqld /表示套接字文件不存在。
无论我尝试使用哪种MySQL容器,最终当我启动MySQL时,都会出现相同的错误消息。这几乎肯定意味着我的设置存在问题,这使我感到困惑,因为我认为没有暴露端口或持久性存储的Docker容器会与安装Docker的系统隔离吗?
我还尝试过运行带有-d标志的MySQL容器,然后运行链接到它的新的ubuntu 14.04容器(docker.io run -it --link mysql:mysql ubuntu:14.04 bash)。在Ubuntu容器上,我通过apt-get安装了mysql-client,并尝试在MYSQL_PORT_3306_TCP_ADDR的IP地址上连接到MySQL容器,但这也不起作用。
同样,问题可能是我不了解Docker的工作方式。如果是这种情况,有人可以创建一组步骤来使用Docker索引上的一个MySQL容器,然后将一个容器链接到可以连接的容器。这也将有助于查看我的Docker安装是否存在问题(或其他导致此问题的未知问题)。
我的主机系统正在运行Ubuntu 14.04,而Docker是通过apt-get安装的,版本是0.9.1。
我不太确定要在解释中加上什么,因为这个问题对我来说似乎很奇怪。如果有什么我想念的,请询问,我会为您添加。
谢谢,JamesStewy