Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3344|Відповідь: 1

[Джерело] Зміни базового образу Docker для .NET 8

[Копіювати посилання]
Опубліковано 23.12.2023 17:30:10 | | | |
До .NET 8 контейнери за замовчуванням працювали як root, і починаючи з .NET 8, усі наші образи контейнерів Linux містили не-кореневих користувачів. Ви зможете розміщувати .NET-контейнери з одним рядком коду як неroot-користувач. Ця зміна на рівні платформи зробить ваш додаток більш захищеним і зробить .NET однією з найзахищеніших екосистем розробників. Це невелика зміна, але вона має великий вплив на глибину захисту.

Розумійте UID та GID у контейнерах Docker

За замовчуванням процес у контейнері виконується з правами кореневого користувача, і цей кореневий користувач є тим самим користувачем, що й корінь у хост-машині. Хіба це не страшно, бо це означає, що коли процес у контейнері має належний шанс, він може контролювати все на хост-машині!

Посилання:Вхід за гіперпосиланням видно.

Образ .NET 8 Docker

Існує дві основні зміни у образі .NET 8 Docker, а саме:

  • Image створює новий акаунт додатку та групу, і за замовчуванням запускає додаток із цим акаунтом
  • Переключившись на порт 8080, виявилося, що це порт 80, оскільки порт 80 є привілейованим, root rights потрібні (принаймні в деяких місцях).


Адреса вихідного коду зображення .NET Docker:Вхід за гіперпосиланням видно.

Залежності такі:

aspnet:8.0-bookworm-slim -> dotnet/runtime-8.0.0-bookworm-slim-amd64 -> dotnet/runtime-deps-8.0.0-bookworm-slim-amd64 -> amd64/debian:bookworm-slim

dotnet/runtime-deps-8.0.0-bookworm-slim-amd64 виглядає так:

Як показано нижче:



Використовуйте обліковий запис додатку, щоб ввести базове зображення, і команда виглядає так:

Виведіть поточні змінні користувача та середовища, як показано на наступному рисунку:



Посилання:Вхід за гіперпосиланням видно.

Файл Dockerfile

Якщо вам потрібно упакувати свій проєкт у образ Docker, потрібно створити нову підтримку контейнера .NET 8 Docker, і стандартна конфігурація файлу Dockerfile середовища Linux виглядає так:

Якщо встановити системний часовий пояс у Dockerfile, то наступний код:

Помилка «Відмовлено у дозволі» може виникнути наступним чином:

4>F:\itsvse\Dockerfile : error CTC1014: #21 [фінальна 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : помилка CTC1014: #21 0.314 ln: не вдалося створити символічне посилання '/etc/localtime': Дозвіл відхилено
4>F:\itsvse\Dockerfile : помилка CTC1014: #21 ПОМИЛКА: процес "/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone" не завершився успішно: код виходу: 1
4>F:\itsvse\Dockerfile : помилка CTC1014: ------
4>F:\itsvse\Dockerfile : помилка CTC1014: > [фінальна 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : помилка CTC1014: #21 0.314 ln: не вдалося створити символічне посилання '/etc/localtime': Дозвіл відхилено
Використайте root-акаунт, щоб встановити часовий пояс, потім поверніться до акаунта додатку і змініть його наступним чином:

(Кінець)





Попередній:.NET/C# для збору методу ToLookup
Наступний:PHP отримує всю інформацію про заголовок
 Орендодавець| Опубліковано 23.12.2023 17:31:55 |
Рекомендується два інструменти для аналізу шару зображень Docker
https://www.itsvse.com/thread-10063-1-1.html
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com