mysql 的 docker container

2014-07-28 13:46:12 +08:00
 final0pro
刚接触docker和mysql,想建立一个docker container,里面装个mysql。程序可以直接连接ontainer里的mysql。

这是Dockerfile
FROM ubuntu:14.04
# install mysql
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server
ADD entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 3306

这是`entrypoint.sh`

#!/bin/bash
mysql -uroot -e 'UPDATE mysql.user SET password=PASSWORD("rootpass") WHERE user="root"'
mysql -uroot -e 'FLUSH PRIVILEGES'

安装的时候好像出了问题,运行`sudo docker build -t test/devenv .`
Setting up mysql-server-5.5 (5.5.38-0ubuntu0.14.04.1) ...
invoke-rc.d: policy-rc.d denied execution of stop.
invoke-rc.d: policy-rc.d denied execution of start.

执行`sudo docker run -d -p 3306:3306 test/devenv`

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c0bfb09a8a0 test/devenv:latest /entrypoint.sh /bin/ 7 seconds ago Exited (1) 6 seconds ago berserk_nobel

执行`sudo docker run -i -t ubuntu /bin/bash`

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

大神们我这是要怎么修改?谢谢!


http://stackoverflow.com/questions/24988947/install-mysql-in-docker-and-expose-mysql-service-to-outside
6486 次点击
所在节点    程序员
16 条回复
msg7086
2014-07-28 16:11:28 +08:00
看上去没什么问题。你能连接mysql端口试试吗?
jamesxu
2014-07-28 17:16:21 +08:00
jamesxu
2014-07-28 17:18:52 +08:00
jamesxu
2014-07-28 17:19:34 +08:00
额,贴的好难看
final0pro
2014-07-28 22:57:54 +08:00
@msg7086 container 已经终止了
final0pro
2014-07-28 22:58:20 +08:00
@jamesxu 好多疑问lol。我先看看
xdays
2014-07-29 13:13:18 +08:00
final0pro
2014-07-30 08:08:37 +08:00
@xdays 对啊。感觉和你的差不多。但是为什么我的mysql安装之后不能正常启动与关闭呢。而且我一定要chmod那个script。。为啥呢T_T
imlonghao
2014-07-30 10:18:58 +08:00
我昨晚搭建了一个myswl容器,没用dockerfile,bash进去安装的。
安装步骤没看网上乱七八糟的教程,看mysql.org上面的东西安装的。
安装后,我commit成一个images,然后run base/mysql /bin/sbin/mysqld_safe
接下来的事情就是mysql容器和web容器之间link的事情了
imlonghao
2014-07-30 10:19:16 +08:00
mysql*
imlonghao
2014-07-30 10:20:02 +08:00
/usr/sbin/mysqld_safe*
final0pro
2014-07-30 10:26:09 +08:00
@imlonghao 我现在能跑起来。。。只是不懂为什么
1. 安装mysql之后无法正常启动
2. service mysql stop之前要sleep一下
imlonghao
2014-07-30 10:34:19 +08:00
下面说的话我是猜的...
1/无法正常启动是run的时候么?docker logs ID,应该可以看到/usr/sbin/mysqld_safe启动日志的。
2/留点时间给上面的语句执行么?不确定
final0pro
2014-07-30 10:43:49 +08:00
@imlonghao

1. 我的理解是apt-get install mysql的时候,会启动mysql服务
但是在apt-get install的时候报错了-> denied start & stop

是因为container的原因嘛?!。。。
imlonghao
2014-07-30 10:46:17 +08:00
原生ubuntu:14.04貌似直接apt安装mysql-server会出现问题
你先看mysql.org 里面有个deb 先安装这个deb 再apt安装就好了
final0pro
2014-07-30 10:58:13 +08:00
@imlonghao 我已经试过了lol,直接在14.04里面运行那个sh一点问题都没有。。。没有报错,也不需要使用sleep 5。 不过我去看看那个deb。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124864

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX