Могу ли я изменить дату и время в контейнере Windows Docker?

Я пытаюсь протестировать программу, которая экспортирует файл через определенные промежутки времени. Я подумал об использовании контейнера докеров, чтобы дать желаемое время и не использовать системное время. Дело в том, что мне не хватает прав на изменение времени контейнеров со следующим сообщением об ошибке.

PS C:\usr\src\app> Set-Date -Date (Get-Date).AddDays(3)
Set-Date : A required privilege is not held by the client
At line:1 char:1

Можно ли сделать в контейнере докеров Windows? Мое базовое изображение - mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019

Заранее спасибо!


person Manolis    schedule 24.07.2020    source источник


Ответы (1)


Я подозреваю, что вы здесь столкнулись с тем, что последние версии контейнера Windows теперь устанавливают пользователя как обычного пользователя, а не администратора, поэтому, когда контейнер работает, ваш пользовательский контекст не имеет разрешения на изменение системной даты.

Вы должны иметь возможность обойти это, изменив свой Dockerfile, чтобы указать ему использовать пользователя с правами администратора, например, так:

USER ContainerAdministrator

Имейте в виду, конечно, что это увеличивает риски безопасности, так как теперь все процессы запускаются от имени администратора, но если вы используете контейнер только локально (не запускаете веб-сервер или что-то еще), все должно быть в порядке.

person CodedBeard    schedule 28.07.2020
comment
Спасибо за ваш ответ! В настоящее время кажется, что я являюсь администратором контейнера пользователя C:\usr\src\app>whoami user manager\containeradministrator - person Manolis; 29.07.2020