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

joj*_*ojo 5 linux boot container docker

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

对于普通的linux机器,如果我有脚本,/etc/rc.local脚本将在重新启动时执行

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

sudo docker run -d <image id>
Run Code Online (Sandbox Code Playgroud)

我原以为/etc/rc.local会被处决,但什么也没发生。

我是不是在错误的地方做的?

NZD*_*NZD 2

Docker 只运行您告诉它运行的一个或多个进程。

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

如果你/etc/rc.local想跑,你必须自己开始。就像是:

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

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

阅读本文,了解 Docker 和启动容器的问题和问题。