![Docker 守护进程启动后运行 shell 脚本](https://linux22.com/image/1558838/Docker%20%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E5%90%AF%E5%8A%A8%E5%90%8E%E8%BF%90%E8%A1%8C%20shell%20%E8%84%9A%E6%9C%AC.png)
我的 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 已准备就绪。