Задать вопрос

Как изменить дату в docker container?

Требуется в контейнере выставить 2027 год, ос - debian 8 ,
на команду
date --set 2027-12-16
выдает
date: cannot set date: Operation not permitted

Или следует изменить время на хост-машине? Хотя это крайне не желательно.

UPD. Дабы отсечь варианты ответов связанных с правами вот скрин терминала
95ad661c941941f5907de46924b5eded.png
  • Вопрос задан
  • 5882 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
stanislav-belichenko
@stanislav-belichenko
Backend PHP Developer
Возможно, стоит делать это из под root или с помощью su/sudo? ;-)

Источник:
That's not possible with Docker. Docker uses the same clock as the outside kernel. What you need is full virtualization which emulates a complete PC.

The sudo fails because it only makes you root of the virtual environment inside of the container. This user is not related to the real root of the host system (except by name and UID) and it can't do what the real root could do.

In you use a high level language like Python or Java, you often have hooks where you can simulate a certain system time for tests or you can write code which wraps "get current time from system" and returns what your test requires.

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

Так что, судя по всему, ваш путь - это либо хаки в той среде, которую вы хотите проверить с измененной датой, либо использование более полноценной виртуализации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Может это вам поможет
manpages.ubuntu.com/manpages/trusty/man1/faketime....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы