所以我的最终目标是运行一个MySQL Docker容器(比如来自公共注册表的tutum / mysql),然后将一个Gitlab Docker容器(比如sameersbn / gitlab)链接到它,两个容器都使用持久存储。
然而,我被困在MySQL部分。每次我尝试运行一个预制的MySQL Docker容器(mysql,tutum / mysql和sameersbn / 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 [错误]无法打开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:等待后台主题开始
140730 4:49:05 InnoDB:5.5.37开始;日志序列号1595675
140730 4:49:05 [注意]服务器主机名(bind-address):' 0.0.0.0&#39 ;;港口: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/mysqld.sock?
140730 4:49:05 [错误]中止
140730 4:49:05 InnoDB:开始关机...... 140730 4:49:06 InnoDB:关闭完成;日志序列号1595675 140730 4:49:06 [注意] mysqld:关闭完成
解决错误
root @ 1bbeb34f3491:/#mysql_upgrade
寻找' mysql' as:mysql
寻找' mysqlcheck' as:mysqlcheck
致命错误:升级失败
无论我尝试哪个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
答案 0 :(得分:0)
这对我有用:
docker run -d -p 3306:3306 -e MYSQL_PASS="mypass" tutum/mysql
无需从bash运行脚本,不需要任何聪明的东西。