Docker mysql stop с выходом (1)

Я пытался поднять свой MySql в контейнере докеров. Но, он остановился с завершенным кодом (1). Вот как я его запускаю:

docker run --name demo-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest --mount type=bind,source=$(pwd),target=/var/lib/mysql

Вот журнал контейнера

Initializing database
2018-10-12T17:50:42.694183Z 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.
2018-10-12T17:50:42.694277Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.12) initializing of server in progress as process 31
mbind: Operation not permitted
mbind: Operation not permitted
mbind: Operation not permitted
mbind: Operation not permitted
2018-10-12T17:51:10.497527Z 0 [ERROR] [MY-011071] [Server] unknown option '--mount'
2018-10-12T17:51:10.497543Z 0 [Warning] [MY-010952] [Server] The privilege system failed to initialize correctly. If you have upgraded your server, make sure you're executing mysql_upgrade to correct the issue.
2018-10-12T17:51:10.497551Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-10-12T17:51:14.130241Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.

Пожалуйста, помогите мне...

Всего 2 ответа


Синтаксис команды docker run в основном

docker run <docker run options> IMAGE <command and arguments>

Поэтому, когда вы запускаете:

 docker run  --name demo-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d  mysql:latest  --mount type=bind,source=$(pwd),target=/var/lib/mysql 

Параметр --mount после имени изображения, поэтому он передается в качестве аргумента в контейнер. Переместите этот параметр перед mysql:latest и вы будете установлены.


Может получиться лучший ответ, я также использовал Docker для MySQL, но это было какое-то время.

Начать как отдельный контейнер:

docker run -v $PWD:/var/lib/mysql --name demo-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest

Затем присоедините к нему так:

 docker run -i -t demo-db /bin/bash 

Примечание о использовании pwd :

Нет необходимости использовать команду pwd , просто получите переменную оболочки $PWD . Когда вы делаете foo=$(pwd) это своего рода overkill, b / c вы на самом деле запускаете команду pwd в подклассе, чтобы вернуть $PWD .


Есть идеи?

10000