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

我已经从Docker集线器中取出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文件中我可以看到该映像使用了Debian基础。

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

我也尝试过使用CentOS基础 ,但即使这样也立即退出。

我以root身份运行docker。

首先是事情。 无所谓你正在运行的操作系统。 不pipebuild立在哪个操作系统上。 这就是Docker的力量。 你可以在Ubuntu中运行基于CentOS的容器,反之亦然。

如果容器退出,在容器中运行进程时出现一些错误。 Code 128太模糊了。 要找出真正阻止你运行MySQL容器的东西,看看容器日志:

docker logs [containerId]

错误是在运行命令本身。 应该使用Double而不是单个破折号来覆盖数据库configuration属性。 所以正确的docker运行命令是以下

 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