通过Docker运行mysql脚本时出错?

我正在尝试创build一个docker容器,它将运行一个生成数据库然后表的mysql脚本。 我的Dockerfile看起来像这样:

FROM mysql:latest WORKDIR / ADD . / EXPOSE 3306 CMD mysql -u "root" -proot < "schema.sql" 

但是,当我运行它我得到以下错误信息:

 mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

当我运行SQL脚本时,我只收到密码错误。 感谢您的帮助!

像大多数官方docker图像一样,您可以通过入口点来configuration容器。

它被logging在mysql docker页面上 。 你可以使用MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_USERMYSQL_PASSWORD来configurationmysql实例。

您将通过docker-compose.yml文件中的-edocker-compose.ymlenvironments选项的环境variables来设置此variables。

你可以在这里看到复制在/docker-entrypoint-initdb.d/映像中的文件(.sh,.sql,.sql.gz)将在启动过程中运行。

所以你可以这样写Dockerfile:

 FROM mysql:latest COPY schema.sql /docker-entrypoint-initdb.d/ # No need to override CMD default command of mysql image