andrufka46rus
@andrufka46rus
веб-рукожоп

Что за ошибка докера?

ERROR: for cenergy_mysql_1  Cannot start service mysql: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/etc/localtime\\\" to rootfs \\\"/var/lib/do
cker/overlay2/b2fc4e93fb6a984da426bf602cc593f20fc1b9694a0dbb08c6bdd2144d63b825/merged\\\" at \\\"/var/lib/docker/overlay2/b2fc4e93fb6a984da426bf602cc593f20fc1b9694a0dbb08c6bdd2144d63b825/merged/usr/share/zoneinfo/UCT\\\" caused \\\"not a directory\\\"\"": unknown:
Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type


Пытаюсь стартануть контейнер. Выходит такая борода
  • Вопрос задан
  • 11579 просмотров
Решения вопроса 1
gecube
@gecube
системный администратор, программист... все дела..
ну, все написано - когда монтируете, то можете только файл на файл или каталог на каталог монтировать. Иногда бывает, что если в volume слева указан файл, который на хосте не существует, то докер сходит с ума. И создает вместо него каталог с правами root:root.
Какое может быть решение? Для начала прекратить пользоваться упрощенным синтаксисом -v в docker run или volumes в docker-compose, а использовать расширенный синтаксис mount (который с --mount). Тогда, если на хосте нет нужного файла, то докер контейнер ТУПО не стартанет и будет внятное сообщение об ошибке вроде:

docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /home/local/georg.gaal/formulas.
See 'docker run --help'.


При этом Вы еще бонусом и получаете то, что докер не будет пытаться изменить права на каталог. А создаваемые внутри файлы будут с теми правами, которые установлены внутри контейнера - сплошная лепота. Минус в том, что все необходимые каталоги и файлы для запуска контейнера надо создавать заранее. Т.е. уже коллегам надо отдавать докер-компоуз файл плюс bash-скрипт
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы