我的 docker 守护进程在用户登录时启动,我想在它准备就绪后运行一个脚本。
我知道,open -a Docker
但是命令在 Docker 启动时返回。
如何确保 docker 在由 launchd 代理启动的 bash 脚本中已准备就绪?
答案1
您可以使用docker version
,如果 Docker 守护进程未运行,则返回退出状态 1。
#!/bin/bash
# Uncomment next line if you want to start Docker from this script.
# open -a Docker
# Loop until 'docker version' exits with 0.
until docker version > /dev/null 2>&1
do
sleep 1
done
上述脚本将docker version
每秒执行一次,直到以 0 退出,这意味着 docker daemon 已准备就绪。