configurationmysql / mysql-server dockerfile的问题

我是第二年应用计算机科学专业的学生,​​在configurationmysql docker时遇到一些问题。 作为一个任务,我们必须创build2个docker图像(1与Apache / PHP和一个简单的PHP网页和另一个与MySQL)。 我已经创build了apache / php docker,这并不困难,但是我对mysql的一个很大的争议。

./Dockerfile ./test.sql 

Dockerfile

 FROM mysql/mysql-server ENV MYSQL_ROOT_PASSWORD=lindert RUN mkdir /usr/sql RUN chmod 644 /usr/sql ADD test.sql /usr/sql/test.sql run MYSQL -u root -p${MYSQL_ROOT_PASSWORD} -e "CREATE DATABASE \ shippingdb" && mysql -u root -p${MYSQL_ROOT_PASSWORD} shippingdb < /usr/sql/test.sql 

当我运行“dockerbuild设”。 这个错误popup:

 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/lib/mysql/mysql.sock' (2) 

我不知道如何解决这个问题,现在我已经用googlesearch了3个小时了,但是我还没有find答案,如果有人能帮忙的话,我会很高兴的。 谢谢!

将你的sql文件挂载到“/docker-entrypoint-initdb.d”path,它将被导入。 把你的'CREATE DATABASE'调用放在sql文件中

IE:你的工作/根目录中的Dockerfile和sql文件

 FROM mysql/mysql-server ENV MYSQL_ROOT_PASSWORD=lindert RUN mkdir /usr/sql RUN chmod 644 /usr/sql VOLUME ./ /docker-entrypoint-initdb.d 

这是在官方的mysql镜像的docker hub页面上提到的https://hub.docker.com/_/mysql/