We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用Docker 的Centos镜像(官方版本),发现 Docker在启动的时候,不会运行 /etc/rc.d/rc.local 脚本。
原因是:
Docker 的上的操作系统镜像没有 init system,而普通的虚拟机有,因为带有完整的系统,在操作系统启动的过程中,会执行 boot 的所有初始化操作,但 Docker 则不是, Docker 只运行我们设置需要启动运行的脚本,否则不会自己运行。
如果需要Docker在启动后就自动运行 /etc/rc.d/rc.local,有下面的两种方式:
方法一:通过Docker命令
docker run image /bin/bash -c "/etc/rc.d/rc.local; <your command>" eg. docker run -itd myimage:test /bin/bash -c "/etc/rc.d/rc.local;/bin/bash"
方法二:通过DockerFile重新构建镜像,指定启动运行的服务
Dockerfile 示例如下:
FROM centos MAINTAINER Johnnian<johnnian@126.com> RUN <填写构建Docker时需要运行的命令> ENV MYENV /XX/XX CMD <容器每次启动时运行的命令, 只能有一个CMD>
编写完后,运行:
docker build -t 镜像名:标签 <Dockerfile所在的目录> # docker build -t centos:johnnian . docker run -itd 新镜像名
附:参考现成的Dockerfile,如mysql的Dockerfile
The text was updated successfully, but these errors were encountered:
你好,请问一下: 1、在dockerfile的最后的 CMD 环节如果加了运行的脚本,那么在docker run的方式还可以执行脚本吗? 如果能执行脚本可以实现那种传递参数化的执行脚本吗? 2、这种在启动的时候进行脚本执行的方式是否也支持docker swarm?
Sorry, something went wrong.
No branches or pull requests
使用Docker 的Centos镜像(官方版本),发现 Docker在启动的时候,不会运行 /etc/rc.d/rc.local 脚本。
原因是:
Docker 的上的操作系统镜像没有 init system,而普通的虚拟机有,因为带有完整的系统,在操作系统启动的过程中,会执行 boot 的所有初始化操作,但 Docker 则不是, Docker 只运行我们设置需要启动运行的脚本,否则不会自己运行。
如果需要Docker在启动后就自动运行 /etc/rc.d/rc.local,有下面的两种方式:
方法一:通过Docker命令
方法二:通过DockerFile重新构建镜像,指定启动运行的服务
Dockerfile 示例如下:
编写完后,运行:
附:参考现成的Dockerfile,如mysql的Dockerfile
参考链接
The text was updated successfully, but these errors were encountered: