containers-config(5) راهنمای لینوکس containers-config(5)

containers-config - قواعد بارگذاری فایل‌های پیکربندی موتور کانتینر

این سند ترتیب بارگذاری فایل‌های containers.conf(5)، containers-storage.conf(5) و containers-registries.conf(5) را شرح می‌دهد. برای جزئیات بیشتر در مورد ساختار این فایل‌ها به صفحات راهنمای اختصاصی آن‌ها مراجعه کنید.

در مسیرهای زیر، <name> بسته به فایل پیکربندی خاص، به عنوان جای‌بان برای یکی از مقادیر containers، storage یا registries به کار می‌رود.

مسیرها به ترتیب از کمترین تا بیشترین اولویت فهرست شده‌اند (یعنی مسیرهای بعدی بر مسیرهای قبلی اولویت داشته و تنظیمات آن‌ها را بازنویسی می‌کنند؛ برای جزئیات به بخش‌های پایین مراجعه فرمایید).

پیش‌فرض‌های سیستم:

  • /usr/share/containers/<name>.conf
  • /usr/share/containers/<name>.conf.d/
  • /usr/share/containers/<name>.rootful.conf.d/ (تنها زمانی که UID == 0 باشد)
  • /usr/share/containers/<name>.rootless.conf.d/ (تنها زمانی که UID > 0 باشد)
  • /usr/share/containers/<name>.rootless.conf.d/<UID>/ (تنها زمانی که UID > 0 باشد)

تنظیمات جایگزین مدیر سیستم (Admin overrides):

  • /etc/containers/<name>.conf
  • /etc/containers/<name>.conf.d/
  • /etc/containers/<name>.rootful.conf.d/ (تنها زمانی که UID == 0 باشد)
  • /etc/containers/<name>.rootless.conf.d/ (تنها زمانی که UID > 0 باشد)
  • /etc/containers/<name>.rootless.conf.d/<UID>/ (تنها زمانی که UID > 0 باشد)

تنظیمات جایگزین کاربر (User overrides):

  • $XDG_CONFIG_HOME/containers/<name>.conf یا اگر $XDG_CONFIG_HOME مقداردهی نشده باشد $HOME/.config/containers/<name>.conf
  • $XDG_CONFIG_HOME/containers/<name>.conf.d/ یا اگر $XDG_CONFIG_HOME مقداردهی نشده باشد $HOME/.config/containers/<name>.conf.d/

پیش‌فرض‌های سیستم:

  • /usr/local/share/containers/<name>.conf
  • /usr/local/share/containers/<name>.conf.d/
  • /usr/local/share/containers/<name>.rootful.conf.d/ (تنها زمانی که UID == 0 باشد)
  • /usr/local/share/containers/<name>.rootless.conf.d/ (تنها زمانی که UID > 0 باشد)
  • /usr/local/share/containers/<name>.rootless.conf.d/<UID>/ (تنها زمانی که UID > 0 باشد)

تنظیمات جایگزین مدیر سیستم:

  • /usr/local/etc/containers/<name>.conf
  • /usr/local/etc/containers/<name>.conf.d/
  • /usr/local/etc/containers/<name>.rootful.conf.d/ (تنها زمانی که UID == 0 باشد)
  • /usr/local/etc/containers/<name>.rootless.conf.d/ (تنها زمانی که UID > 0 باشد)
  • /usr/local/etc/containers/<name>.rootless.conf.d/<UID>/ (تنها زمانی که UID > 0 باشد)

تنظیمات جایگزین کاربر:

  • $XDG_CONFIG_HOME/containers/<name>.conf یا اگر $XDG_CONFIG_HOME مقداردهی نشده باشد $HOME/.config/containers/<name>.conf
  • $XDG_CONFIG_HOME/containers/<name>.conf.d/ یا اگر $XDG_CONFIG_HOME مقداردهی نشده باشد $HOME/.config/containers/<name>.conf.d/

هیچ مکانی برای پیش‌فرض‌های سیستمی وجود ندارد.

تنظیمات جایگزین مدیر سیستم:

  • %ProgramData%\containers\<name>.conf
  • %ProgramData%\containers\<name>.conf.d\

تنظیمات جایگزین کاربر:

  • %APPDATA%\containers\<name>.conf
  • %APPDATA%\containers\<name>.conf.d\

مکان‌های جستجو به دو دسته فایل تقسیم می‌شوند: فایل‌های اصلی و دایرکتوری‌های افزونه (drop-in).

تنها یک فایل اصلی، یعنی <name>.conf، بارگذاری خواهد شد: فایلی که بالاترین اولویت را داشته و وجود خارجی داشته باشد. اگر هیچ فایل <name>.conf وجود نداشته باشد، هیچ فایل اصلی بارگذاری نمی‌شود که این مورد نیز معتبر است.

پس از فایل اصلی، دایرکتوری‌های افزونه بارگذاری می‌شوند. هر فایل می‌تواند تنظیمات مشخص‌شده در فایل‌های قبلی را بازنویسی کند. فایل‌های درون این دایرکتوری‌ها باید حتماً دارای پسوند .conf باشند، در غیر این صورت نادیده گرفته می‌شوند.

تمامی فایل‌های درون دایرکتوری‌های افزونه به ترتیب لغت‌نگاری (الفبایی) نام فایل مرتب می‌شوند. اگر دو یا چند فایل با نام یکسان وجود داشته باشند، تنها فایلی که دارای بالاترین اولویت است استفاده شده و بنابراین جایگزین فایل پیشین می‌شود.

  • ~~/usr/share/containers/containers.conf~~ (توسط $XDG_CONFIG_HOME/containers/containers.conf جایگزین شده و در نتیجه خوانده نمی‌شود)
  • $XDG_CONFIG_HOME/containers/containers.conf
  • /usr/share/containers/containers.conf.d/00-vendor.conf
  • ~~/etc/containers/containers.conf.d/50-myconf.conf~~ (توسط $XDG_CONFIG_HOME/containers/containers.conf.d/50-myconf.conf جایگزین شده و در نتیجه خوانده نمی‌شود)
  • $XDG_CONFIG_HOME/containers/containers.conf.d/50-myconf.conf
  • /usr/share/containers/containers.conf.d/99-conf.conf

فایل‌های زیر را به همراه محتویات آن‌ها در نظر بگیرید:

~~/usr/share/containers/containers.conf~~ (توسط /etc/containers/containers.conf بازنویسی شده است):

field_1 = a

/etc/containers/containers.conf:

field_2 = b

~~/usr/share/containers/containers.conf.d/10-vendor.conf~~ (توسط $XDG_CONFIG_HOME/containers/containers.conf.d/10-vendor.conf بازنویسی شده است):

field_3 = c

/usr/share/containers/containers.conf.d/99-important.conf:

field_4 = d

/usr/share/containers/containers.rootless.conf.d/50-my.conf:

field_5 = e

$XDG_CONFIG_HOME/containers/containers.conf.d/10-vendor.conf:

# empty

$XDG_CONFIG_HOME/containers/containers.conf.d/33-opt.conf (این فایل خوانده می‌شود اما مقدار field_4 توسط /usr/share/containers/containers.conf.d/99-important.conf بازنویسی می‌شود زیرا 99-important.conf به دلیل نام فایل، دیرتر مرتب می‌شود):

field_4 = user
field_6 = f

اکنون تجزیه این موارد به عنوان کاربری با شناسه UID 1000 منجر به این پیکربندی نهایی می‌شود:

field_2 = b
field_4 = d
field_5 = e
field_6 = f

containers.conf(5), containers-storage.conf(5), containers-registries.conf(5)

راهنمای پیکربندی کانتینرها Containers