Intereting Posts
Могу ли я скрывать запущенные приложения из пусковой установки единства? Восстановить VLC 1.x после установки VLC 2.x Как получить уведомление, когда другие пользователи войдут в «мою» систему? Как я могу изменить разрешение Avadon: Черная крепость Как настроить Dropbox на сервере Ubuntu? Устраняет ли установка нескольких рабочих окружений производительность? Беспроводной доступ к Интернет-порту / нисходящему порту Wired Router через ubuntu 14.04 LTS Как получить версию приложения из командной строки? .exe-файл, созданный с помощью программирования C через gcc-компилятор, не выполняется Как проверить, использует ли Ubuntu графическую карту NVIDIA? Как установить Synfig Studio в 12.04? Невозможно изменить предпочтения gedit, а настройки терминала не сохраняются Завершение бафа не работает у корневого пользователя Как заставить Postfix использовать новый IP-адрес? Возможно ли использовать файл crontab, содержащий 1k + строки расписаний?

systemctl не удалось подключиться к bus-docker ubuntu: контейнер 16.04

Я пытаюсь использовать команду systemctl в контейнере ubuntu:16.04 docker. У меня есть следующая команда …

 systemctl status ssh 

Однако я получаю ошибку …

 Failed to connect to bus: No such file or directory 

Почему это не работает? Это связано с тем, что Ubuntu работает в контейнере докеров? Как я могу заставить systemctl работать правильно?

Другие сообщили об аналогичной проблеме. Запустите терминал и введите:

 $ env 

Вы видите переменную окружения?

 XDG_RUNTIME_DIR=/run/user/`id -u` 

Если id -u заключен в обратные линии, а не одинарные кавычки. Эта переменная переинтерпретируется в число, обычно 1000 для обычных пользователей, и 0 для суперпользователя (sudo).

Если переменная среды XDG_RUNTIME_DIR не существует, ее необходимо создать. Полное обсуждение в ответах systempad .

Я предполагаю, что вы запускаете свой контейнер для докеров с чем-то вроде

 docker run -t -i ubuntu:16.04 /bin/bash 

Проблема в том, что ваш PID-процесс инициализации 1 есть /bin/bash , а не systemd. Подтвердите с помощью ps aux .

В дополнение к этому вам не хватает dbus, и это будет способ общения. Здесь появляется сообщение об ошибке. Но поскольку ваш PID 1 не является системным, это не поможет установить dbus.

Лучше всего было бы подумать, как вы планируете использовать докер. Не полагайтесь на systemd в качестве диспетчера процессов, но при этом контейнер-докер запускает нужное приложение на переднем плане.

Возможно, вы не используете systemd , который по умолчанию является init от 16.04. Если вы обновили с 14.04, вы, скорее всего, все еще используете выскочку , и результат запуска команды systemctl – это результат, который вы получили.

См. Мой ответ на systemctl: comand not found 16.04 server for more.