在Dockerfile中使用CMDENTRYPOINT执行脚本,以实现容器启动时执行特定脚本的目的。

示例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设置。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐