Поэтому я пытаюсь создать образ docker, который при запуске запускает базу данных с указанной таблицей c. База данных должна быть доступна на моем компьютере, чтобы я мог подключиться к ней с помощью php. Вот что я попробовал: я создал файл docker:
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD 123
ENV MYSQL_DATABASE users
ENV MYSQL_USER bob
ENV MYSQL_PASSWORD 1234
COPY files/ /docker-entrypoint-initdb.d/
EXPOSE 3306
Файл, который я сопоставляю с контейнером, представляет собой скрипт sql, который находится в каталоге файлов.
create table users (user_id INT NOT NULL AUTO INCREMENT PRIMARY_KEY, name TEXT, pw TEXT);
insert into users (name, pw) values ('bobby', '123456');
insert into users (name, pw) values ('john', 'secret123');
Я хочу создать и запустить контейнер следующим образом:
docker build -t test/test01 .
, а затем:
docker run --name db01 -p3306:3306 -d test/test01
, но когда я пытаюсь go в контейнер, он говорит, что он не работает. Я пытаюсь подключиться к контейнеру следующим образом:
docker exec -it db01 /bin/bash
И мне выдается сообщение об ошибке:
"Error response from daemon: Container e80eb868fb7b39f181f39d1bfd19101fd81db0d65342bce9359936383a1f9cfc is not running"
В чем здесь проблема? Что мне не хватает? Как запустить контейнер и убедиться, что все таблицы созданы и я могу успешно подключиться к своей базе данных?
Это docker журналы:
2020-01-22 23:33:01+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian9 started.
2020-01-22 23:33:01+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2020-01-22 23:33:01+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian9 started.
2020-01-22 23:33:01+00:00 [Note] [Entrypoint]: Initializing database files
2020-01-22T23:33:01.128779Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2020-01-22T23:33:01.128835Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.19) initializing of server in progress as process 45
2020-01-22T23:33:02.931712Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2020-01-22 23:33:05+00:00 [Note] [Entrypoint]: Database files initialized
2020-01-22 23:33:05+00:00 [Note] [Entrypoint]: Starting temporary server
2020-01-22T23:33:05.314735Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2020-01-22T23:33:05.314821Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 95
2020-01-22T23:33:05.705049Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-01-22T23:33:05.706987Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
2020-01-22T23:33:05.720475Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.19' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
2020-01-22 23:33:05+00:00 [Note] [Entrypoint]: Temporary server started.
2020-01-22T23:33:05.878308Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock'
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
2020-01-22 23:33:07+00:00 [Note] [Entrypoint]: Creating database users
2020-01-22 23:33:07+00:00 [Note] [Entrypoint]: Creating user bob
2020-01-22 23:33:07+00:00 [Note] [Entrypoint]: Giving user bob access to schema users
2020-01-22 23:33:07+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/scipt.sql
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AUTO INCREMENT PRIMARY_KEY, name TEXT, pw TEXT)' at line 1