Docker: отредактируйте файл "my.cnf" в остановленном контейнере - PullRequest
0 голосов
/ 08 апреля 2019

После внесения изменений в «my.cnf» я теперь получаю сообщение об ошибке от Kitematic на Mac при попытке запустить контейнер:

mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 19! mysqld: 
        [ERROR] Fatal error in defaults handling. Program aborted!

Я пытался получить доступ к контейнеру через:

docker exec -it [container] bash

... но я получаю ошибку:

Error response from daemon: Container [container] is not running

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

На этом этапе, либо сделать соответствующее редактирование и исправить контейнер, либо каким-либо образом клонировать MySQLданные в другой контейнер были бы идеальными.

1 Ответ

2 голосов
/ 09 апреля 2019

Чтобы исправить my.cnf, вы можете использовать docker container cp. Работает с остановленными контейнерами. Попробуйте

docker container cp [container]:/etc/mysql/my.cnf container-my.cnf

, затем отредактируйте container-my.cnf и скопируйте обратно:

docker container cp container-my.cnf [container]:/etc/mysql/my.cnf

Чтобы использовать существующие данные MySQL с новым контейнером:

docker container inspect -f '{{.Mounts}}' [container]

дает вам имя тома (клавиша volume), где находятся данные. Затем запустите новый контейнер MySQL и подключите том под /var/lib/mysql:

docker container run -d -v [volume_name]:/var/lib/mysql [image]

После этого вы можете удалить старый контейнер (на самом деле вы можете удалить его перед созданием нового)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...