Docker:为什么总是等待?
本页讨论如何使用docker-compose控制启动顺序。 它推荐三种工具: 等待 , docker或等待 。
我一直在努力争取等待或等待工作,但在这个问题上,我会专注于等待 。
每当我的docker集装箱启动,它退出“操作超时”。
以下是我非常简单的docker文件:
FROM ubuntu COPY ./wait-for.sh / WORKDIR / RUN chmod +x ./wait-for.sh CMD sh -c './wait-for.sh www.eficode.com:80 -- echo "Eficode site is up"'
这应该将脚本从当前目录复制到根目录,使其可执行,并设置运行命令来执行脚本并检查eficode网站的状态(从eficode github页面获取的示例)。
我已经尝试提供超时标志,这会调整超时,但不会影响结果。 我也试过把这个脚本作为docker-compose命令的一部分运行(在上面链接的docker-compose文档页面上的例子之后),但是同样的结果。
我究竟做错了什么?
您缺lessnetcat
软件包,而且nc
在示例图像中不可用。 在您的Dockerfile
添加以下Dockerfile
:
RUN apt-get -q update && apt-get -qy install netcat
正如Andy所说,你需要安装nc
。 您可以:
- 用他的命令手动安装软件包
- 切换到等待,因为你的基本映像是Ubuntu的使用bash。 这个脚本不需要
nc
因为bash可以直接打到ports。 - 如果你不需要bash的话,切换到高山linux,它附带
nc
。 这只是意味着将第一行改为“FROM alpine
。
- 在docker-compose构builddocker-compose之后,运行旧的未更新的容器
- 只有一些本地构build的Docker镜像无法在远程服务器上工作(错误:“No command specified”)
- 在travis的幕后发生的事情,导致本质上是相同的行为如此不同的工作?
- 如何打开摄像头并使用Docker和OpenCV处理图像?
- 为需要执行安装程序可执行文件的Windows创builddocker映像
- 在完成构build之前构build发现已死亡的容器。 构build容器因为内存不足而死亡,或者Docker镜像缺lessglibc
- 无法ping通docker容器
- 更正postgres docker容器中tcp_keepalives设置的方法
- Jenkinsfiledocker代理步骤在1秒后死亡
- 在Centos 7上安装GNOME Desktop最小化:Docker镜像
- docker – add-hosts在远程API中相当于标志?