EC2启动时自动启动Docker-compose

8ehkhllq  于 2023-02-18  发布在  Docker
关注(0)|答案(3)|浏览(144)

我有一个Linux AMI 2 AWS示例,其中一些服务通过docker-compose编排,我使用docker-compose up或docker-compose start命令来启动它们。现在我每天都在自动启动/停止我的ec2示例,但一旦它启动,我希望运行一些ssh,以便能够切换到docker-compose. yml文件所在的目录,然后启动它。
比如:

#!
cd /mydirectory
docker-compose start

我怎样才能做到呢?
谢谢

mw3dktmi

mw3dktmi1#

我推荐使用cron,因为它很简单,大多数corn支持非标准指令,如@daily@weekly@monthly@reboot
您可以将其放在shell脚本中,并在crontab中将其作为@reboot /path/to/shell/script进行调度

可以使用绝对路径指定Docker-compose文件,并在crontab中直接将其安排为@reboot docker-compose -f /path/to/docker-compose.yml start

其他可能性:

1.创建systemd服务并启用,所有启用的系统服务将在开机时启动。(难度:中等)
1.将脚本放在init.d下,链接到rc*.d目录,这些脚本也是按照优先级启动的.(难度:中等)

奖金:

如果您在Docker-compose文件中为容器指定了重新启动策略,则在重新启动或打开服务器时,容器将自动启动。参考

h79rfbju

h79rfbju2#

考虑使用Amazon弹性容器服务(Amazon ECS),它可以编排Docker容器并照顾您的底层操作系统。

fjnneemd

fjnneemd3#

只需在主机上运行以下命令一次:

sudo systemctl enable docker

然后docker-compose.yml中服务内部的restart: always应该开始工作。

相关问题