在CentOS7上使用Debian库运行MySQL docker镜像

时间:2017-10-31 10:13:47

标签: mysql amazon-web-services docker debian centos7

我已从docker hub中提取了MySQL图像并尝试使用

运行它
docker run (-i) (-t) -d -p 3306:3306 --name test-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:latest —innodb_buffer_pool_size=1G —character-set-server=utf8 —collation-server=utf8_general_ci —lower_case_table_names=1

但容器会立即退出。 docker ps的输出为空,而docker ps -a的输出为:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
93ffbf44b3c6        mysql:latest        "docker-entrypoint..."   9 seconds ago       Exited (127) 8 seconds ago                       test-mysql

docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
centos/mysql-56-centos7   latest              1d5bc23ca83b        25 hours ago        401MB
mysql                     latest              11615e225c92        5 days ago          408MB

我在AWS上的CentOS上运行docker,从MySQL Docker file我可以看到该图像使用的是Debian库。

我还尝试在前景和背景上运行图像,但似乎都不起作用。

我也试过使用CentOS base,但即使这样也会立即退出。

我以root身份运行docker。

2 个答案:

答案 0 :(得分:2)

首先要做的事情。你正在运行什么操作系统并不重要。构建映像的操作系统无关紧要。这就是Docker的力量。您可以在Ubuntu中运行基于CentOS的容器,反之亦然。

如果容器已退出,则在容器内运行进程时会出现一些错误。代码128太模糊了。要找出真正阻止您运行MySQL容器的内容,请查看容器日志:

docker logs [containerId]

答案 1 :(得分:1)

错误发生在运行命令本身上。应该使用双重而不是单个破折号来覆盖数据库配置属性。所以正确的docker run命令如下

docker run -d -p 3306:3306 --name test-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:latest --innodb_buffer_pool_size=1G --character-set-server=utf8 --collation-server=utf8_general_ci --lower_case_table_names=1

感谢提示@Sergey Kovalev