Образ docker archlinux: Система не была загружена с systemd в качестве системы инициализации (PID 1).Не может работать - PullRequest
0 голосов
/ 04 марта 2019

Я использую официальное изображение archlinux / base из docker hub.

Я пытаюсь использовать systemctl, и он говорит.

$ docker run --rm -it ac16c4b756ed systemctl start httpd     
System has not been booted with systemd as init system (PID 1). Can't operate.

Как решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Хорошо, "systemctl" ничего не делает сам по себе, но попросит демон systemd выполнить какую-то задачу.Он обычно общается с ним с помощью розетки.Таким образом, демон systemd уже должен быть запущен.Существуют некоторые базовые образы, которые на самом деле запускают systemd как PID-1, если это необходимо.

Лично я бы не рекомендовал этого делать.Если вам действительно нужно придерживаться запущенных команд systemctl, вы также можете попробовать использовать скрипт docker-systemctl-replace в этой операционной системе.Он также может служить PID-1 контейнера.

0 голосов
/ 04 марта 2019

Если ваша цель - запустить веб-сервер Apache (httpd), вы должны использовать httpd image .

Обычно контейнеры Docker предназначены для запуска одного процесса.Таким образом, вы обычно не проектируете контейнер для запуска чего-то вроде systemd в качестве корневого процесса, а затем запускаете httpd как дочерний процесс.Вы бы просто запустили httpd прямо на переднем плане.Образ httpd делает это.

...