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

时间:2017-12-04 19:43:49

标签: mysql docker dockerfile

我正在尝试创建一个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脚本时,我只收到密码错误。感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

与大多数官方docker镜像一样,您可以通过入口点配置容器。

它记录在mysql docker page上。您可以使用MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_USERMYSQL_PASSWORD来配置mysql实例。

您将通过-e环境变量设置此变量,docker文件中包含environmentsdocker-compose.yml选项。

您可以在here中看到在/docker-entrypoint-initdb.d/ image中复制的文件(.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