问下docker,如何能用特权的方式启动容器?
是这样的,我在docker里面安装了nginx,然后我启动nginx
systemctl start nginx 报错
Failed to get D-Bus connection: Operation not permitted
后我查了下,是需要用特权的方式启动,但是都是重新run启动镜像重新生成一个容器,但现在我这个容器我已经安装了很多东西了,我不太想再重新生成一个容器又要重新安装软件,问下有没有方式用特权的方式启动容器,或者不用启动,能解决上面的报错也可以?
现在大多数 Linux 发行版都使用 Systemd 管理服务的守护进程。而在 Docker Container 中则不需要这种东西来管理 Container 的生命周期!所以在 Container 中,Nginx 必须以非 Daemon 的方式运行!
当然也有使用 Systemd 来管理 Docker Container 的,例如 ETCD 的部署生成器中 的例子:
如果要使用 Systemd 来管理 Container 中的 Nginx,则启动容器就不要加
--detach 或 -d
选项!Docker 官方文档中有提到如何在容器中运行多个服务,但是不推荐这么做!
用 Docker Compose 编排你的服务更简单,且更安全!