我试图运行mysql到修改后的ubuntu映像,其中包括安装Node.js和使用下面的docker文件安装基本的mysql
# 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
使用以下命令运行此服务器时
sudo docker run -p 3306:13306 mysql/dockerfiletest
遇到以下错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
有人可以建议在这里需要更改的内容.我想使用此容器与其他容器链接,该容器本质上运行我的node.js应用程序.
最佳答案
更新:你应该检查暴露的端口号 – 在你的例子中是memcached(11211)的端口,而不是mysql的端口(3306).
无论如何,我认为你可能需要修改你的Dockerfile – 在入口点删除不必要的睡眠:
ENTRYPOINT ["/usr/bin/mysqld_safe"]
然后你应该以这种方式启动你的容器(守护进程模式):
root@machine:/# docker run -d -p 3306:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。