【问题标题】:How to start mysql server in docker container如何在 docker 容器中启动 mysql 服务器
【发布时间】:2015-08-10 11:59:33
【问题描述】:

我正在创建 docker 容器,基础镜像是 ubuntu:14.04。我必须在该容器中启动 mysql 服务器,然后我必须创建数据库,并且必须向用户授予权限。 Docker 对我来说是新的。我尝试了很多,但每当我转到该图像并检查 mysql 服务器是否正在运行时仍然如此。每次我得到的是 mysql 服务器停止并且我的数据库也没有创建。 这是我的 dockerfile

FROM ubuntu:14.04
MAINTAINER <name> <emailid>
RUN sudo apt-get update
RUN sudo apt-get install -y apache2 mysql-server libapache2-mod-auth-mysql php5-mysql php5 git
RUN sudo apt-get install -y vim
CMD sudo /usr/sbin/mysqld -u mysql

我尝试了很多,但我无法在 docker 映像中运行 mysql 服务器。

【问题讨论】:

  • 您是否按照官方MySQL docker hub 页面上的说明进行操作?
  • 我没有得到。我在容器中安装了mysql,然后我做了CMD sudo service mysql restart,那为什么它没有启动sql server。我也关注了“stackoverflow.com/questions/25135897/…”,还是一样。
  • 你读过 Docker 用户指南吗?用 CMD 启动的必须是一个持续运行的进程,例如:“while true; do date; sleep 10; done”,或“/usr/sbin/apache2ctl -D FOREGROUND”,或“/usr/sbin/ mysqld -u mysql”。简单地运行“service mysqld restart”只会重启服务然后返回,所以docker容器停止。
  • mgor,我这样做了,仍然没有运行 mysql。
  • 分享你的 Dockerfile。

标签: mysql docker


【解决方案1】:

您是否手动将其安装在您的容器中?

你为什么不简单地使用:

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=mySchema mysql:5

这将启动一个名为 mysql 的容器,该容器运行一个 mysql 守护程序,将默认 root 密码设置为 secret,创建一个名为 mySchema 的新模式并将 MySQL 端口 3306 暴露给客户端,以便他们可以连接。

然后您可以使用具有指定密码secret 的root 用户与任何MySQL 客户端连接,并在创建的模式mySchema 中创建您的表。

【讨论】:

  • 我也试过了,它卡在这里 150810 11:43:38 [注意] - '0.0.0.0' 解析为 '0.0.0.0'; 150810 11:43:38 [注意] 在 IP 上创建的服务器套接字:'0.0.0.0'。 150810 11:43:38 [Note] 事件调度程序:加载 0 个事件 150810 11:43:38 [Note] mysqld:准备连接。版本:'5.5.45' 套接字:'/tmp/mysql.sock' 端口:3306 MySQL 社区服务器(GPL)
  • 您是否尝试连接到它?它说准备连接
  • 我为什么要新建一个容器。我必须创建一个需要它的图像,然后在我必须部署该图像之后。这不可能在创建该图像时启动 sql 并创建 db 和其他东西。
  • 因为在容器实例中你将拥有正在运行的 MySQL 守护进程。该图像仅包含磁盘上的文件(如 tar 存档)。
  • 即使我这样做了,那么那个 mysql 守护进程正在我的本地机器上运行,部署的映像将如何通信?
【解决方案2】:

在 docker 容器中设置 druid 集群时,我在 ubuntu :14.04 遇到了类似的问题,使用 CMD 启动 mysql 为我修复了它。

CMD mysql 启动\

德鲁伊相关的东西

&& mysql stop

【讨论】:

    【解决方案3】:

    docker exec -it container_name/id bash
    service mysql status 查看服务状态
    service mysql start 启动mysql服务

    【讨论】:

      猜你喜欢
      • 2019-10-25
      • 2019-03-30
      • 2016-12-16
      • 2014-09-02
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      • 2013-08-05
      • 2017-06-04
      相关资源
      最近更新 更多