我们可以在 docker 容器启动期间以 root 身份执行脚本吗?

我们可以在 docker 容器启动期间以 root 身份执行脚本吗?

我正在尝试在容器启动期间执行一个脚本。

对于普通的 Linux 机器,如果我在/etc/rc.local脚本中有脚本,则在重启时执行

我在构建 Docker 镜像时尝试做同样的事情。我/etc/rc.local用新内容覆盖文件,然后执行

sudo docker run -d <image id>

我原本期望/etc/rc.local它会被执行,但是什么也没有发生。

我是不是在错误的地方做这件事了?

答案1

Docker 仅运行您告诉它运行的进程(或多个进程)。

Docker 容器通常没有可运行的初始化系统。它们不像虚拟机那样包含完整的操作系统,在启动时执行所有初始化操作。

如果你想/etc/rc.local运行,你必须自己启动它。例如:

docker run image /bin/bash -c "/etc/rc.local; <your command>"

有一些支持在启动时运行服务的替代基础映像,例如phusion/baseimage-docker

本文了解 Docker 以及启动容器时存在的问题。

相关内容