2

Недавно мой экземпляр AWS EC2 ubuntu 14.04 переключился с использования тома ebs на новый EFS. Это все прекрасно работает, и я перенес, например, все свои собственные данные облака.

Теперь я хотел переместить мои файлы Docker из var/lib/docker в мой том efs, но когда я это сделал и изменил файл Docker в etc/defaults, docker не может смонтировать ни один контейнер без этой ошибки.

root@aws-kebler:/mnt/efs/docker# docker restart $(docker ps -a -q)
Error response from daemon: Cannot restart container 3e5a2335837a: oci runtime error: exec: "/ui-for-docker": stat /ui-for-docker: no such file or directory

что-то вроде того, что изображение никогда не монтировалось, поэтому я попробовал с нуля и получил ...

root@aws-kebler:/mnt/efs/docker# docker run -d -p 9001:9000 --name docker-ui --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
docker: Error response from daemon: error creating aufs mount to /mnt/efs/docker/aufs/mnt/11bd65bb4cf850a5267ba635c2a015d6f89b7ac5af2662d75aa4ca51d4401726-init: file too large.

Это заставляет меня думать, что в томе EFS есть "странность", заключающаяся в том, что он не "расширяется" при создании или попытке загрузки образа.

Просто ради ухмылки я почистил папку докера на томе EFS и сделал тот же прогон, и получил ту же ошибку о "слишком большом файле"

Просто чтобы быть уверенным, что это том efs, я сделал то же самое, но использовал свой том EBS и никаких проблем вообще… так что да, это как-то связано с томом EFS

вот моя команда монтирования

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).xxxxxxxx.efs.us-west-2.amazonaws.com:/ efs

Любые идеи, почему это происходит или как это исправить.

1 ответ1

0

Может быть, похоже, но в моем случае docker daemon (1.12) был запущен до выполнения монтирования nfs. Создается новая машина в aws, это происходит ... во всяком случае, новый контейнер или другие файлы не могут видеть файлы в этой папке, хотя они явно присутствовали на хосте докера после подключения общего ресурса nfs. Для тестирования мы использовали тупой контейнер, то же изображение, тот же облом, без файлов.

Перезапуск демона docker устранил проблему, потому что только при запуске демона docker сам демон docker перечисляет доступные диски (** и их подпапки **) на хосте. Запуск контейнера не делает этого, он просто запрашивает docker daemon wuzzup.

HTHS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .