自定义mysql docker映像的问题
我一直在尝试dockerize我的node js应用程序,它利用mysqldb作为数据库,我遇到了如何dockerize mysql的问题。我想在mysql上构建我的自定义docker映像,运行mysql时创建数据库和表,以便我的NodeJS应用程序可以使用这些数据库和表。下面是我自定义mysql docker映像的代码自定义mysql docker映像的问题,mysql,docker,Mysql,Docker,我一直在尝试dockerize我的node js应用程序,它利用mysqldb作为数据库,我遇到了如何dockerize mysql的问题。我想在mysql上构建我的自定义docker映像,运行mysql时创建数据库和表,以便我的NodeJS应用程序可以使用这些数据库和表。下面是我自定义mysql docker映像的代码 FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD root ENV MYSQL_DATABASE degreeclearencedatabase
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD root
ENV MYSQL_DATABASE degreeclearencedatabase
ENV MYSQL_USER root
ENV MYSQL_PASSWORD 123456
COPY ./sqlscripts/ /docker-entrypoint-initdb.d/
EXPOSE 3306
CMD ["mysqld"]
下面是我的sql脚本
CREATE TABLE employees (
first_name varchar(25),
last_name varchar(25),
department varchar(15),
email varchar(50)
);
在构建此映像时,我得到了以下日志
root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
现在,当我运行该自定义图像的容器时,我无法登录到mysql,并出现以下错误
无法通过套接字连接到本地MySQL服务器
“/var/run/mysqld/mysqld.sock”
如果有人帮助我识别docker文件中的错误,我会非常感激
谢谢,您能否提供运行mysql映像所使用的
docker run
命令?您是否尝试过合成,而不是将所有内容集中到一个容器中?通常可以与标准容器和图像一起使用,以实现自定义应用程序。docker compose文档的Drupal一章展示了如何将标准mysql容器链接到Drupal容器,以创建由2个容器组成的应用程序。虽然drupal是PHP,您需要nodejs,但关注点(容器间通信)和解决方案(--link)是相似的。