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

Это может быть проблема сети в то время.

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

Просто попробуйте обновить MAC-адрес и проверить.

1
задан 18 August 2016 в 02:19

5 ответов

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

$ env

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

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

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

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

6
ответ дан 23 May 2018 в 07:03
  • 1
    Я пробовал это без успеха. Поскольку мой экземпляр Ubuntu 16.04 имеет форму контейнера докеров, и я не настроил пользователей, которых я работаю как root, поэтому я использовал переменную XDG_RUNTIME_DIR=/run/root/0 без успеха. Затем я проверил папку /run и обнаружил, что нет подпапки /run/root. В любом случае, я могу получить более подробное сообщение об ошибке? Я посмотрел на systemctl --help, но не смог увидеть способ получения подробных сообщений об ошибках. – Duncan Gravill 18 August 2016 в 18:11
  • 2
    У меня такая же проблема, и это также не помогло решить мою проблему. Вы когда-нибудь задумывались над этим? @ DuncanGravill – Roeland 29 September 2016 в 17:57
  • 3
    @Roeland Да. Я спросил о аналогичном вопросе на SO, который имел более сильный ответ. Также я рекомендую смотреть учебники Self-Paced на веб-сайте Docker. В этих видео объясняется (немного неопределенно), как PID 1, который обычно systemd заменяется в контейнере Docker контейнером Entrypoint . – Duncan Gravill 30 September 2016 в 22:06
  • 4
    Блестяще, спасибо! Мне понадобилось это для запуска / управления пользовательским устройством из системного блока. – Adrian Günter 8 May 2018 в 23:31

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

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

2
ответ дан 23 May 2018 в 07:03
  • 1
    Но это контейнер Ubuntu, который по умолчанию не имеет systemd и не имеет выскочек. – Stefan Lasiewski 31 August 2017 в 01:21
  • 2
    что? ubuntu имеет systemd по умолчанию – knocte 30 January 2018 в 06:36

Внутри контейнера докеров, я думаю, вы можете обновить-rc.d, если вы все еще боретесь с systemd. Я пробовал с update-rd.c, и он работает.

0
ответ дан 23 May 2018 в 07:03

Я получал точно такую ​​же ошибку, а затем успешно запускаю ее с помощью sudo

sudo systemctl status ssh
-1
ответ дан 23 May 2018 в 07:03
  • 1
    вам не нужно sudo для этого. Кажется, это совпадение. Можете ли вы повторить проверку? – Zanna 19 January 2018 в 20:54
  • 2
    @Zanna saif@sr-server:~$ systemctl status ssh Failed to connect to bus: No such file or directory saif@sr-server:~$ sudo systemctl status ssh [sudo] password for saif: ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-01-19 23:38:14 PKT; 4min 4s ago Main PID: 18222 (sshd) Tasks: 15 Memory: 32.7M CPU: 488ms – Saif 19 January 2018 в 22:43
  • 3
    Почему -1? Я только что написал, что сработало для меня. – Saif 19 January 2018 в 22:44
  • 4
    downvote не был моим ... – Zanna 19 January 2018 в 23:37

Попробуйте следующее:

docker run -ti -d --privileged=true images_docker  "/sbin/init"

или

docker run -ti -d --privileged=true images_docker

будет таким же результатом.

Здесь я берусь из документа Docker:

По умолчанию контейнеры Docker «непривилегированы» и не могут, например, запустить демон Docker внутри контейнера Docker. Это связано с тем, что по умолчанию контейнеру не разрешен доступ к каким-либо устройствам, но для «привилегированного» контейнера предоставляется доступ ко всем устройствам (см. Документацию на устройствах групп). Когда оператор выполняет запуск докеры - привилегирован, Docker будет разрешать доступ ко всем устройствам на хосте, а также устанавливать некоторую конфигурацию в AppArmor или SELinux, чтобы позволить контейнеру почти все равно доступ к хосту, как процессы, выполняющиеся за пределами контейнеров на хосте , Дополнительная информация о работе с --privileged доступна в блоге Docker.
-1
ответ дан 23 May 2018 в 07:03
  • 1
    Не могли бы вы объяснить свою команду и разницу с принятым вопросом ? – Melebius 10 May 2018 в 12:55
  • 2
    Добро пожаловать в AskUbuntu! Спасибо, что пытались помочь! Быстрый просмотр документации приводит меня к мысли, что вы допустили ошибку или 2 в этой команде. Если бы вы были так любезны отредактировали и объясните, что вы делаете, и как оно решает проблему, пинги меня, и я вернусь и дам вам возвышение! – Elder Geek 11 May 2018 в 02:13

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

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