Доступный для записи том tmpfs в существующем каталоге в доступном только для чтения контейнере docker, предоставляющий: файловая система только для чтения

#docker #containers

#docker #контейнеры

Вопрос:

Пытаюсь настроить контейнер mysql в docker с установленным для безопасности флагом только для чтения, но сталкиваюсь с этой ошибкой:

[ОШИБКА] Не удалось создать файл блокировки сокета unix /var/run/mysqld/mysqld.sock.lock.

Попытка решить проблему путем монтирования / var / run / mysqld в качестве tmpfs, однако кажется, что пока контейнер доступен только для чтения, монтирование tmpfs также доступно только для чтения.

 docker run --read-only --mount type=tmpfs,destination=/var/run/mysqld,tmpfs-mode=1777 mysql:5 touch /var/run/mysqld/test
touch: cannot touch '/var/run/mysqld/test': Read-only file system
  

Использование монтирования тома вместо tmpfs работает, но это не то, что я хочу делать:

 docker run --read-only --mount destination=/var/run/mysqld mysql:5 touch /var/run/mysqld
  

Тестирование его в несуществующем каталоге также работает:

 docker run --read-only --mount type=tmpfs,destination=/test,tmpfs-mode=1777 mysql:5 touch /test/test
  

И это работает, если вы удалите флаг «только для чтения» из контейнера:

 docker run --mount type=tmpfs,destination=/var/run/mysqld,tmpfs-mode=1777 mysql:5 touch /var/run/mysqld/test
  

Это по дизайну или ошибка, или я пропускаю какие-то настройки?

Версия Docker 19.03.12, сборка 48a66213fe