Проблемы с настраиваемым образом докера mysql

Я пытался докеризовать свое приложение 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 файле?

Спасибо,

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

brass monkey 02.09.2018 00:32

Вы пробовали композицию вместо того, чтобы складывать все в один контейнер? Обычно докер сочинять можно использовать со стандартными контейнерами и образами для создания настраиваемого приложения. В главе Drupal документа docker compose показано, как связать стандартный контейнер mysql с контейнером drupal для создания приложения, состоящего из двух контейнеров. Хотя drupal - это PHP, и вам нужны nodejs, проблемы (межконтейнерная связь) и решения (--link) аналогичны.

Paul 02.09.2018 01:27
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
312
0

Другие вопросы по теме