#docker
#docker
Вопрос:
Я запустил экземпляр контейнера, используя изображение postgres. Пока контейнер был запущен, я подключился к нему с помощью
docker exec -it postgres-13.1 bash
Отсюда я отредактировал postgresql.conf
и ввел опечатку, так что попытка перезапустить контейнер немедленно завершается, и в журналах отображаются
FATAL: configuration file "/var/lib/postgresql/data/postgresql.conf" contains errors
Невозможно вызвать сценарий bash с помощью docker exec -it postgres-13.1 bash
, потому что это относится только к запущенному контейнеру.
Какую команду я могу выполнить, чтобы запустить контейнер и перейти непосредственно в оболочку bash вместо попытки запустить сервер базы данных?
Ответ №1:
docker cp
может копировать файлы в (или из) остановленный контейнер. Этого должно быть достаточно для восстановления файла и перезапуска контейнера.
Ответ №2:
Как упоминал Крис, docker cp
команда работает для вашего случая Создайте файл (скажем, правильный-postgresql.conf ) с конфигурацией на вашем компьютере и выполните следующие действия, а затем вы можете запустить свой контейнер, и он работает нормально.
docker cp correct-postgresql.conf <containerId>:/var/lib/postgresql/data/postgresql.conf