linux - 在EC2启动时自动启动docker-compose

标签 linux amazon-web-services docker amazon-ec2 docker-compose

我有一个Linux AMI 2 AWS实例,其中包含通过docker-compose精心安排的一些服务,并且我正在使用docker-compose up或docker-compose start命令启动所有服务。现在我正在每天自动启动/停止ec2实例的过程中,但是一旦启动,我想运行一些ssh以能够切换到docker-compose.yml文件所在的目录,然后启动它。

就像是:

#!
cd /mydirectory
docker-compose start

我该如何实现?

谢谢

最佳答案

我建议为此使用cron,因为它很容易。大多数 Jade 米支持非标准指令,例如@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

    关于linux - 在EC2启动时自动启动docker-compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62341276/

    相关文章:

    amazon-web-services - ssh 进入 emr 实例失败并出现 ssh_exchange_identification 错误

    ruby-on-rails - 部署dockerized应用程序的工具是什么?

    linux - 无法编辑 systemd 服务文件

    linux - 难道没有linux系统调用或者glibc函数来复制文件吗?

    linux - 从 bash 中分离出时间戳/键/值对

    git - 如何在同一台机器上使用和克隆 github 和 aws (CodeCommit) 存储库?

    node.js - 在连接到 Node.js 应用程序的 Docker 容器中使用 MongoDB 的副本集

    linux - 如何配置squid3用户认证?

    c - 如何在 Linux 内核 v3.2 中创建一个简单的 sysfs 类属性

    linux - 如何使用 FUSE 安装 Amazon S3 存储桶 - S3FS