【问题标题】:Start docker-compose automatically on EC2 startup在 EC2 启动时自动启动 docker-compose
【发布时间】:2020-10-02 02:15:15
【问题描述】:
我有一个 linux AMI 2 AWS 实例,其中包含一些通过 docker-compose 编排的服务,我正在使用 docker-compose up 或 docker-compose start 命令来启动它们。现在我每天都在自动启动/停止我的 ec2 实例,但是一旦启动,我想运行一些 ssh 以便能够更改到 docker-compose.yml 文件所在的目录,然后启动它.
类似:
#!
cd /mydirectory
docker-compose start
我怎样才能做到这一点?
谢谢
【问题讨论】:
标签:
linux
amazon-web-services
docker
amazon-ec2
docker-compose
【解决方案1】:
我建议为此使用 cron,因为它很简单。大部分玉米都支持@daily、@weekly、@monthly、@reboot等非标准指令。
你可以把它放在一个 shell 脚本中,然后在 crontab 中安排它为@reboot /path/to/shell/script
或
可以使用绝对路径指定docker-compose文件,直接在crontab中调度为@reboot docker-compose -f /path/to/docker-compose.yml start
其他可能性:
- 创建一个 systemd 服务并启用它。所有已启用的系统服务将在通电时启动。(难度:中等)
- 将脚本放在 init.d 下并将其链接到 rc*.d 目录。这些脚本也是根据优先级启动的。(难度:中)
奖金:
如果您在 docker-compose 文件中为容器指定重新启动策略,则在您重新启动或打开服务器时它将自动启动。 Reference
【解决方案2】:
考虑使用 Amazon Elastic Container Service (Amazon ECS),它可以编排 docker 容器并处理您的底层操作系统。