Как запустить команду systemctl внутри контейнера Docker?

Я хотел бы запустить контейнер докеров, который будет иметь возможность запускать команды systemctl на своем хосте.

После этого вопроса я не нашел решения, которое подойдет мне.

У меня нет жестких ограничений на базовый образ докера, поэтому я использую образ докера ubuntu-16.04 для ubuntu- Хост 16.04 и образ докера ubuntu-18.04 для хоста ubuntu-18.04 полностью приемлемы.

0
задан 3 December 2020 в 19:04

1 ответ

Спасибо, ofirule

Попробовал ваше решение на debian:10, ваше решение эффективно позволяет запускать systemctl, но не позволяет видеть/контролировать системные процессы. Чтобы это работало, каталог /sys/fs/cgroup также должен быть смонтирован как том:

docker run -it --rm -v /bin/systemctl:/bin/systemctl -v /run/systemd/system:/run/systemd/system -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket -v /sys/fs/cgroup:/sys/fs/cgroup debian:10 systemctl --no-pager status

С его помощью я могу управлять службами systemd хоста и даже выполнять выключение/перезагрузку через systemd.

Похоже, это характерно для Debian 10 и не требуется для Ubuntu 18.04. Другим версиям Debian/Ubuntu он может понадобиться, а может и не понадобиться.

1
ответ дан 27 January 2021 в 09:39

Другие вопросы по тегам:

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