我的系统中安装了 docker,但我不想让 docker 在启动时或在后台启动,而只在需要时运行。所以我使用以下命令禁用了 docker 守护进程
sudo systemctl stop docker.service
sudo systemctl disable docker.service
这阻止了docker在启动时和后台运行。问题是如果我想使用docker镜像,那么我必须再次重新启动docker服务sudo systemctl restart docker.service
,并且在使用后我必须禁用它。没有docker守护进程运行docker images
返回
无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护程序是否正在运行?
有没有办法在不运行 docker 守护进程的情况下运行 docker 镜像?还有没有办法在使用后硬编码禁用 docker 守护进程?
答案1
有没有办法可以在不运行 docker 守护进程的情况下运行 docker 镜像?
不。
有没有办法通过硬编码来在使用后禁用 docker 守护进程?
你可以创建一个每隔几分钟执行一次的 cron 作业,该作业执行
sudo systemctl disable docker.service
基于事件。该事件可能是对进程 ID 的检查。docker stats
是一个可能的候选。该事件可用于确定容器当前是否处于活动状态。
如果没有 docker daemon 运行,docker images 会返回错误。
您可以更改该命令,sudo systemctl enable docker.service && docker images
以便它首先启动服务,然后启动 docker。
答案2
@Rinzwind
sudo systemctl enable docker.service && docker images 将不起作用
嗯,另一种方法是修改你的命令
- 启动 docker 守护进程
- 执行 docker 镜像
- 停止 docker 守护进程
sudo systemctl 启动 docker.service && docker 镜像 && systemctl 停止 docker.service
答案3
使用 Docker 则不行。但是有解决方案。
Docker 需要服务,因为它更像是一个客户端-服务器模型。
我怀疑部分原因是 Docker(该公司)希望支持在虚拟机中运行容器引擎的非 Linux 操作系统。从而使客户端服务器模型更适合
当然,运行docker守护进程并需要提升权限在某种程度上是一个安全漏洞
跑步吊舱反而。
它是用 GO 编写的,与 docker 兼容,允许您构建和运行 docker 镜像,而无需任何 docker 服务,甚至无需安装 docker。