답변:
도커 컨테이너를 다음과 같이 시작한다고 가정합니다.
docker run -t -i ubuntu:16.04 /bin/bash
문제는 이제 init 프로세스 PID 1이 /bin/bash
시스템화되어 있지 않다는 것입니다. 로 확인하십시오 ps aux
.
또한 dbus가 누락되어 통신하는 방법이 될 것입니다. 오류 메시지가 나오는 곳입니다. 그러나 PID 1이 시스템화되어 있지 않으므로 dbus 설치에 도움이되지 않습니다.
도커 사용 계획을 다시 생각하는 것이 가장 좋습니다. 프로세스 관리자로서 systemd에 의존하지 말고 docker 컨테이너가 포 그라운드에서 원하는 응용 프로그램을 실행하게하십시오.
docker log
.
/sbin/init
PID = 1 프로세스 인 중에이 오류가 발생했습니다 . 추가 --privileged=true
@sonjaya sonjaya 아래 isssue을 해결 제안한다.
다른 사람들도 비슷한 문제를보고했습니다. 터미널을 시작하고 다음을 입력하십시오.
$ env
이런 환경 변수가 보입니까?
XDG_RUNTIME_DIR=/run/user/`id -u`
id -u
작은 따옴표가 아닌 백틱으로 묶인 곳 . 이 변수는 보통 1000
일반 사용자와 0
수퍼 유저 (sudo)를 위해 숫자로 재 해석됩니다 .
환경 변수 XDG_RUNTIME_DIR
가 존재하지 않으면 작성해야합니다. 전체 토론은 런치 패드 시스템 답변에 있습니다.
root
이므로 작업중 인 사용자를 설정하지 않았 으므로 변수 XDG_RUNTIME_DIR=/run/root/0
없이 성공했습니다. 그럼 폴더를 확인 /run
하고 더 하위 폴더가 없음을 발견 /run/root
. 어쨌든 더 자세한 오류 메시지가 표시됩니까? 살펴 systemctl --help
보았지만 자세한 오류 메시지를 얻는 방법을 볼 수 없었습니다.
PID 1
되는 방법 을 비디오에서 (약간 모호하게) 설명 합니다. systemd
Linux 용 Windows 하위 시스템 (WSL)에서이 오류가 발생하면 Docker가 지원되지 않기 때문에 발생했습니다. 이것은 cgroup과 다른 전제 조건이 없기 때문입니다.
이 시도:
docker run -ti -d --privileged=true images_docker "/sbin/init"
또는
docker run -ti -d --privileged=true images_docker
같은 결과가 될 것입니다.
Docker 컨테이너는 기본적으로 "권한이 없으며"Docker 컨테이너 내에서 Docker 데몬을 실행할 수 없습니다. 기본적으로 컨테이너는 장치에 액세스 할 수 없지만 "권한있는"컨테이너에는 모든 장치에 대한 액세스 권한이 부여됩니다 (cgroups 장치에 대한 설명서 참조).
운영자가 docker run --privileged를 실행하면 Docker는 호스트의 모든 장치에 액세스 할 수있을뿐만 아니라 AppArmor 또는 SELinux의 일부 구성을 설정하여 컨테이너가 호스트의 컨테이너 외부에서 실행되는 프로세스와 거의 동일한 컨테이너 액세스를 허용합니다 . --privileged로 실행에 대한 추가 정보는 Docker 블로그에서 확인할 수 있습니다.
16.04 의 기본 init 구현 인 systemd를 실행하고 있지 않을 수 있습니다 . 14.04에서 업그레이드 한 경우 여전히 upstart를 실행 중일 가능성 이 높으며 systemctl 명령 을 실행 한 결과 가 나타납니다.
자세한 내용은 systemctl : comand not found 16.04 server 에서 내 대답을 참조하십시오 .
똑같은 오류가 발생하여 다음과 같이 성공적으로 실행합니다. sudo
sudo systemctl status ssh
sudo
. 우연의 일치 인 것 같습니다. 다시 시험해 주시겠습니까?
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
service ssh start