монтирование контейнера завершается неудачно после перемещения файлов (образов) Docker на подключенный том AWS EFS NFS

531
DKebler

Недавно мой экземпляр 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 

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

2

1 ответ на вопрос

0
chrome-dome

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

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

HTHS.