Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 3344|Ответ: 1

[Источник] Изменения базового образа Docker для .NET 8

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

Понимайте UID и GID в контейнерах Docker

По умолчанию процесс в контейнере работает с правами корня, и этот корневой пользователь — тот же пользователь, что и корень в машине-хосте. Разве это не страшно, ведь это значит, что как только процесс в контейнере получает нужный шанс, он может управлять всем на машине-носителе!

Ссылка:Вход по гиперссылке виден.

Образ Docker .NET 8

В образе .NET 8 Docker есть два основных изменения, а именно:

  • Image создаёт новый аккаунт приложения и группу, и по умолчанию запускает приложение с этим аккаунтом
  • Переключившись на порт 8080, оказалось, что это порт 80, так как порт 80 является привилегированным, корневые права необходимы (по крайней мере в некоторых местах).


.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 : ошибка 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