在Dockerfile中使用CMD
或ENTRYPOINT
执行脚本,以实现容器启动时执行特定脚本的目的。
示例Dockerfile:
FROM ubuntu:20.04# 复制脚本到容器中
COPY start.sh /usr/local/bin/start.sh# 确保脚本具有可执行权限
RUN chmod +x /usr/local/bin/start.sh# 使用CMD指令设置启动命令
CMD ["/usr/local/bin/start.sh"]
使用Dockerfile构建自定义镜像
$ docker build -f Dockerfile -t myimage .
在容器启动后,会自动执行指定的脚本。
需要注意:
-
脚本执行完毕后,容器会立即退出。如果希望容器保持运行状态,可以在脚本的最后添加
exec /bin/bash
,以防止容器退出。 -
在Dockerfile中,
CMD
指令只能设置一次 -
如果在运行容器时指定了其他命令(例如 docker run + /bin/bash),这些命令会覆盖Dockerfile中的CMD设置。