Запустите apt-get upgrade -s в контейнере и ожидайте тот же результат, что и при запуске на хосте
Я хотел бы подготовить среду для контейнера Docker таким образом, чтобы при apt-get upgrade -s
выполняется внутри контейнера, его результат такой же, как если бы команда выполнялась снаружи на хосте. Это в контексте и в процессе подготовки к добавлению сборщика текста apt.sh
к существующему Прометею node-exporter
, Я уже использую Kubernetes DaemonSet
управлять такими контейнерами (модулями), как в примере с GitHub prometheus-community/node-exporter-textfile-collector-scripts
,
Судя по его справочной странице, apt-get
работает с файлами в /etc/apt
, /var/cache/apt
, а также /var/lib/apt
, и поэтому мой контейнер монтирует эти данные только для чтения с хоста. В настоящее время мой хост и контейнер работают под управлением Debian 9 (Stretch) и Debian 10 (Buster) соответственно. Я объясняю это, запустив apt-get upgrade -s
вне контейнера и apt-get upgrade -s -t stretch
внутри.
Однако два прогона по-прежнему дают разные результаты. Что мне не хватает?
1 ответ
Для официальной документации докера:
APT-GET
Probably the most common use-case for RUN is an application of apt-get. Because it installs packages, the RUN apt-get command has several gotchas to look out for.
Avoid RUN apt-get upgrade and dist-upgrade, as many of the “essential” packages from the parent images cannot upgrade inside an unprivileged container.
If a package contained in the parent image is out-of-date, contact its maintainers.