Я пытался докеризовать свое приложение node js, которое использует mysqldb для баз данных, и у меня возникли проблемы с тем, как докеризовать mysql. Я хочу создать свой собственный образ докера поверх mysql, который при запуске создает базу данных и таблицы, чтобы мое приложение node js могло использовать эти базы данных и таблицу. Ниже приведен код моего пользовательского образа докера mysql.
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 и получаю следующую ошибку
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Буду очень признателен, если кто-нибудь поможет мне определить, какие ошибки я делаю в своем docker файле?
Спасибо,
Вы пробовали композицию вместо того, чтобы складывать все в один контейнер? Обычно докер сочинять можно использовать со стандартными контейнерами и образами для создания настраиваемого приложения. В главе Drupal документа docker compose показано, как связать стандартный контейнер mysql с контейнером drupal для создания приложения, состоящего из двух контейнеров. Хотя drupal - это PHP, и вам нужны nodejs, проблемы (межконтейнерная связь) и решения (--link) аналогичны.






Не могли бы вы предоставить команду
docker run, которую вы используете для запуска образа mysql?