在 opensuse Docker容器中, cronjob无法正常工作。当我尝试 systemctl 命令时,出现以下错误: D-bus失败:未知错误-1 。我到处都尝试了许多博客和stackoverflow问题。有人建议应重新设计Docker映像的基本体系结构。
这里没有提到确切需要做的事情。请帮忙,我在这个问题上受阻。
答案 0 :(得分:0)
首先,systemctl
,initctl
,service
或start
之类的命令在Docker中不起作用,您应该找到另一种方法您正在尝试什么。
样式上,使用Docker容器的标准方法是在前台启动某种服务 。作为一个特定的示例,standard Redis image不经过任何类型的初始化脚本;它只是运行
CMD ["redis-server"]
在大多数Docker映像中,启动后台进程(使用shell &
运算符)甚至不寻常。通常这不是必需的,并且在Dockerfiles中,与RUN
指令的交互使某些人感到困惑。
在systemctl
的特定情况下,它需要一个重量特别大的初始化系统,该系统不仅是进程管理器,而且还希望监视和管理内核级参数,包括日志记录系统,运行进程间消息总线和其他一些功能。没有容器--privileged
,您将无法在Docker下运行systemd,这使容器能够以某些不幸的方式“逃逸”到主机系统上。