运行 MySQL docker 图片,使用基于 Debian,在 CentOS 7 上

Running MySQL docker image, using a Debian base, on 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 上 运行ning docker,从 MySQL 的 Docker file 我可以看到图像使用的是 Debian 基础。

我也尝试过 运行 前景和背景的图像,但似乎都不起作用。

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

我 运行宁 docker 作为 root。

要事第一。 OS 你运行宁什么并不重要。图像建立在哪个 OS 上并不重要。这就是 Docker 的力量。您可以在 Ubuntu 中使用基于 运行 CentOS 的容器,反之亦然。

如果容器退出,运行在容器内处理时会出现一些错误。 Code 128 太含糊了。要找出真正阻止您 运行ning MySQL 容器的原因,请查看容器日志:

docker logs [containerId]

错误出在 运行 命令本身。应该使用双破折号而不是单破折号来覆盖数据库配置属性。所以正确的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 的提示