У меня есть несколько контейнеров, работающих с Pi4, как определено в файле docker-compose.yml (выдержка ниже). Они собирают данные с аппаратного обеспечения, которое записывает данные в /home/hardware/data/ в контейнере «аппаратное обеспечение». Это успешно передано контейнеру «celery_worker» через именованный том «data».
Моя проблема в том, что мне также нужно, чтобы файлы были доступны на хосте (например, /tmp/hardware_data), потому что они должны быть прочитаны другим приложением на другом компьютере в моей домашней сети.
- /tmp/hardware_data:/home/hardware/data/ не работает.
Я гуглил, читал документацию Docker и смотрел несколько видеороликов на YouTube, но не нашел решения.
celery_worker:
image: celery_worker:latest
container_name: celery_worker
volumes:
- data:/srv/project/hardware/hardware_data/
hardware:
image: hardware:latest
container_name: hardware
volumes:
- data:/home/hardware/data/
volumes:
#to share hardware data
data: {}
ХХХХХХХХХХХХХ Обновление
Совет Конрада по избавлению от именованных томов имел смысл, и мой (распакованный) файл docker-compose.yml теперь выглядит так:
celery_worker:
image: celery_worker:latest
container_name: celery_worker
volumes:
- /tmp/hardware_data:/srv/project/hardware/hardware_data/
hardware:
image: hardware:latest
container_name: hardware
volumes:
- /tmp/hardware_data:/home/hardware/data/
Во время разработки я запускаю Docker как root. Я «коснулся» «тестового файла» в Dockerfile аппаратного контейнера. Если я запускаю контейнеры с томами #, «тестовый файл» создается в /home/hardware/data/ в аппаратном контейнере со следующими разрешениями «-r w-r - -r- - root root .
Когда я запускаю docker-compose.yml с определенными томами, я получаю три пустых каталога (2 в контейнерах и 1 в хосте), т. е. «тестовый файл» аппаратного контейнера отсутствует ни в одном из каталогов. Если я «касаюсь» «нового тестового файла» в любом из каталогов, он используется всеми тремя с теми же разрешениями, что и исходный «тестовый файл»: «- r w- r - - r - - root root».
Исходя из этого, я не вижу, что это проблема с разрешениями
mount /tmp/hardware_data onto /home/hardware/data/
иmount /home/hardware/data/ onto /tmp/hardware_data
? На мой взгляд, они одинаковы. - person bigpangl   schedule 28.07.2020