我得到了
$ sudo initctl list
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
在具有
的docker映像上$ uname -a
Linux 7276b783e0bf 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release
CentOS release 6.10 (Final)
有什么想法吗?我以为CentOS6默认使用Upstart。
答案 0 :(得分:1)
您应该大致假设initctl
(以及systemctl
和service
)之类的命令在Docker中不起作用。如果您尝试在运行中的Docker容器中以交互方式启动某些新服务,那通常不是最佳做法:您需要编写一个Dockerfile来使服务在容器启动时自行启动,通常只需运行服务器作为前台进程。
一个Docker容器运行一个一个进程(及其子进程)。通常,这不是init类型的过程。如果您docker run --rm -it centos:6
得到一个GNU bash shell,则该shell是容器中正在运行的 only 进程。 Upstart,systemd和它们启动的各种其他系统守护程序将不存在。 (尝试在您的shell中使用ps -e
进行查看。)
如果您的实际问题是“我的CentOS 6容器中正在运行Upstart管理的服务”,答案是“无”。