首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在docker容器上安装Mysql

在docker容器上安装Mysql
EN

Stack Overflow用户
提问于 2014-02-10 14:19:24
回答 2查看 11.2K关注 0票数 6

我正在尝试运行mysql到修改后的ubuntu镜像,其中包括安装Node.js和基本mysql安装使用以下docker文件

代码语言:javascript
复制
# Memcached

# use the ubuntu base image provided by dotCloud
FROM ubuntu/mysqlbase
MAINTAINER Hitesh

# make sure the package repository is up to dat//e
#RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
#RUN apt-get update

#RUN apt-get install -y mysql-client
#ENTRYPOINT ["wc", "-l"]
#ENTRYPOINT ["echo", "running"]
ENTRYPOINT mysqld_safe & sleep 10
#RUN mysql
RUN echo "[mysqld]"                       >/etc/mysql/conf.d/docker.cnf
RUN echo "bind-address   = 0.0.0.0"      >>/etc/mysql/conf.d/docker.cnf
RUN echo "innodb_flush_method = O_DSYNC" >>/etc/mysql/conf.d/docker.cnf
RUN echo "skip-name-resolve"             >>/etc/mysql/conf.d/docker.cnf
RUN echo "init_file = /etc/mysql/init"   >>/etc/mysql/conf.d/docker.cnf
RUN echo "GRANT ALL ON *.* TO root@'%'" >/etc/mysql/init

USER root

EXPOSE 3306

在使用以下命令运行此服务器时

代码语言:javascript
复制
sudo docker run -p 3306:13306 mysql/dockerfiletest

遇到以下错误

代码语言:javascript
复制
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

有人能建议一下这里需要修改的地方吗?我想使用这个容器来链接运行我的node.js应用程序的其他容器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-10 20:27:25

更新:你应该检查暴露的端口号-在你的例子中是memcached (11211)的端口,而不是mysql (3306)的端口。

无论如何,我认为你可能需要修改你的Dockerfile --删除入口点中不必要的睡眠:

代码语言:javascript
复制
ENTRYPOINT ["/usr/bin/mysqld_safe"]

然后你应该这样启动你的容器(守护进程模式):

代码语言:javascript
复制
root@machine:/# docker run -d -p 3306:<host port> <image id>
票数 2
EN

Stack Overflow用户

发布于 2014-03-14 02:17:38

答案已经被接受,但我认为如果您将“&”更改为“&&”,您可以将睡眠状态保留在入口点。不确定docker是解析入口点还是只执行入口点,但bash对待'&‘的方式与对待'&&’的方式非常不同。

代码语言:javascript
复制
ENTRYPOINT mysqld_safe && sleep 10
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21670306

复制
相关文章

相似问题

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